Skip to content
This repository has been archived by the owner on Jul 21, 2023. It is now read-only.

chore: replace err-code with CodeError #413

Merged
merged 1 commit into from
Jan 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
"@libp2p/interface-peer-info": "^1.0.3",
"@libp2p/interface-peer-store": "^1.2.2",
"@libp2p/interface-registrar": "^2.0.3",
"@libp2p/interfaces": "^3.0.3",
"@libp2p/interfaces": "^3.2.0",
"@libp2p/logger": "^2.0.1",
"@libp2p/peer-collections": "^3.0.0",
"@libp2p/peer-id": "^2.0.0",
Expand All @@ -163,7 +163,6 @@
"abortable-iterator": "^4.0.2",
"any-signal": "^3.0.0",
"datastore-core": "^8.0.1",
"err-code": "^3.0.1",
"events": "^3.3.0",
"hashlru": "^2.3.0",
"interface-datastore": "^7.0.0",
Expand Down
8 changes: 4 additions & 4 deletions src/content-fetching/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
import { Libp2pRecord } from '@libp2p/record'
import { verifyRecord } from '@libp2p/record/validators'
Expand Down Expand Up @@ -126,7 +126,7 @@ export class ContentFetching {
}

if (!sentCorrection) {
yield queryErrorEvent({ from, error: errcode(new Error('value not put correctly'), 'ERR_PUT_VALUE_INVALID') })
yield queryErrorEvent({ from, error: new CodeError('value not put correctly', 'ERR_PUT_VALUE_INVALID') })
}

this.log.error('Failed error correcting entry')
Expand Down Expand Up @@ -170,7 +170,7 @@ export class ContentFetching {
}

if (!(putEvent.record != null && uint8ArrayEquals(putEvent.record.value, Libp2pRecord.deserialize(record).value))) {
events.push(queryErrorEvent({ from: event.peer.id, error: errcode(new Error('value not put correctly'), 'ERR_PUT_VALUE_INVALID') }))
events.push(queryErrorEvent({ from: event.peer.id, error: new CodeError('value not put correctly', 'ERR_PUT_VALUE_INVALID') }))
}
}

Expand Down Expand Up @@ -225,7 +225,7 @@ export class ContentFetching {
this.log('GetValue %b %b', key, best)

if (best == null) {
throw errcode(new Error('best value was not found'), 'ERR_NOT_FOUND')
throw new CodeError('best value was not found', 'ERR_NOT_FOUND')
}

yield * this.sendCorrectionRecord(key, vals, best, options)
Expand Down
12 changes: 6 additions & 6 deletions src/dual-kad-dht.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { logger } from '@libp2p/logger'
import errCode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import merge from 'it-merge'
import { queryErrorEvent } from './query/events.js'
import type { KadDHT } from './kad-dht.js'
Expand Down Expand Up @@ -136,13 +136,13 @@ export class DualKadDHT extends EventEmitter<PeerDiscoveryEvents> implements Dua
}

if (!queriedPeers) {
throw errCode(new Error('No peers found in routing table!'), 'ERR_NO_PEERS_IN_ROUTING_TABLE')
throw new CodeError('No peers found in routing table!', 'ERR_NO_PEERS_IN_ROUTING_TABLE')
}

if (!foundValue) {
yield queryErrorEvent({
from: this.components.peerId,
error: errCode(new Error('Not found'), 'ERR_NOT_FOUND')
error: new CodeError('Not found', 'ERR_NOT_FOUND')
})
}
}
Expand Down Expand Up @@ -184,10 +184,10 @@ export class DualKadDHT extends EventEmitter<PeerDiscoveryEvents> implements Dua
if (success === 0) {
if (errors.length > 0) {
// if all sends failed, throw an error to inform the caller
throw errCode(new Error(`Failed to provide to ${errors.length} of ${sent} peers`), 'ERR_PROVIDES_FAILED', { errors })
throw new CodeError(`Failed to provide to ${errors.length} of ${sent} peers`, 'ERR_PROVIDES_FAILED', { errors })
}

throw errCode(new Error('Failed to provide - no peers found'), 'ERR_PROVIDES_FAILED')
throw new CodeError('Failed to provide - no peers found', 'ERR_PROVIDES_FAILED')
}
}

Expand Down Expand Up @@ -221,7 +221,7 @@ export class DualKadDHT extends EventEmitter<PeerDiscoveryEvents> implements Dua
}

