2023-10-03 11:14:36 +08:00
|
|
|
'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
|