UNPKG

@zombienet/orchestrator

Version:

ZombieNet aim to be a testing framework for substrate based blockchains, providing a simple cli tool that allow users to spawn and test ephemeral Substrate based networks

55 lines (54 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // new BaseError( internalErrorString, message ); // new BaseError( err, internalErrorString, message ); class BaseError extends Error { constructor(...args) { super(...args); this.causedByMessage = ""; Error.captureStackTrace(this, this.constructor); const parsedArguments = this._parseArguments(args); const { cause, message } = parsedArguments; if (cause) this.cause = cause; this.message = this.name; if (message) this.message += ": " + message; const causedByMessage = this.cause && this.cause.message ? this.cause.message : ""; if (this.causedByMessage) this.message += "; caused by " + causedByMessage; } fullStack() { let stackTraceString = this.stack; if (this.cause) { stackTraceString += "\ncaused by: "; if (this.cause instanceof BaseError && this.cause.fullStack) { stackTraceString += this.cause.fullStack() || ""; } else { stackTraceString += this.cause.stack || ""; } return stackTraceString; } return stackTraceString; } _parseArguments(args) { let cause; let message = ""; if (args.length !== 0 && args[0] instanceof Error) { cause = args[0]; args.shift(); } if (args.length && args[0]) { if (!(typeof args[0] === "string")) { throw new TypeError("Invalid arguments to error constructor. Expecting [ cause ], [ message ]"); } message = args[0]; } return { cause, message, }; } } exports.default = BaseError;