if (!queriedPeers) {
throw errCode(new Error('Peer lookup failed'), 'ERR_LOOKUP_FAILED')
throw new CodeError('Peer lookup failed', 'ERR_LOOKUP_FAILED')
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/network.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { pipe } from 'it-pipe'
import * as lp from 'it-length-prefixed'
import drain from 'it-drain'
Expand Down Expand Up @@ -183,7 +183,7 @@ export class Network extends EventEmitter<NetworkEvents> implements Startable {
return buf
}

throw errcode(new Error('No message received'), 'ERR_NO_MESSAGE_RECEIVED')
throw new CodeError('No message received', 'ERR_NO_MESSAGE_RECEIVED')
}
)

Expand Down
14 changes: 7 additions & 7 deletions src/peer-routing/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { verifyRecord } from '@libp2p/record/validators'
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
import { Message, MESSAGE_TYPE } from '../message/index.js'
Expand Down Expand Up @@ -116,18 +116,18 @@ export class PeerRouting {

// compare hashes of the pub key
if (!recPeer.equals(peer)) {
throw errcode(new Error('public key does not match id'), 'ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID')
throw new CodeError('public key does not match id', 'ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID')
}

if (recPeer.publicKey == null) {
throw errcode(new Error('public key missing'), 'ERR_PUBLIC_KEY_MISSING')
throw new CodeError('public key missing', 'ERR_PUBLIC_KEY_MISSING')
}

yield valueEvent({ from: peer, value: recPeer.publicKey })
}
}

throw errcode(new Error(`Node not responding with its public key: ${peer.toString()}`), 'ERR_INVALID_RECORD')
throw new CodeError(`Node not responding with its public key: ${peer.toString()}`, 'ERR_INVALID_RECORD')
}

/**
Expand Down Expand Up @@ -207,7 +207,7 @@ export class PeerRouting {
}

if (!foundPeer) {
yield queryErrorEvent({ from: this.components.peerId, error: errcode(new Error('Not found'), 'ERR_NOT_FOUND') })
yield queryErrorEvent({ from: this.components.peerId, error: new CodeError('Not found', 'ERR_NOT_FOUND') })
}
}

Expand Down Expand Up @@ -270,7 +270,7 @@ export class PeerRouting {
const errMsg = 'invalid record received, discarded'
this.log(errMsg)

yield queryErrorEvent({ from: event.from, error: errcode(new Error(errMsg), 'ERR_INVALID_RECORD') })
yield queryErrorEvent({ from: event.from, error: new CodeError(errMsg, 'ERR_INVALID_RECORD') })
continue
}
}
Expand All @@ -286,7 +286,7 @@ export class PeerRouting {
*/
async _verifyRecordOnline (record: DHTRecord) {
if (record.timeReceived == null) {
throw errcode(new Error('invalid record received'), 'ERR_INVALID_RECORD')
throw new CodeError('invalid record received', 'ERR_INVALID_RECORD')
}

await verifyRecord(this.validators, new Libp2pRecord(record.key, record.value, record.timeReceived))
Expand Down
4 changes: 2 additions & 2 deletions src/query/query-path.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Queue from 'p-queue'
import { xor } from 'uint8arrays/xor'
import { toString } from 'uint8arrays/to-string'
import defer from 'p-defer'
import errCode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { convertPeerId, convertBuffer } from '../utils.js'
import { TimeoutController } from 'timeout-abort-controller'
import { anySignal } from 'any-signal'
Expand Down Expand Up @@ -235,7 +235,7 @@ async function * toGenerator (queue: Queue, signal: AbortSignal, cleanUp: EventE
cleanup()

if (wasRunning) {
deferred.reject(errCode(new Error('Query aborted'), 'ERR_QUERY_ABORTED'))
deferred.reject(new CodeError('Query aborted', 'ERR_QUERY_ABORTED'))
}
})

