You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
713 B
33 lines
713 B
2 years ago
|
'use strict'
|
||
|
class FetchError extends Error {
|
||
|
constructor (message, type, systemError) {
|
||
|
super(message)
|
||
|
this.code = 'FETCH_ERROR'
|
||
|
|
||
|
// pick up code, expected, path, ...
|
||
|
if (systemError) {
|
||
|
Object.assign(this, systemError)
|
||
|
}
|
||
|
|
||
|
this.errno = this.code
|
||
|
|
||
|
// override anything the system error might've clobbered
|
||
|
this.type = this.code === 'EBADSIZE' && this.found > this.expect
|
||
|
? 'max-size' : type
|
||
|
this.message = message
|
||
|
Error.captureStackTrace(this, this.constructor)
|
||
|
}
|
||
|
|
||
|
get name () {
|
||
|
return 'FetchError'
|
||
|
}
|
||
|
|
||
|
// don't allow name to be overwritten
|
||
|
set name (n) {}
|
||
|
|
||
|
get [Symbol.toStringTag] () {
|
||
|
return 'FetchError'
|
||
|
}
|
||
|
}
|
||
|
module.exports = FetchError
|