22 lines
848 B
JavaScript
22 lines
848 B
JavaScript
|
'use strict';
|
||
|
const descriptor = { value: 'SqliteError', writable: true, enumerable: false, configurable: true };
|
||
|
|
||
|
function SqliteError(message, code, rawCode) {
|
||
|
if (new.target !== SqliteError) {
|
||
|
return new SqliteError(message, code);
|
||
|
}
|
||
|
if (typeof code !== 'string') {
|
||
|
throw new TypeError('Expected second argument to be a string');
|
||
|
}
|
||
|
Error.call(this, message);
|
||
|
descriptor.value = '' + message;
|
||
|
Object.defineProperty(this, 'message', descriptor);
|
||
|
Error.captureStackTrace(this, SqliteError);
|
||
|
this.code = code;
|
||
|
this.rawCode = rawCode
|
||
|
}
|
||
|
Object.setPrototypeOf(SqliteError, Error);
|
||
|
Object.setPrototypeOf(SqliteError.prototype, Error.prototype);
|
||
|
Object.defineProperty(SqliteError.prototype, 'name', descriptor);
|
||
|
module.exports = SqliteError;
|