UNPKG

@libp2p/interface

Version:
46 lines 1.54 kB
import type { Connection } from './connection.js'; import type { PeerId } from './peer-id.js'; /** * A topology filter - this can be used by topologies to ensure they do not * receive duplicate notifications of individual peers * * @see https://libp2p.github.io/js-libp2p/classes/_libp2p_peer-collections.PeerFilter.html */ export interface TopologyFilter { has(peerId: PeerId): boolean; add(peerId: PeerId): void; remove(peerId: PeerId): void; } /** * A topology is a network overlay that contains a subset of peers in the * complete network. * * It is a way to be notified when peers that support a given protocol connect * to or disconnect from the current node. */ export interface Topology { /** * An optional filter can prevent duplicate topology notifications for the * same peer. */ filter?: TopologyFilter; /** * If true, invoke `onConnect` for this topology on limited connections, e.g. * ones with limits on how much data can be transferred or how long they can * be open for. * * @default false */ notifyOnLimitedConnection?: boolean; /** * Invoked when a new connection is opened to a peer that supports the * registered protocol */ onConnect?(peerId: PeerId, conn: Connection): void | Promise<void>; /** * Invoked when the last connection to a peer that supports the registered * protocol closes */ onDisconnect?(peerId: PeerId): void | Promise<void>; } //# sourceMappingURL=topology.d.ts.map