UNPKG

@harishreddym/baqend

Version:

Baqend JavaScript SDK

64 lines (55 loc) 1.37 kB
'use strict'; /** * @class error.PersistentError * @extends Error * * @param {string} message * @param {Error=} cause */ // do not use class here, since we can't change the class prototype function PersistentError(message, cause) { if (Object.prototype.hasOwnProperty.call(Error, 'captureStackTrace')) { Error.captureStackTrace(this, this.constructor); } else { /** * The error stack trace * @type {string} */ this.stack = (new Error()).stack; } /** * The error message * @type {string} */ this.message = (message || 'An unexpected persistent error occured.'); /** * The name of the error * @type {string} */ this.name = this.constructor.name; if (cause) { /** * The error cause * @type {Error} */ this.cause = cause; if (cause.stack) { this.stack += '\nCaused By: ' + cause.stack; } } } PersistentError.of = function of(error) { if (error instanceof PersistentError) { return error; } return new PersistentError(null, error); }; // custom errors must be manually extended for babel, otherwise the super call destroys the origin 'this' reference PersistentError.prototype = Object.create(Error.prototype, { constructor: { value: PersistentError, enumerable: false, configurable: true, }, }); module.exports = PersistentError;