Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit 4b5e757

Browse files
authored
fix: update interfaces (#121)
Updates to latest code from libp2p/js-libp2p-interfaces#180
1 parent a0a9169 commit 4b5e757

File tree

3 files changed

+23
-22
lines changed

3 files changed

+23
-22
lines changed

package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,14 @@
133133
"release": "semantic-release"
134134
},
135135
"dependencies": {
136-
"@libp2p/peer-id": "^1.0.4",
136+
"@libp2p/logger": "^1.1.2",
137+
"@libp2p/peer-id": "^1.1.8",
137138
"@multiformats/mafmt": "^11.0.2",
138-
"@multiformats/multiaddr": "^10.1.2",
139-
"debug": "^4.3.1"
139+
"@multiformats/multiaddr": "^10.1.7"
140140
},
141141
"devDependencies": {
142-
"@libp2p/interface-compliance-tests": "^1.0.8",
143-
"@libp2p/interfaces": "^1.1.1",
144-
"@types/debug": "^4.1.5",
142+
"@libp2p/interface-compliance-tests": "^1.1.16",
143+
"@libp2p/interfaces": "^1.3.14",
145144
"aegir": "^36.1.3"
146145
}
147146
}

src/index.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import { PeerId } from '@libp2p/peer-id'
21
import { Multiaddr } from '@multiformats/multiaddr'
32
import { P2P } from '@multiformats/mafmt'
4-
import { EventEmitter } from 'events'
5-
import debug from 'debug'
6-
import type PeerDiscovery from '@libp2p/interfaces/peer-discovery'
3+
import { CustomEvent, EventEmitter } from '@libp2p/interfaces'
4+
import { logger } from '@libp2p/logger'
5+
import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interfaces/peer-discovery'
76
import type { PeerData } from '@libp2p/interfaces/peer-data'
7+
import { peerIdFromString } from '@libp2p/peer-id'
88

9-
const log = Object.assign(debug('libp2p:bootstrap'), {
10-
error: debug('libp2p:bootstrap:error')
11-
})
9+
const log = logger('libp2p:bootstrap')
1210

1311
export interface BootstrapOptions {
1412
/**
@@ -25,10 +23,10 @@ export interface BootstrapOptions {
2523
/**
2624
* Emits 'peer' events on a regular interval for each peer in the provided list.
2725
*/
28-
export class Bootstrap extends EventEmitter implements PeerDiscovery {
26+
export class Bootstrap extends EventEmitter<PeerDiscoveryEvents> implements PeerDiscovery {
2927
static tag = 'bootstrap'
3028

31-
private timer?: NodeJS.Timer
29+
private timer?: ReturnType<typeof setInterval>
3230
private readonly list: PeerData[]
3331
private readonly interval: number
3432

@@ -56,7 +54,7 @@ export class Bootstrap extends EventEmitter implements PeerDiscovery {
5654
}
5755

5856
const peerData: PeerData = {
59-
id: PeerId.fromString(peerIdStr),
57+
id: peerIdFromString(peerIdStr),
6058
multiaddrs: [ma],
6159
protocols: []
6260
}
@@ -91,7 +89,7 @@ export class Bootstrap extends EventEmitter implements PeerDiscovery {
9189
}
9290

9391
this.list.forEach((peerData) => {
94-
this.emit('peer', peerData)
92+
this.dispatchEvent(new CustomEvent<PeerData>('peer', { detail: peerData }))
9593
})
9694
}
9795

test/bootstrap.spec.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import { expect } from 'aegir/utils/chai.js'
44
import { IPFS } from '@multiformats/mafmt'
5-
import { PeerId } from '@libp2p/peer-id'
65
import { Bootstrap } from '../src/index.js'
76
import peerList from './fixtures/default-peers.js'
87
import partialValidPeerList from './fixtures/some-invalid-peers.js'
98
import type { PeerData } from '@libp2p/interfaces/peer-data'
9+
import { isPeerId } from '@libp2p/interfaces/peer-id'
1010

1111
describe('bootstrap', () => {
1212
it('should throw if no peer list is provided', () => {
@@ -21,7 +21,9 @@ describe('bootstrap', () => {
2121
interval: 2000
2222
})
2323

24-
const p = new Promise((resolve) => r.once('peer', resolve))
24+
const p = new Promise((resolve) => r.addEventListener('peer', resolve, {
25+
once: true
26+
}))
2527
r.start()
2628

2729
await p
@@ -37,9 +39,11 @@ describe('bootstrap', () => {
3739
})
3840

3941
const p = new Promise<void>((resolve) => {
40-
r.once('peer', ({ id, multiaddrs }) => {
42+
r.addEventListener('peer', (evt) => {
43+
const { id, multiaddrs } = evt.detail
44+
4145
expect(id).to.exist()
42-
expect(id).to.be.an.instanceOf(PeerId)
46+
expect(isPeerId(id)).to.be.true()
4347
expect(multiaddrs.length).to.eq(1)
4448
expect(IPFS.matches(multiaddrs[0].toString())).equals(true)
4549
resolve()
@@ -60,7 +64,7 @@ describe('bootstrap', () => {
6064
})
6165

6266
let emitted: PeerData[] = []
63-
r.on('peer', p => emitted.push(p))
67+
r.addEventListener('peer', p => emitted.push(p.detail))
6468

6569
// Should fire emit event for each peer in list on start,
6670
// so wait 50 milliseconds then check

0 commit comments

Comments
 (0)