UNPKG

onesignal-web-sdk

Version:

Web push notifications from OneSignal.

42 lines (35 loc) 1.23 kB
export default class OneSignalError extends Error { constructor(message = '') { super(message); // extending Error is weird and does not propagate `message` Object.defineProperty(this, 'message', { configurable: true, enumerable : false, value : message, writable : true, }); Object.defineProperty(this, 'name', { configurable: true, enumerable : false, value : this.constructor.name, writable : true, }); if (Error.hasOwnProperty('captureStackTrace')) { Error.captureStackTrace(this, this.constructor); return; } Object.defineProperty(this, 'stack', { configurable: true, enumerable : false, value : (new Error(message)).stack, writable : true, }); /** * Important! Required to make sure the correct error type is detected during instanceof checks. * Same applies to all derived classes. * https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work */ Object.setPrototypeOf(this, OneSignalError.prototype); } } export default ExtendableError;