File tree Expand file tree Collapse file tree 4 files changed +19
-8
lines changed Expand file tree Collapse file tree 4 files changed +19
-8
lines changed Original file line number Diff line number Diff line change 168
168
"dependencies" : {
169
169
"@chainsafe/is-ip" : " ^2.0.1" ,
170
170
"@chainsafe/netmask" : " ^2.0.0" ,
171
- "@libp2p/interface" : " ^1.0.0" ,
172
171
"@multiformats/dns" : " ^1.0.3" ,
173
172
"multiformats" : " ^13.0.0" ,
174
173
"uint8-varint" : " ^2.0.1" ,
Original file line number Diff line number Diff line change 12
12
* ```
13
13
*/
14
14
15
- import { CodeError } from '@libp2p/interface'
16
15
import { base58btc } from 'multiformats/bases/base58'
17
16
import { CID } from 'multiformats/cid'
18
17
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
@@ -32,6 +31,13 @@ const DNS_CODES = [
32
31
getProtocol ( 'dnsaddr' ) . code
33
32
]
34
33
34
+ class NoAvailableResolverError extends Error {
35
+ constructor ( message = 'No available resolver' ) {
36
+ super ( message )
37
+ this . name = 'NoAvailableResolverError'
38
+ }
39
+ }
40
+
35
41
/**
36
42
* Creates a {@link Multiaddr} from a {@link MultiaddrInput}
37
43
*/
@@ -232,7 +238,7 @@ export class Multiaddr implements MultiaddrInterface {
232
238
233
239
const resolver = resolvers . get ( resolvableProto . name )
234
240
if ( resolver == null ) {
235
- throw new CodeError ( `no available resolver for ${ resolvableProto . name } ` , 'ERR_NO_AVAILABLE_RESOLVER' )
241
+ throw new NoAvailableResolverError ( `no available resolver for ${ resolvableProto . name } ` )
236
242
}
237
243
238
244
const result = await resolver ( this , options )
Original file line number Diff line number Diff line change 1
- import { CodeError } from '@libp2p/interface'
2
1
import { dns , RecordType } from '@multiformats/dns'
3
2
import { multiaddr } from '../index.js'
4
3
import { getProtocol } from '../protocols-table.js'
@@ -9,6 +8,13 @@ import type { DNS } from '@multiformats/dns'
9
8
const MAX_RECURSIVE_DEPTH = 32
10
9
const { code : dnsaddrCode } = getProtocol ( 'dnsaddr' )
11
10
11
+ class RecursionLimitError extends Error {
12
+ constructor ( message = 'Max recursive depth reached' ) {
13
+ super ( message )
14
+ this . name = 'RecursionLimitError'
15
+ }
16
+ }
17
+
12
18
export interface DNSADDROptions extends AbortOptions {
13
19
/**
14
20
* An optional DNS resolver
@@ -28,7 +34,7 @@ export const dnsaddrResolver: Resolver<DNSADDROptions> = async function dnsaddrR
28
34
const recursionLimit = options . maxRecursiveDepth ?? MAX_RECURSIVE_DEPTH
29
35
30
36
if ( recursionLimit === 0 ) {
31
- throw new CodeError ( 'Max recursive depth reached' , 'ERR_MAX_RECURSIVE_DEPTH_REACHED ')
37
+ throw new RecursionLimitError ( 'Max recursive depth reached' )
32
38
}
33
39
34
40
const [ , hostname ] = ma . stringTuples ( ) . find ( ( [ proto ] ) => proto === dnsaddrCode ) ?? [ ]
Original file line number Diff line number Diff line change @@ -82,7 +82,7 @@ describe('multiaddr resolve', () => {
82
82
83
83
// Resolve
84
84
await expect ( ma . resolve ( ) ) . to . eventually . be . rejected ( )
85
- . and . to . have . property ( 'code ' , 'ERR_NO_AVAILABLE_RESOLVER ' )
85
+ . and . to . have . property ( 'name ' , 'NoAvailableResolverError ' )
86
86
} )
87
87
88
88
describe ( 'dnsaddr' , ( ) => {
@@ -153,7 +153,7 @@ describe('multiaddr resolve', () => {
153
153
maxRecursiveDepth : 1
154
154
} )
155
155
156
- await expect ( resolvePromise ) . to . eventually . be . rejected ( ) . with . property ( 'code ' , 'ERR_MAX_RECURSIVE_DEPTH_REACHED ' )
156
+ await expect ( resolvePromise ) . to . eventually . be . rejected ( ) . with . property ( 'name ' , 'RecursionLimitError ' )
157
157
} )
158
158
159
159
it ( 'should handle recursive loops' , async ( ) => {
@@ -165,7 +165,7 @@ describe('multiaddr resolve', () => {
165
165
maxRecursiveDepth : 1
166
166
} )
167
167
168
- await expect ( resolvePromise ) . to . eventually . be . rejected ( ) . with . property ( 'code ' , 'ERR_MAX_RECURSIVE_DEPTH_REACHED ' )
168
+ await expect ( resolvePromise ) . to . eventually . be . rejected ( ) . with . property ( 'name ' , 'RecursionLimitError ' )
169
169
} )
170
170
171
171
it ( 'should handle double quotes' , async ( ) => {
You can’t perform that action at this time.
0 commit comments