Skip to content

Commit 1e058bc

Browse files
committed
refactor: replace err-code with CodeError
Replaces [err-code](https://github.com/IndigoUnited/js-err-code/blob/master/index.js) with [CodeError](libp2p/js-libp2p-interfaces#314) Related: [js-libp2p#1269](libp2p/js-libp2p#1269) Changes - removes err-code from dependencies - adds @libp2p/[email protected] to dependencies - uses CodeError in place of err-code
1 parent 7ea06a8 commit 1e058bc

File tree

7 files changed

+20
-21
lines changed

7 files changed

+20
-21
lines changed

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,11 @@
148148
"@libp2p/interface-peer-info": "^1.0.3",
149149
"@libp2p/interface-peer-store": "^1.2.2",
150150
"@libp2p/interface-record": "^2.0.1",
151-
"@libp2p/interfaces": "^3.0.3",
151+
"@libp2p/interfaces": "^3.2.0",
152152
"@libp2p/logger": "^2.0.0",
153153
"@libp2p/peer-id": "^2.0.0",
154154
"@libp2p/peer-record": "^5.0.0",
155155
"@multiformats/multiaddr": "^11.0.0",
156-
"err-code": "^3.0.1",
157156
"interface-datastore": "^7.0.0",
158157
"it-all": "^2.0.0",
159158
"it-filter": "^2.0.0",

src/address-book.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { logger } from '@libp2p/logger'
2-
import errcode from 'err-code'
2+
import { CodeError } from '@libp2p/interfaces/errors'
33
import { isMultiaddr } from '@multiformats/multiaddr'
44
import { codes } from './errors.js'
55
import { PeerRecord, RecordEnvelope } from '@libp2p/peer-record'
@@ -174,7 +174,7 @@ export class PeerStoreAddressBook {
174174

175175
if (!Array.isArray(multiaddrs)) {
176176
log.error('multiaddrs must be an array of Multiaddrs')
177-
throw errcode(new Error('multiaddrs must be an array of Multiaddrs'), codes.ERR_INVALID_PARAMETERS)
177+
throw new CodeError('multiaddrs must be an array of Multiaddrs', codes.ERR_INVALID_PARAMETERS)
178178
}
179179

180180
log.trace('set await write lock')
@@ -244,7 +244,7 @@ export class PeerStoreAddressBook {
244244

245245
if (!Array.isArray(multiaddrs)) {
246246
log.error('multiaddrs must be an array of Multiaddrs')
247-
throw errcode(new Error('multiaddrs must be an array of Multiaddrs'), codes.ERR_INVALID_PARAMETERS)
247+
throw new CodeError('multiaddrs must be an array of Multiaddrs', codes.ERR_INVALID_PARAMETERS)
248248
}
249249

250250
log.trace('add await write lock')
@@ -351,7 +351,7 @@ async function filterMultiaddrs (peerId: PeerId, multiaddrs: Multiaddr[], addres
351351
(source) => each(source, (multiaddr) => {
352352
if (!isMultiaddr(multiaddr)) {
353353
log.error('multiaddr must be an instance of Multiaddr')
354-
throw errcode(new Error('multiaddr must be an instance of Multiaddr'), codes.ERR_INVALID_PARAMETERS)
354+
throw new CodeError('multiaddr must be an instance of Multiaddr', codes.ERR_INVALID_PARAMETERS)
355355
}
356356
}),
357357
(source) => filter(source, async (multiaddr) => await addressFilter(peerId, multiaddr)),

src/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { PeerStoreProtoBook } from './proto-book.js'
77
import { PersistentStore, Store } from './store.js'
88
import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer, TagOptions } from '@libp2p/interface-peer-store'
99
import type { PeerId } from '@libp2p/interface-peer-id'
10-
import errCode from 'err-code'
10+
import { CodeError } from '@libp2p/interfaces/errors'
1111
import { Tag, Tags } from './pb/tags.js'
1212
import type { Datastore } from 'interface-datastore'
1313

@@ -125,7 +125,7 @@ export class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implement
125125
const ttl = options.ttl ?? undefined
126126

127127
if (value !== providedValue || value < 0 || value > 100) {
128-
throw errCode(new Error('Tag value must be between 0-100'), 'ERR_TAG_VALUE_OUT_OF_BOUNDS')
128+
throw new CodeError('Tag value must be between 0-100', 'ERR_TAG_VALUE_OUT_OF_BOUNDS')
129129
}
130130

131131
const buf = await this.metadataBook.getValue(peerId, 'tags')
@@ -137,7 +137,7 @@ export class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implement
137137

138138
for (const t of tags) {
139139
if (t.name === tag) {
140-
throw errCode(new Error('Peer already tagged'), 'ERR_DUPLICATE_TAG')
140+
throw new CodeError('Peer already tagged', 'ERR_DUPLICATE_TAG')
141141
}
142142
}
143143

src/key-book.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { logger } from '@libp2p/logger'
2-
import errcode from 'err-code'
2+
import { CodeError } from '@libp2p/interfaces/errors'
33
import { codes } from './errors.js'
44
import { peerIdFromPeerId } from '@libp2p/peer-id'
55
import { equals as uint8arrayEquals } from 'uint8arrays/equals'
@@ -32,7 +32,7 @@ export class PeerStoreKeyBook implements KeyBook {
3232

3333
if (!(publicKey instanceof Uint8Array)) {
3434
log.error('publicKey must be an instance of Uint8Array to store data')
35-
throw errcode(new Error('publicKey must be an instance of PublicKey'), codes.ERR_INVALID_PARAMETERS)
35+
throw new CodeError('publicKey must be an instance of PublicKey', codes.ERR_INVALID_PARAMETERS)
3636
}
3737

3838
log.trace('set await write lock')

src/metadata-book.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { logger } from '@libp2p/logger'
2-
import errcode from 'err-code'
2+
import { CodeError } from '@libp2p/interfaces/errors'
33
import { codes } from './errors.js'
44
import { peerIdFromPeerId } from '@libp2p/peer-id'
55
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
@@ -80,7 +80,7 @@ export class PeerStoreMetadataBook implements MetadataBook {
8080

8181
if (!(metadata instanceof Map)) {
8282
log.error('valid metadata must be provided to store data')
83-
throw errcode(new Error('valid metadata must be provided'), codes.ERR_INVALID_PARAMETERS)
83+
throw new CodeError('valid metadata must be provided', codes.ERR_INVALID_PARAMETERS)
8484
}
8585

8686
log.trace('set await write lock')
@@ -123,7 +123,7 @@ export class PeerStoreMetadataBook implements MetadataBook {
123123

124124
if (typeof key !== 'string' || !(value instanceof Uint8Array)) {
125125
log.error('valid key and value must be provided to store data')
126-
throw errcode(new Error('valid key and value must be provided'), codes.ERR_INVALID_PARAMETERS)
126+
throw new CodeError('valid key and value must be provided', codes.ERR_INVALID_PARAMETERS)
127127
}
128128

129129
log.trace('setValue await write lock')

src/proto-book.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { logger } from '@libp2p/logger'
2-
import errcode from 'err-code'
2+
import { CodeError } from '@libp2p/interfaces/errors'
33
import { codes } from './errors.js'
44
import { peerIdFromPeerId } from '@libp2p/peer-id'
55
import { CustomEvent } from '@libp2p/interfaces/events'
@@ -50,7 +50,7 @@ export class PeerStoreProtoBook implements ProtoBook {
5050

5151
if (!Array.isArray(protocols)) {
5252
log.error('protocols must be provided to store data')
53-
throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
53+
throw new CodeError('protocols must be provided', codes.ERR_INVALID_PARAMETERS)
5454
}
5555

5656
log.trace('set await write lock')
@@ -99,7 +99,7 @@ export class PeerStoreProtoBook implements ProtoBook {
9999

100100
if (!Array.isArray(protocols)) {
101101
log.error('protocols must be provided to store data')
102-
throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
102+
throw new CodeError('protocols must be provided', codes.ERR_INVALID_PARAMETERS)
103103
}
104104

105105
log.trace('add await write lock')
@@ -149,7 +149,7 @@ export class PeerStoreProtoBook implements ProtoBook {
149149

150150
if (!Array.isArray(protocols)) {
151151
log.error('protocols must be provided to store data')
152-
throw errcode(new Error('protocols must be provided'), codes.ERR_INVALID_PARAMETERS)
152+
throw new CodeError('protocols must be provided', codes.ERR_INVALID_PARAMETERS)
153153
}
154154

155155
log.trace('remove await write lock')

src/store.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { logger } from '@libp2p/logger'
22
import { peerIdFromBytes } from '@libp2p/peer-id'
3-
import errcode from 'err-code'
3+
import { CodeError } from '@libp2p/interfaces/errors'
44
import { codes } from './errors.js'
55
import { Key } from 'interface-datastore/key'
66
import { base32 } from 'multiformats/bases/base32'
@@ -48,7 +48,7 @@ export class PersistentStore {
4848
_peerIdToDatastoreKey (peerId: PeerId) {
4949
if (peerId.type == null) {
5050
log.error('peerId must be an instance of peer-id to store data')
51-
throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
51+
throw new CodeError('peerId must be an instance of peer-id', codes.ERR_INVALID_PARAMETERS)
5252
}
5353

5454
const b32key = peerId.toCID().toString()
@@ -90,7 +90,7 @@ export class PersistentStore {
9090
async save (peer: Peer) {
9191
if (peer.pubKey != null && peer.id.publicKey != null && !uint8arrayEquals(peer.pubKey, peer.id.publicKey)) {
9292
log.error('peer publicKey bytes do not match peer id publicKey bytes')
93-
throw errcode(new Error('publicKey bytes do not match peer id publicKey bytes'), codes.ERR_INVALID_PARAMETERS)
93+
throw new CodeError('publicKey bytes do not match peer id publicKey bytes', codes.ERR_INVALID_PARAMETERS)
9494
}
9595

9696
// dedupe addresses

0 commit comments

Comments
 (0)