/** * 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);