diff --git a/packages/interface-content-routing/src/index.ts b/packages/interface-content-routing/src/index.ts index 0a191d55e..e782df635 100644 --- a/packages/interface-content-routing/src/index.ts +++ b/packages/interface-content-routing/src/index.ts @@ -2,6 +2,27 @@ import type { CID } from 'multiformats/cid' import type { AbortOptions } from '@libp2p/interfaces' import type { PeerInfo } from '@libp2p/interface-peer-info' +/** + * Any object that implements this Symbol as a property should return a + * ContentRouting instance as the property value, similar to how + * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`. + * + * @example + * + * ```js + * import { contentRouting, ContentRouting } from '@libp2p/content-routing' + * + * class MyContentRouter implements ContentRouting { + * get [contentRouting] () { + * return this + * } + * + * // ...other methods + * } + * ``` + */ +export const contentRouting = Symbol.for('@libp2p/content-routing') + export interface ContentRouting { /** * The implementation of this method should ensure that network peers know the diff --git a/packages/interface-peer-discovery/src/index.ts b/packages/interface-peer-discovery/src/index.ts index 4a2c22a44..bcb738542 100644 --- a/packages/interface-peer-discovery/src/index.ts +++ b/packages/interface-peer-discovery/src/index.ts @@ -1,6 +1,27 @@ import type { PeerInfo } from '@libp2p/interface-peer-info' import type { EventEmitter } from '@libp2p/interfaces/events' +/** + * Any object that implements this Symbol as a property should return a + * PeerDiscovery instance as the property value, similar to how + * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`. + * + * @example + * + * ```js + * import { peerDiscovery, PeerDiscovery } from '@libp2p/peer-discovery' + * + * class MyPeerDiscoverer implements PeerDiscovery { + * get [peerDiscovery] () { + * return this + * } + * + * // ...other methods + * } + * ``` + */ +export const peerDiscovery = Symbol.for('@libp2p/peer-discovery') + export const symbol = Symbol.for('@libp2p/peer-discovery') export interface PeerDiscoveryEvents { diff --git a/packages/interface-peer-routing/src/index.ts b/packages/interface-peer-routing/src/index.ts index 0f13e8d3f..d4bbef25c 100644 --- a/packages/interface-peer-routing/src/index.ts +++ b/packages/interface-peer-routing/src/index.ts @@ -2,6 +2,27 @@ import type { PeerId } from '@libp2p/interface-peer-id' import type { PeerInfo } from '@libp2p/interface-peer-info' import type { AbortOptions } from '@libp2p/interfaces' +/** + * Any object that implements this Symbol as a property should return a + * PeerRouting instance as the property value, similar to how + * `Symbol.Iterable` can be used to return an `Iterable` from an `Iterator`. + * + * @example + * + * ```js + * import { peerRouting, PeerRouting } from '@libp2p/peer-routing' + * + * class MyPeerRouter implements PeerRouting { + * get [peerRouting] () { + * return this + * } + * + * // ...other methods + * } + * ``` + */ +export const peerRouting = Symbol.for('@libp2p/peer-routing') + export interface PeerRouting { /** * Searches the network for peer info corresponding to the passed peer id.