Skip to content

Commit aa6e086

Browse files
authored
fix: throw named error (#21)
* fix: throw named error To make debugging easier, throw `DNSQueryFailedError` instead of a generic `AggregateError` when DNS queries fail. * chore: fix test
1 parent 3782b7d commit aa6e086

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

src/dns.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { CustomProgressEvent } from 'progress-events'
2+
import { DNSQueryFailedError } from './errors.ts'
23
import { defaultResolver } from './resolvers/default.js'
34
import { cache } from './utils/cache.js'
45
import { getTypes } from './utils/get-types.js'
@@ -83,10 +84,6 @@ export class DNS implements DNSInterface {
8384
}
8485
}
8586

86-
if (errors.length === 1) {
87-
throw errors[0]
88-
}
89-
90-
throw new AggregateError(errors, `DNS lookup of ${domain} ${types} failed`)
87+
throw new DNSQueryFailedError(errors, `DNS lookup of ${domain} ${types} failed`)
9188
}
9289
}

src/errors.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export class DNSQueryFailedError extends AggregateError {
2+
static name = 'DNSQueryFailedError'
3+
name = 'DNSQueryFailedError'
4+
}

test/index.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,10 @@ describe('dns', () => {
230230
signal: controller.signal
231231
})
232232

233-
await expect(result).to.eventually.be.rejectedWith(error)
233+
await expect(result).to.eventually.be.rejected()
234+
.with.deep.property('errors', [
235+
error
236+
])
234237

235238
// only one resolver should have been called
236239
expect(resolvers.reduce((acc, curr) => acc + curr.callCount, 0)).to.equal(1)

0 commit comments

Comments
 (0)