35 lines
782 B
JavaScript
35 lines
782 B
JavaScript
|
|
||
|
/**
|
||
|
* fetch-error.js
|
||
|
*
|
||
|
* FetchError interface for operational errors
|
||
|
*/
|
||
|
|
||
|
module.exports = FetchError;
|
||
|
|
||
|
/**
|
||
|
* Create FetchError instance
|
||
|
*
|
||
|
* @param String message Error message for human
|
||
|
* @param String type Error type for machine
|
||
|
* @param String systemError For Node.js system error
|
||
|
* @return FetchError
|
||
|
*/
|
||
|
function FetchError(message, type, systemError) {
|
||
|
|
||
|
// hide custom error implementation details from end-users
|
||
|
Error.captureStackTrace(this, this.constructor);
|
||
|
|
||
|
this.name = this.constructor.name;
|
||
|
this.message = message;
|
||
|
this.type = type;
|
||
|
|
||
|
// when err.type is `system`, err.code contains system error code
|
||
|
if (systemError) {
|
||
|
this.code = this.errno = systemError.code;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
require('util').inherits(FetchError, Error);
|