23 lines
655 B
JavaScript
23 lines
655 B
JavaScript
|
'use strict'
|
||
|
|
||
|
module.exports = class ModuleError extends Error {
|
||
|
/**
|
||
|
* @param {string} message Error message
|
||
|
* @param {{ code?: string, cause?: Error, expected?: boolean, transient?: boolean }} [options]
|
||
|
*/
|
||
|
constructor (message, options) {
|
||
|
super(message || '')
|
||
|
|
||
|
if (typeof options === 'object' && options !== null) {
|
||
|
if (options.code) this.code = String(options.code)
|
||
|
if (options.expected) this.expected = true
|
||
|
if (options.transient) this.transient = true
|
||
|
if (options.cause) this.cause = options.cause
|
||
|
}
|
||
|
|
||
|
if (Error.captureStackTrace) {
|
||
|
Error.captureStackTrace(this, this.constructor)
|
||
|
}
|
||
|
}
|
||
|
}
|