chore: address review

This commit is contained in:
Vasco Santos
2020-11-25 17:58:52 +01:00
parent 26c40c8dfd
commit 7e05c4a43b
25 changed files with 138 additions and 91 deletions

View File

@ -61,7 +61,7 @@
"it-pipe": "^1.1.0",
"it-protocol-buffers": "^0.2.0",
"libp2p-crypto": "^0.18.0",
"libp2p-interfaces": "^0.7.2",
"libp2p-interfaces": "libp2p/js-libp2p-interfaces#chore/add-duplex-iterable-type-to-connection",
"libp2p-utils": "^0.2.2",
"mafmt": "^8.0.0",
"merge-options": "^2.0.0",

View File

@ -6,10 +6,14 @@ log.error = debug('libp2p:addresses:error')
const multiaddr = require('multiaddr')
/**
* @typedef {import('multiaddr')} Multiaddr
*/
/**
* @typedef {Object} AddressManagerOptions
* @property {Array<string>} [listen = []] - list of multiaddrs string representation to listen.
* @property {Array<string>} [announce = []] - list of multiaddrs string representation to announce.
* @property {string[]} [listen = []] - list of multiaddrs string representation to listen.
* @property {string[]} [announce = []] - list of multiaddrs string representation to announce.
*/
class AddressManager {
/**
@ -29,7 +33,7 @@ class AddressManager {
/**
* Get peer listen multiaddrs.
*
* @returns {Array<multiaddr>}
* @returns {Multiaddr[]}
*/
getListenAddrs () {
return Array.from(this.listen).map((a) => multiaddr(a))
@ -38,7 +42,7 @@ class AddressManager {
/**
* Get peer announcing multiaddrs.
*
* @returns {Array<multiaddr>}
* @returns {Multiaddr[]}
*/
getAnnounceAddrs () {
return Array.from(this.announce).map((a) => multiaddr(a))

View File

@ -69,7 +69,7 @@ class AutoRelay {
*
* @param {Object} props
* @param {PeerId} props.peerId
* @param {Array<string>} props.protocols
* @param {string[]} props.protocols
* @returns {Promise<void>}
*/
async _onProtocolChange ({ peerId, protocols }) {
@ -182,7 +182,7 @@ class AutoRelay {
* 2. Dial and try to listen on the peers we know that support hop but are not connected.
* 3. Search the network.
*
* @param {Array<string>} [peersToIgnore]
* @param {string[]} [peersToIgnore]
* @returns {Promise<void>}
*/
async _listenOnAvailableHopRelays (peersToIgnore = []) {

View File

@ -18,14 +18,19 @@ const { handleCanHop, handleHop, hop } = require('./circuit/hop')
const { handleStop } = require('./circuit/stop')
const StreamHandler = require('./circuit/stream-handler')
/**
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
*/
class Circuit {
/**
* Creates an instance of the Circuit Transport.
*
* @class
* @param {object} options
* @param {Libp2p} options.libp2p
* @param {Upgrader} options.upgrader
* @param {import('../')} options.libp2p
* @param {import('../upgrader')} options.upgrader
*/
constructor ({ libp2p, upgrader }) {
this._dialer = libp2p.dialer
@ -101,7 +106,7 @@ class Circuit {
/**
* Dial a peer over a relay
*
* @param {multiaddr} ma - the multiaddr of the peer to dial
* @param {Multiaddr} ma - the multiaddr of the peer to dial
* @param {Object} options - dial options
* @param {AbortSignal} [options.signal] - An optional abort signal
* @returns {Connection} - the connection
@ -176,8 +181,8 @@ class Circuit {
/**
* Filter check for all Multiaddrs that this transport can dial on
*
* @param {Array<Multiaddr>} multiaddrs
* @returns {Array<Multiaddr>}
* @param {Multiaddr[]} multiaddrs
* @returns {Multiaddr[]}
*/
filter (multiaddrs) {
multiaddrs = Array.isArray(multiaddrs) ? multiaddrs : [multiaddrs]

View File

@ -51,7 +51,7 @@ const defaultOptions = {
*/
/**
* @extends {EventEmitter}
* @extends EventEmitter
*
* @fires ConnectionManager#peer:connect Emitted when a new peer is connected.
* @fires ConnectionManager#peer:disconnect Emitted when a peer is disconnected.
@ -87,7 +87,7 @@ class ConnectionManager extends EventEmitter {
/**
* Map of connections per peer
*
* @type {Map<string, Array<Connection>>}
* @type {Map<string, Connection[]>}
*/
this.connections = new Map()
@ -168,6 +168,7 @@ class ConnectionManager extends EventEmitter {
*
* @param {PeerId} peerId
* @param {number} value - A number between 0 and 1
* @returns {void}
*/
setPeerValue (peerId, value) {
if (value < 0 || value > 1) {
@ -201,6 +202,7 @@ class ConnectionManager extends EventEmitter {
* Tracks the incoming connection and check the connection limit
*
* @param {Connection} connection
* @returns {void}
*/
onConnect (connection) {
const peerId = connection.remotePeer
@ -227,6 +229,7 @@ class ConnectionManager extends EventEmitter {
* Removes the connection from tracking
*
* @param {Connection} connection
* @returns {void}
*/
onDisconnect (connection) {
const peerId = connection.remotePeer.toB58String()
@ -260,7 +263,7 @@ class ConnectionManager extends EventEmitter {
* Get all open connections with a peer.
*
* @param {PeerId} peerId
* @returns {Array<Connection>}
* @returns {Connection[]}
*/
getAll (peerId) {
if (!PeerId.isPeerId(peerId)) {

View File

@ -8,7 +8,13 @@ const pAny = require('p-any')
/**
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} multiaddr
* @typedef {import('multiaddr')} Multiaddr
*/
/**
* @typedef {Object} GetData
* @property {PeerId} from
* @property {Uint8Array} val
*/
module.exports = (node) => {
@ -29,7 +35,7 @@ module.exports = (node) => {
* @param {object} [options]
* @param {number} [options.timeout] - How long the query should run
* @param {number} [options.maxNumProviders] - maximum number of providers to find
* @returns {AsyncIterable<{ id: PeerId, multiaddrs: Array<multiaddr> }>}
* @returns {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>}
*/
async * findProviders (key, options) {
if (!routers.length) {
@ -91,7 +97,7 @@ module.exports = (node) => {
* @param {Uint8Array} key
* @param {Object} [options] - get options
* @param {number} [options.timeout] - optional timeout (default: 60000)
* @returns {Promise<{from: PeerId, val: Uint8Array}>}
* @returns {Promise<GetData>}
*/
async get (key, options) { // eslint-disable-line require-await
if (!node.isStarted() || !dht.isStarted) {
@ -108,7 +114,7 @@ module.exports = (node) => {
* @param {number} nVals
* @param {Object} [options] - get options
* @param {number} [options.timeout] - optional timeout (default: 60000)
* @returns {Promise<Array<{from: PeerId, val: Uint8Array}>>}
* @returns {Promise<GetData[]>}
*/
async getMany (key, nVals, options) { // eslint-disable-line require-await
if (!node.isStarted() || !dht.isStarted) {

View File

@ -11,6 +11,7 @@ const pAny = require('p-any')
/**
* @typedef {import('./')} Dialer
* @typedef {import('multiaddr')} Multiaddr
*/
/**

View File

@ -20,6 +20,7 @@ const {
} = require('../constants')
/**
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('peer-id')} PeerId
* @typedef {import('../peer-store')} PeerStore
* @typedef {import('../transport-manager')} TransportManager
@ -32,7 +33,7 @@ const {
* @property {TransportManager} transportManager
*
* @typedef {Object} DialerOptions
* @param {(addresses: Array<Address) => Array<Address>} [options.addressSorter = publicAddressesFirst] - Sort the known addresses of a peer before trying to dial.
* @param {(addresses: Address[]) => Address[]} [options.addressSorter = publicAddressesFirst] - Sort the known addresses of a peer before trying to dial.
* @property {number} [concurrency = MAX_PARALLEL_DIALS] - Number of max concurrent dials.
* @property {number} [perPeerLimit = MAX_PER_PEER_DIALS] - Number of max concurrent dials per peer.
* @property {number} [timeout = DIAL_TIMEOUT] - How long a dial attempt is allowed to take.
@ -40,7 +41,7 @@ const {
*
* @typedef DialTarget
* @property {string} id
* @property {Array<multiaddr>} addrs
* @property {Multiaddr[]} addrs
*
* @typedef PendingDial
* @property {DialRequest} dialRequest
@ -96,7 +97,7 @@ class Dialer {
* The dial to the first address that is successfully able to upgrade a connection
* will be used.
*
* @param {PeerId|multiaddr|string} peer - The peer to dial
* @param {PeerId|Multiaddr|string} peer - The peer to dial
* @param {object} [options]
* @param {AbortSignal} [options.signal] - An AbortController signal
* @returns {Promise<Connection>}
@ -131,7 +132,7 @@ class Dialer {
* If a multiaddr is received it should be the first address attempted.
*
* @private
* @param {PeerId|multiaddr|string} peer - A PeerId or Multiaddr
* @param {PeerId|Multiaddr|string} peer - A PeerId or Multiaddr
* @returns {Promise<DialTarget>}
*/
async _createDialTarget (peer) {
@ -219,8 +220,8 @@ class Dialer {
/**
* Resolve multiaddr recursively.
*
* @param {multiaddr} ma
* @returns {Promise<Array<multiaddr>>}
* @param {Multiaddr} ma
* @returns {Promise<Multiaddr[]>}
*/
async _resolve (ma) {
// TODO: recursive logic should live in multiaddr once dns4/dns6 support is in place
@ -248,8 +249,8 @@ class Dialer {
/**
* Resolve a given multiaddr. If this fails, an empty array will be returned
*
* @param {multiaddr} ma
* @returns {Promise<Array<multiaddr>>}
* @param {Multiaddr} ma
* @returns {Promise<Multiaddr[]>}
*/
async _resolveRecord (ma) {
try {

View File

@ -8,7 +8,7 @@ const { codes } = require('./errors')
/**
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} multiaddr
* @typedef {import('multiaddr')} Multiaddr
*/
/**
@ -16,7 +16,7 @@ const { codes } = require('./errors')
* If a multiaddr is received, the addressBook is updated.
*
* @param {PeerId|multiaddr|string} peer
* @returns {{ id: PeerId, multiaddrs: Array<multiaddr> }}
* @returns {{ id: PeerId, multiaddrs: Multiaddr[] }}
*/
function getPeer (peer) {
if (typeof peer === 'string') {

View File

@ -30,16 +30,15 @@ const {
const { codes } = require('../errors')
/**
* @typedef {import('../')} Libp2p
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
* @typedef {import('../').DuplexIterable} DuplexIterable
* @typedef {import('libp2p-interfaces/src/connection/connection').DuplexIterableStream} DuplexIterableStream
*/
class IdentifyService {
/**
* @class
* @param {Object} options
* @param {Libp2p} options.libp2p
* @param {import('../')} options.libp2p
*/
constructor ({ libp2p }) {
this._libp2p = libp2p
@ -74,7 +73,7 @@ class IdentifyService {
/**
* Send an Identify Push update to the list of connections
*
* @param {Array<Connection>} connections
* @param {Connection[]} connections
* @returns {Promise<void>}
*/
async push (connections) {
@ -204,7 +203,7 @@ class IdentifyService {
*
* @param {Object} options
* @param {string} options.protocol
* @param {DuplexIterable} options.stream
* @param {DuplexIterableStream} options.stream
* @param {Connection} options.connection
* @returns {Promise<void>}
*/
@ -225,7 +224,7 @@ class IdentifyService {
*
* @private
* @param {Object} options
* @param {DuplexIterable} options.stream
* @param {DuplexIterableStream} options.stream
* @param {Connection} options.connection
*/
async _handleIdentify ({ connection, stream }) {
@ -264,7 +263,7 @@ class IdentifyService {
*
* @private
* @param {object} options
* @param {DuplexIterable} options.stream
* @param {DuplexIterableStream} options.stream
* @param {Connection} options.connection
*/
async _handlePush ({ connection, stream }) {

View File

@ -34,6 +34,10 @@ const {
multicodecs: IDENTIFY_PROTOCOLS
} = require('./identify')
/**
* @typedef {import('multiaddr')} Multiaddr
*/
/**
* @typedef {Object} PeerStoreOptions
* @property {boolean} persistence
@ -55,7 +59,7 @@ const {
* @property {Object} [transport] transport options indexed by transport key
*
* @typedef {Object} Libp2pOptions
* @property {Array<Object>} modules libp2p modules to use
* @property {Object[]} modules libp2p modules to use
* @property {import('./address-manager').AddressManagerOptions} [addresses]
* @property {import('./connection-manager').ConnectionManagerOptions} [connectionManager]
* @property {import('./dialer').DialerOptions} [dialer]
@ -399,7 +403,7 @@ class Libp2p extends EventEmitter {
* by transports to listen with the announce addresses.
* Duplicated addresses and noAnnounce addresses are filtered out.
*
* @returns {Array<Multiaddr>}
* @returns {Multiaddr[]}
*/
get multiaddrs () {
const announceAddrs = this.addressManager.getAnnounceAddrs()
@ -416,7 +420,7 @@ class Libp2p extends EventEmitter {
/**
* Disconnects all connections to the given `peer`
*
* @param {PeerId|multiaddr|string} peer - the peer to close connections to
* @param {PeerId|Multiaddr|string} peer - the peer to close connections to
* @returns {Promise<void>}
*/
async hangUp (peer) {
@ -544,7 +548,7 @@ class Libp2p extends EventEmitter {
* Known peers may be emitted.
*
* @private
* @param {{ id: PeerId, multiaddrs: Array<Multiaddr>, protocols: Array<string> }} peer
* @param {{ id: PeerId, multiaddrs: Multiaddr[], protocols: string[] }} peer
*/
_onDiscoveryPeer (peer) {
if (peer.id.toB58String() === this.peerId.toB58String()) {
@ -654,10 +658,4 @@ Libp2p.create = async function create (options = {}) {
return new Libp2p(options)
}
/**
* @typedef {Object} DuplexIterable
* @property {(source: AsyncIterator<*>) => Promise} sink
* @property {AsyncIterator<*>} source
*/
module.exports = Libp2p

View File

@ -25,7 +25,7 @@ function lpEncodeExchange (exchange) {
*
* @param {PeerId} localId
* @param {Connection} conn
* @param {PeerId} remoteId
* @param {PeerId} [remoteId]
*/
async function encrypt (localId, conn, remoteId) {
const shake = handshake(conn)

View File

@ -17,6 +17,10 @@ const directionToEvent = {
out: 'dataSent'
}
/**
* @typedef {import('peer-id')} PeerId
*/
/**
* @typedef MetricsProperties
* @property {ConnectionManager} connectionManager
@ -24,7 +28,7 @@ const directionToEvent = {
* @typedef MetricsOptions
* @property {number} [computeThrottleMaxQueueSize = defaultOptions.computeThrottleMaxQueueSize]
* @property {number} [computeThrottleTimeout = defaultOptions.computeThrottleTimeout]
* @property {Array<number>} [movingAverageIntervals = defaultOptions.movingAverageIntervals]
* @property {number[]} [movingAverageIntervals = defaultOptions.movingAverageIntervals]
* @property {number} [maxOldPeersRetention = defaultOptions.maxOldPeersRetention]
*/
@ -82,7 +86,7 @@ class Metrics {
/**
* Returns a list of `PeerId` strings currently being tracked
*
* @returns {Array<string>}
* @returns {string[]}
*/
get peers () {
return Array.from(this._peerStats.keys())
@ -103,7 +107,7 @@ class Metrics {
/**
* Returns a list of all protocol strings currently being tracked.
*
* @returns {Array<string>}
* @returns {string[]}
*/
get protocols () {
return Array.from(this._protocolStats.keys())
@ -182,6 +186,7 @@ class Metrics {
*
* @param {PeerId} placeholder - A peerId string
* @param {PeerId} peerId
* @returns {void}
*/
updatePlaceholder (placeholder, peerId) {
if (!this._running) return

View File

@ -8,7 +8,7 @@ const retimer = require('retimer')
/**
* A queue based manager for stat processing
*
* @param {Array<string>} initialCounters
* @param {string[]} initialCounters
* @param {any} options
*/
class Stats extends EventEmitter {
@ -77,7 +77,7 @@ class Stats extends EventEmitter {
/**
* Returns a clone of the internal movingAverages
*
* @returns {Array<MovingAverage>}
* @returns {MovingAverage[]}
*/
get movingAverages () {
return Object.assign({}, this._movingAverages)
@ -229,7 +229,7 @@ class Stats extends EventEmitter {
* will be updated or initialized if they don't already exist.
*
* @private
* @param {Array<string, number>} op
* @param {{string, number}[]} op
* @throws {InvalidNumber}
* @returns {void}
*/

View File

@ -16,10 +16,6 @@ const {
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} Multiaddr
*/
/**
* Responsible for managing the usage of the available Peer Routing modules.
*/
class PeerRouting {
/**
* @class
@ -73,6 +69,7 @@ class PeerRouting {
clearDelayedInterval(this._timeoutId)
}
<<<<<<< HEAD
/**
* Iterates over all peer routers in series to find the given peer.
*
@ -92,6 +89,20 @@ class PeerRouting {
// If we don't have a result, we need to provide an error to keep trying
if (!result || Object.keys(result).length === 0) {
throw errCode(new Error('not found'), 'NOT_FOUND')
=======
return {
/**
* Iterates over all peer routers in series to find the given peer.
*
* @param {string} id - The id of the peer to find
* @param {object} [options]
* @param {number} [options.timeout] - How long the query should run
* @returns {Promise<{ id: PeerId, multiaddrs: Multiaddr[] }>}
*/
findPeer: async (id, options) => { // eslint-disable-line require-await
if (!routers.length) {
throw errCode(new Error('No peer routers available'), 'NO_ROUTERS_AVAILABLE')
>>>>>>> chore: address review
}
return result

View File

@ -16,11 +16,15 @@ const {
} = require('../errors')
const Envelope = require('../record/envelope')
/**
* @typedef {import('multiaddr')} Multiaddr
*/
/**
* Address object
*
* @typedef {Object} Address
* @property {multiaddr} multiaddr peer multiaddr.
* @property {Multiaddr} multiaddr peer multiaddr.
* @property {boolean} isCertified obtained from a signed peer record.
*/
@ -36,7 +40,7 @@ const Envelope = require('../record/envelope')
* Entry object for the addressBook
*
* @typedef {Object} Entry
* @property {Array<Address>} addresses peer Addresses.
* @property {Address[]} addresses peer Addresses.
* @property {CertifiedRecord} record certified peer record.
*/
@ -71,7 +75,7 @@ class AddressBook extends Book {
/**
* Map known peers to their known Address Entries.
*
* @type {Map<string, Array<Entry>>}
* @type {Map<string, Entry[]>}
*/
this.data = new Map()
}
@ -172,7 +176,7 @@ class AddressBook extends Book {
*
* @override
* @param {PeerId} peerId
* @param {Array<multiaddr>} multiaddrs
* @param {Multiaddr[]} multiaddrs
* @returns {AddressBook}
*/
set (peerId, multiaddrs) {
@ -222,7 +226,7 @@ class AddressBook extends Book {
* If the peer is not known, it is set with the given addresses.
*
* @param {PeerId} peerId
* @param {Array<multiaddr>} multiaddrs
* @param {Multiaddr[]} multiaddrs
* @returns {AddressBook}
*/
add (peerId, multiaddrs) {
@ -271,7 +275,7 @@ class AddressBook extends Book {
*
* @override
* @param {PeerId} peerId
* @returns {Array<Address>|undefined}
* @returns {Address[]|undefined}
*/
get (peerId) {
if (!PeerId.isPeerId(peerId)) {
@ -287,9 +291,9 @@ class AddressBook extends Book {
* Transforms received multiaddrs into Address.
*
* @private
* @param {Array<multiaddr>} multiaddrs
* @param {Multiaddr[]} multiaddrs
* @param {boolean} [isCertified]
* @returns {Array<Address>}
* @returns {Address[]}
*/
_toAddresses (multiaddrs, isCertified = false) {
if (!multiaddrs) {
@ -320,8 +324,8 @@ class AddressBook extends Book {
* Returns `undefined` if there are no known multiaddrs for the given peer.
*
* @param {PeerId} peerId
* @param {(addresses: Array<Address) => Array<Address>} [addressSorter]
* @returns {Array<Multiaddr>|undefined}
* @param {(addresses: Address[]) => Address[]} [addressSorter]
* @returns {Multiaddr[]|undefined}
*/
getMultiaddrsForPeer (peerId, addressSorter = (ms) => ms) {
if (!PeerId.isPeerId(peerId)) {

View File

@ -13,12 +13,14 @@ class Book {
/**
* The Book is the skeleton for the PeerStore books.
*
* @template T
*
* @class
* @param {Object} properties
* @param {PeerStore} properties.peerStore - PeerStore instance.
* @param {string} properties.eventName - Name of the event to emit by the PeerStore.
* @param {string} properties.eventProperty - Name of the property to emit by the PeerStore.
* @param {(data: *) => Array<*>} [properties.eventTransformer] - Transformer function of the provided data for being emitted.
* @param {(data: T) => T[]} [properties.eventTransformer] - Transformer function of the provided data for being emitted.
*/
constructor ({ peerStore, eventName, eventProperty, eventTransformer = passthrough }) {
this._ps = peerStore
@ -29,7 +31,7 @@ class Book {
/**
* Map known peers to their data.
*
* @type {Map<string, Array<*>}
* @type {Map<string, T[]}
*/
this.data = new Map()
}
@ -38,7 +40,7 @@ class Book {
* Set known data of a provided peer.
*
* @param {PeerId} peerId
* @param {Array<Data>|Data} data
* @param {T[]|T} data
*/
set (peerId, data) {
throw errcode(new Error('set must be implemented by the subclass'), 'ERR_NOT_IMPLEMENTED')
@ -49,7 +51,7 @@ class Book {
*
* @private
* @param {PeerId} peerId - peerId of the data to store
* @param {*} data - data to store.
* @param {T} data - data to store.
* @param {Object} [options] - storing options.
* @param {boolean} [options.emit = true] - emit the provided data.
* @returns {void}
@ -69,7 +71,7 @@ class Book {
*
* @private
* @param {PeerId} peerId
* @param {*} data
* @param {T} data
*/
_emit (peerId, data) {
this._ps.emit(this.eventName, {
@ -83,7 +85,7 @@ class Book {
* Returns `undefined` if there is no available data for the given peer.
*
* @param {PeerId} peerId
* @returns {Array<Data>|undefined}
* @returns {T[]|undefined}
*/
get (peerId) {
if (!PeerId.isPeerId(peerId)) {

View File

@ -17,6 +17,10 @@ const {
ERR_INVALID_PARAMETERS
} = require('../errors')
/**
* @typedef {import('./address-book').Address} Address
*/
/**
* @extends {EventEmitter}
*
@ -32,9 +36,9 @@ class PeerStore extends EventEmitter {
*
* @typedef {Object} Peer
* @property {PeerId} id peer's peer-id instance.
* @property {Array<Address>} addresses peer's addresses containing its multiaddrs and metadata.
* @property {Array<string>} protocols peer's supported protocols.
* @property {Map<string, Buffer>} metadata peer's metadata map.
* @property {Address[]} addresses peer's addresses containing its multiaddrs and metadata.
* @property {string[]} protocols peer's supported protocols.
* @property {Map<string, Uint8Array>} metadata peer's metadata map.
*/
/**

View File

@ -53,7 +53,7 @@ class MetadataBook extends Book {
* @param {PeerId} peerId
* @param {string} key - metadata key
* @param {Uint8Array} value - metadata value
* @returns {ProtoBook}
* @returns {MetadataBook}
*/
set (peerId, key, value) {
if (!PeerId.isPeerId(peerId)) {

View File

@ -52,7 +52,7 @@ class ProtoBook extends Book {
*
* @override
* @param {PeerId} peerId
* @param {Array<string>} protocols
* @param {string[]} protocols
* @returns {ProtoBook}
*/
set (peerId, protocols) {
@ -90,7 +90,7 @@ class ProtoBook extends Book {
* If the peer was not known before, it will be added.
*
* @param {PeerId} peerId
* @param {Array<string>} protocols
* @param {string[]} protocols
* @returns {ProtoBook}
*/
add (peerId, protocols) {
@ -125,7 +125,7 @@ class ProtoBook extends Book {
* If the protocols did not exist before, nothing will be done.
*
* @param {PeerId} peerId
* @param {Array<string>} protocols
* @param {string[]} protocols
* @returns {ProtoBook}
*/
remove (peerId, protocols) {

View File

@ -14,7 +14,7 @@ const { PROTOCOL, PING_LENGTH } = require('./constants')
/**
* @typedef {import('../')} Libp2p
* @typedef {import('multiaddr')} multiaddr
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('peer-id')} PeerId
*/
@ -22,7 +22,7 @@ const { PROTOCOL, PING_LENGTH } = require('./constants')
* Ping a given peer and wait for its response, getting the operation latency.
*
* @param {Libp2p} node
* @param {PeerId|multiaddr} peer
* @param {PeerId|Multiaddr} peer
* @returns {Promise<number>}
*/
async function ping (node, peer) {

View File

@ -21,7 +21,7 @@ log.error = debug('libp2p:pnet:err')
/**
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
* @typedef {import('../').DuplexIterable} DuplexIterable
* @typedef {import('libp2p-interfaces/src/connection/connection').DuplexIterableStream} DuplexIterableStream
*/
class Protector {
@ -44,7 +44,7 @@ class Protector {
* created with.
*
* @param {Connection} connection - The connection to protect
* @returns {DuplexIterable} A protected duplex iterable
* @returns {DuplexIterableStream} A protected duplex iterable
*/
async protect (connection) {
if (!connection) {

View File

@ -1,5 +1,9 @@
'use strict'
/**
* @typedef {import('libp2p-interfaces/src/pubsub').InMessage} InMessage
*/
// Pubsub adapter to keep API with handlers while not removed.
module.exports = (PubsubRouter, libp2p, options) => {
class Pubsub extends PubsubRouter {

View File

@ -13,7 +13,7 @@ const {
/**
* @typedef {import('peer-id')} PeerId
* @typedef {import('multiaddr')} multiaddr
* @typedef {import('multiaddr')} Multiaddr
*/
/**
@ -27,7 +27,7 @@ class PeerRecord extends Record {
* @class
* @param {Object} params
* @param {PeerId} params.peerId
* @param {Array<multiaddr>} params.multiaddrs - addresses of the associated peer.
* @param {Multiaddr[]} params.multiaddrs - addresses of the associated peer.
* @param {number} [params.seqNumber] - monotonically-increasing sequence counter that's used to order PeerRecords in time.
*/
constructor ({ peerId, multiaddrs = [], seqNumber = Date.now() }) {

View File

@ -10,7 +10,7 @@ log.error = debug('libp2p:transports:error')
const { updateSelfPeerRecord } = require('./record/utils')
/**
* @typedef {import('multiaddr')} multiaddr
* @typedef {import('multiaddr')} Multiaddr
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
*
* @typedef {Object} TransportManagerProperties
@ -90,7 +90,7 @@ class TransportManager {
/**
* Dials the given Multiaddr over it's supported transport
*
* @param {multiaddr} ma
* @param {Multiaddr} ma
* @param {*} options
* @returns {Promise<Connection>}
*/
@ -111,7 +111,7 @@ class TransportManager {
/**
* Returns all Multiaddr's the listeners are using
*
* @returns {Array<multiaddr>}
* @returns {Multiaddr[]}
*/
getAddrs () {
let addrs = []
@ -135,7 +135,7 @@ class TransportManager {
/**
* Finds a transport that matches the given Multiaddr
*
* @param {multiaddr} ma
* @param {Multiaddr} ma
* @returns {Transport|null}
*/
transportForMultiaddr (ma) {
@ -150,7 +150,7 @@ class TransportManager {
* Starts listeners for each listen Multiaddr.
*
* @async
* @param {Array<multiaddr>} addrs - addresses to attempt to listen on
* @param {Multiaddr[]} addrs - addresses to attempt to listen on
*/
async listen (addrs) {
if (!addrs || addrs.length === 0) {