Skip to content

Commit

Permalink
chore: add types checker script and more fixes on the jsdocs
Browse files Browse the repository at this point in the history
  • Loading branch information
vasco-santos committed Nov 26, 2020
1 parent 7e05c4a commit 28b9f85
Show file tree
Hide file tree
Showing 37 changed files with 246 additions and 165 deletions.
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
"leadMaintainer": "Jacob Heun <jacobheun@gmail.com>",
"main": "src/index.js",
"types": "dist/src/index.d.ts",
"typesVersions": {
"*": {
"src/*": [
"dist/src/*",
"dist/src/*/index"
]
}
},
"files": [
"dist",
"src"
Expand All @@ -15,6 +24,7 @@
"test:node": "aegir test -t node -f \"./test/**/*.{node,spec}.js\"",
"test:browser": "aegir test -t browser",
"test:examples": "cd examples && npm run test:all",
"test:types": "aegir ts -p check",
"release": "aegir release -t node -t browser",
"release-minor": "aegir release --type minor -t node -t browser",
"release-major": "aegir release --type major -t node -t browser",
Expand Down Expand Up @@ -88,7 +98,7 @@
"devDependencies": {
"@nodeutils/defaults-deep": "^1.1.0",
"abortable-iterator": "^3.0.0",
"aegir": "^27.0.0",
"aegir": "^29.1.0",
"chai-bytes": "^0.1.2",
"chai-string": "^1.5.0",
"delay": "^4.3.0",
Expand Down
4 changes: 0 additions & 4 deletions src/address-manager/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
'use strict'

const debug = require('debug')
const log = debug('libp2p:addresses')
log.error = debug('libp2p:addresses:error')

const multiaddr = require('multiaddr')

/**
Expand Down
5 changes: 3 additions & 2 deletions src/circuit/auto-relay.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
'use strict'

const debug = require('debug')
const log = debug('libp2p:auto-relay')
log.error = debug('libp2p:auto-relay:error')
const log = Object.assign(debug('libp2p:auto-relay'), {
error: debug('libp2p:auto-relay:err')
})

const uint8ArrayFromString = require('uint8arrays/from-string')
const uint8ArrayToString = require('uint8arrays/to-string')
Expand Down
13 changes: 9 additions & 4 deletions src/circuit/circuit/hop.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
'use strict'

const debug = require('debug')
const log = debug('libp2p:circuit:hop')
log.error = debug('libp2p:circuit:hop:error')
const log = Object.assign(debug('libp2p:circuit:hop'), {
error: debug('libp2p:circuit:hop:err')
})
const errCode = require('err-code')

const PeerId = require('peer-id')
const { validateAddrs } = require('./utils')
const StreamHandler = require('./stream-handler')
const { CircuitRelay: CircuitPB } = require('../protocol')
const pipe = require('it-pipe')
const errCode = require('err-code')
const { pipe } = require('it-pipe')
const { codes: Errors } = require('../../errors')

const { stop } = require('./stop')

const multicodec = require('./../multicodec')

/**
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
*/

module.exports.handleHop = async function handleHop ({
connection,
request,
Expand Down
17 changes: 11 additions & 6 deletions src/circuit/circuit/stop.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
'use strict'

const debug = require('debug')
const log = Object.assign(debug('libp2p:circuit:stop'), {
error: debug('libp2p:circuit:stop:err')
})

const { CircuitRelay: CircuitPB } = require('../protocol')
const multicodec = require('../multicodec')
const StreamHandler = require('./stream-handler')
const { validateAddrs } = require('./utils')

const debug = require('debug')
const log = debug('libp2p:circuit:stop')
log.error = debug('libp2p:circuit:stop:error')
/**
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
*/

/**
* Handles incoming STOP requests
*
* @private
* @param {*} options
* @param {object} options
* @param {Connection} options.connection
* @param {*} options.request - The CircuitRelay protobuf request (unencoded)
* @param {StreamHandler} options.streamHandler
* @returns {Promise<*>} Resolves a duplex iterable
* @returns {Promise<*>|void} Resolves a duplex iterable
*/
module.exports.handleStop = function handleStop ({
connection,
Expand All @@ -44,7 +49,7 @@ module.exports.handleStop = function handleStop ({
* Creates a STOP request
*
* @private
* @param {*} options
* @param {object} options
* @param {Connection} options.connection
* @param {*} options.request - The CircuitRelay protobuf request (unencoded)
* @returns {Promise<*>} Resolves a duplex iterable
Expand Down
11 changes: 6 additions & 5 deletions src/circuit/circuit/stream-handler.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
'use strict'

const debug = require('debug')
const log = Object.assign(debug('libp2p:circuit:stream-handler'), {
error: debug('libp2p:circuit:stream-handler:err')
})

const lp = require('it-length-prefixed')
const handshake = require('it-handshake')
const { CircuitRelay: CircuitPB } = require('../protocol')

const debug = require('debug')
const log = debug('libp2p:circuit:stream-handler')
log.error = debug('libp2p:circuit:stream-handler:error')

class StreamHandler {
/**
* Create a stream handler for connection
Expand All @@ -27,7 +28,7 @@ class StreamHandler {
* Read and decode message
*
* @async
* @returns {void}
* @returns {Promise<void>}
*/
async read () {
const msg = await this.decoder.next()
Expand Down
4 changes: 4 additions & 0 deletions src/circuit/circuit/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
const multiaddr = require('multiaddr')
const { CircuitRelay } = require('../protocol')

/**
* @typedef {import('./stream-handler')} StreamHandler
*/

/**
* Write a response
*
Expand Down
5 changes: 3 additions & 2 deletions src/circuit/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
'use strict'

const debug = require('debug')
const log = debug('libp2p:relay')
log.error = debug('libp2p:relay:error')
const log = Object.assign(debug('libp2p:relay'), {
error: debug('libp2p:relay:err')
})

const {
setDelayedInterval,
Expand Down
10 changes: 5 additions & 5 deletions src/circuit/listener.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
'use strict'

const EventEmitter = require('events')
const { EventEmitter } = require('events')
const multiaddr = require('multiaddr')

const debug = require('debug')
const log = debug('libp2p:circuit:listener')
log.err = debug('libp2p:circuit:error:listener')
/**
* @typedef {import('multiaddr')} Multiaddr
*/

/**
* @param {Libp2p} libp2p
* @param {import('../')} libp2p
* @returns {Listener} a transport listener
*/
module.exports = (libp2p) => {
Expand Down
29 changes: 16 additions & 13 deletions src/connection-manager/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
'use strict'

const debug = require('debug')
const log = debug('libp2p:connection-manager')
log.error = debug('libp2p:connection-manager:error')
const log = Object.assign(debug('libp2p:connection-manager'), {
error: debug('libp2p:connection-manager:err')
})

const errcode = require('err-code')
const mergeOptions = require('merge-options')
Expand All @@ -14,7 +15,7 @@ const { EventEmitter } = require('events')
const PeerId = require('peer-id')

const {
ERR_INVALID_PARAMETERS
codes: { ERR_INVALID_PARAMETERS }
} = require('../errors')

const defaultOptions = {
Expand Down Expand Up @@ -187,15 +188,17 @@ class ConnectionManager extends EventEmitter {
* @private
*/
_checkMetrics () {
const movingAverages = this._libp2p.metrics.global.movingAverages
const received = movingAverages.dataReceived[this._options.movingAverageInterval].movingAverage()
this._checkMaxLimit('maxReceivedData', received)
const sent = movingAverages.dataSent[this._options.movingAverageInterval].movingAverage()
this._checkMaxLimit('maxSentData', sent)
const total = received + sent
this._checkMaxLimit('maxData', total)
log('metrics update', total)
this._timer = retimer(this._checkMetrics, this._options.pollInterval)
if (this._libp2p.metrics) {
const movingAverages = this._libp2p.metrics.global.movingAverages
const received = movingAverages.dataReceived[this._options.movingAverageInterval].movingAverage()
this._checkMaxLimit('maxReceivedData', received)
const sent = movingAverages.dataSent[this._options.movingAverageInterval].movingAverage()
this._checkMaxLimit('maxSentData', sent)
const total = received + sent
this._checkMaxLimit('maxData', total)
log('metrics update', total)
this._timer = retimer(this._checkMetrics, this._options.pollInterval)
}
}

/**
Expand Down Expand Up @@ -249,7 +252,7 @@ class ConnectionManager extends EventEmitter {
* Get a connection with a peer.
*
* @param {PeerId} peerId
* @returns {Connection}
* @returns {Connection|null}
*/
get (peerId) {
const connections = this.getAll(peerId)
Expand Down
3 changes: 2 additions & 1 deletion src/content-routing.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const pAny = require('p-any')
/**
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('cids')} CID
*/

/**
Expand Down Expand Up @@ -63,7 +64,7 @@ module.exports = (node) => {
* a provider of the given key.
*
* @param {CID} key - The CID key of the content to find
* @returns {Promise<void>}
* @returns {Promise<void[]>}
*/
async provide (key) { // eslint-disable-line require-await
if (!routers.length) {
Expand Down
8 changes: 3 additions & 5 deletions src/dialer/dial-request.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
'use strict'

const errCode = require('err-code')
const AbortController = require('abort-controller')
const anySignal = require('any-signal')
const debug = require('debug')
const errCode = require('err-code')
const log = debug('libp2p:dialer:request')
log.error = debug('libp2p:dialer:request:error')
const FIFO = require('p-fifo')
const pAny = require('p-any')

/**
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
* @typedef {import('./')} Dialer
* @typedef {import('multiaddr')} Multiaddr
*/
Expand Down Expand Up @@ -45,7 +43,7 @@ class DialRequest {
* @async
* @param {object} [options]
* @param {AbortSignal} [options.signal] - An AbortController signal
* @returns {Connection}
* @returns {Promise<Connection>}
*/
async run (options) {
const tokens = this.dialer.getTokens(this.addrs.length)
Expand Down
13 changes: 8 additions & 5 deletions src/dialer/index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
'use strict'

const multiaddr = require('multiaddr')
const debug = require('debug')
const log = Object.assign(debug('libp2p:dialer'), {
error: debug('libp2p:dialer:err')
})
const errCode = require('err-code')
const multiaddr = require('multiaddr')
const TimeoutController = require('timeout-abort-controller')
const anySignal = require('any-signal')
const debug = require('debug')
const log = debug('libp2p:dialer')
log.error = debug('libp2p:dialer:error')

const { DialRequest } = require('./dial-request')
const { publicAddressesFirst } = require('libp2p-utils/src/address-sort')
Expand All @@ -20,9 +21,11 @@ const {
} = require('../constants')

/**
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('peer-id')} PeerId
* @typedef {import('../peer-store')} PeerStore
* @typedef {import('../peer-store/address-book').Address} Address
* @typedef {import('../transport-manager')} TransportManager
* @typedef {import('./dial-request')} DialRequest
*/
Expand Down Expand Up @@ -172,7 +175,7 @@ class Dialer {
* @param {AbortSignal} [options.signal] - An AbortController signal
* @returns {PendingDial}
*/
_createPendingDial (dialTarget, options) {
_createPendingDial (dialTarget, options = {}) {
const dialAction = (addr, options) => {
if (options.signal.aborted) throw errCode(new Error('already aborted'), codes.ERR_ALREADY_ABORTED)
return this.transportManager.dial(addr, options)
Expand Down
3 changes: 1 addition & 2 deletions src/get-peer.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ const errCode = require('err-code')
const { codes } = require('./errors')

/**
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} Multiaddr
*/

Expand All @@ -16,7 +15,7 @@ const { codes } = require('./errors')
* If a multiaddr is received, the addressBook is updated.
*
* @param {PeerId|multiaddr|string} peer
* @returns {{ id: PeerId, multiaddrs: Multiaddr[] }}
* @returns {{ id: PeerId, multiaddrs: Multiaddr[]|undefined }}
*/
function getPeer (peer) {
if (typeof peer === 'string') {
Expand Down
Loading

0 comments on commit 28b9f85

Please sign in to comment.