UNPKG

@libp2p/interface-mocks

Version:
47 lines 1.34 kB
import { peerDiscovery } from '@libp2p/interface-peer-discovery'; import { EventEmitter } from '@libp2p/interfaces/events'; import * as PeerIdFactory from '@libp2p/peer-id-factory'; import { multiaddr } from '@multiformats/multiaddr'; /** * Emits 'peer' events on discovery. */ export class MockDiscovery extends EventEmitter { options; _isRunning; _timer; constructor(init = {}) { super(); this.options = init; this._isRunning = false; } [peerDiscovery] = this; start() { this._isRunning = true; this._discoverPeer(); } stop() { clearTimeout(this._timer); this._isRunning = false; } isStarted() { return this._isRunning; } _discoverPeer() { if (!this._isRunning) return; PeerIdFactory.createEd25519PeerId() .then(peerId => { this._timer = setTimeout(() => { this.safeDispatchEvent('peer', { detail: { id: peerId, multiaddrs: [multiaddr('/ip4/127.0.0.1/tcp/8000')], protocols: [] } }); }, this.options.discoveryDelay ?? 1000); }) .catch(() => { }); } } //# sourceMappingURL=peer-discovery.js.map