Expand Down
6 changes: 3 additions & 3 deletions src/rpc/handlers/add-provider.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CID } from 'multiformats/cid'
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { logger } from '@libp2p/logger'
import type { Providers } from '../../providers'
import type { PeerId } from '@libp2p/interface-peer-id'
Expand All @@ -24,15 +24,15 @@ export class AddProviderHandler implements DHTMessageHandler {
log('start')

if (msg.key == null || msg.key.length === 0) {
throw errcode(new Error('Missing key'), 'ERR_MISSING_KEY')
throw new CodeError('Missing key', 'ERR_MISSING_KEY')
}

let cid: CID
try {
// this is actually just the multihash, not the whole CID
cid = CID.decode(msg.key)
} catch (err: any) {
throw errcode(new Error('Invalid CID'), 'ERR_INVALID_CID')
throw new CodeError('Invalid CID', 'ERR_INVALID_CID')
}

if (msg.providerPeers == null || msg.providerPeers.length === 0) {
Expand Down
4 changes: 2 additions & 2 deletions src/rpc/handlers/get-providers.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CID } from 'multiformats/cid'
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { Message } from '../../message/index.js'
import {
removePrivateAddresses,
Expand Down Expand Up @@ -45,7 +45,7 @@ export class GetProvidersHandler implements DHTMessageHandler {
try {
cid = CID.decode(msg.key)
} catch (err: any) {
throw errcode(new Error('Invalid CID'), 'ERR_INVALID_CID')
throw new CodeError('Invalid CID', 'ERR_INVALID_CID')
}

log('%p asking for providers for %s', peerId, cid)
Expand Down
8 changes: 4 additions & 4 deletions src/rpc/handlers/get-value.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Libp2pRecord } from '@libp2p/record'
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { Message, MESSAGE_TYPE } from '../../message/index.js'
import {
MAX_RECORD_AGE
Expand Down Expand Up @@ -40,7 +40,7 @@ export class GetValueHandler implements DHTMessageHandler {
log('%p asked for key %b', peerId, key)

if (key == null || key.length === 0) {
throw errcode(new Error('Invalid key'), 'ERR_INVALID_KEY')
throw new CodeError('Invalid key', 'ERR_INVALID_KEY')
}

const response = new Message(MESSAGE_TYPE.GET_VALUE, key, msg.clusterLevel)
Expand All @@ -54,7 +54,7 @@ export class GetValueHandler implements DHTMessageHandler {
const key = await this.components.peerStore.keyBook.get(idFromKey)

if (key == null) {
throw errcode(new Error('No public key found in key book'), 'ERR_NOT_FOUND')
throw new CodeError('No public key found in key book', 'ERR_NOT_FOUND')
}

pubKey = key
Expand Down Expand Up @@ -114,7 +114,7 @@ export class GetValueHandler implements DHTMessageHandler {
const record = Libp2pRecord.deserialize(rawRecord)

if (record == null) {
throw errcode(new Error('Invalid record'), 'ERR_INVALID_RECORD')
throw new CodeError('Invalid record', 'ERR_INVALID_RECORD')
}

// Check validity: compare time received with max record age
Expand Down
4 changes: 2 additions & 2 deletions src/rpc/handlers/put-value.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { bufferToRecordKey } from '../../utils.js'
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { verifyRecord } from '@libp2p/record/validators'
import { Logger, logger } from '@libp2p/logger'
import type { DHTMessageHandler } from '../index.js'
Expand Down Expand Up @@ -39,7 +39,7 @@ export class PutValueHandler implements DHTMessageHandler {
const errMsg = `Empty record from: ${peerId.toString()}`

this.log.error(errMsg)
throw errcode(new Error(errMsg), 'ERR_EMPTY_RECORD')
throw new CodeError(errMsg, 'ERR_EMPTY_RECORD')
}

try {
Expand Down
6 changes: 3 additions & 3 deletions test/kad-dht.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import { expect } from 'aegir/chai'
import sinon from 'sinon'
import { Libp2pRecord } from '@libp2p/record'
import errcode from 'err-code'
import { CodeError } from '@libp2p/interfaces/errors'
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
import drain from 'it-drain'
Expand Down Expand Up @@ -213,7 +213,7 @@ describe('KadDHT', () => {
this.timeout(10 * 1000)

const errCode = 'ERR_NOT_AVAILABLE'
const error = errcode(new Error('fake error'), errCode)
const error = new CodeError('fake error', errCode)
const key = uint8ArrayFromString('/v/hello')
const value = uint8ArrayFromString('world')

Expand Down Expand Up @@ -797,7 +797,7 @@ describe('KadDHT', () => {
this.timeout(240 * 1000)

const errCode = 'ERR_INVALID_RECORD_FAKE'
const error = errcode(new Error('fake error'), errCode)
const error = new CodeError('fake error', errCode)

const [dhtA, dhtB] = await Promise.all([
tdht.spawn(),
Expand Down