UNPKG

@freemework/common

Version:

Common library of the Freemework Project.

50 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FExceptionAggregate = void 0; const f_exception_js_1 = require("./f_exception.js"); class FExceptionAggregate extends f_exception_js_1.FException { static throwIfNeeded(innerExceptions) { if (innerExceptions.length > 0) { if (innerExceptions.length == 1) { throw innerExceptions[0]; } throw new FExceptionAggregate(innerExceptions); } } innerExceptions; constructor(innerExceptions, message) { let friendlyInnerException; let friendlyInnerExceptions; let friendlyMessage; if (innerExceptions.length > 0) { friendlyInnerExceptions = [...innerExceptions]; friendlyInnerException = friendlyInnerExceptions.length > 0 ? friendlyInnerExceptions[0] : null; } else { friendlyInnerExceptions = []; friendlyInnerException = null; } if (message !== undefined) { friendlyMessage = message; } else { friendlyMessage = "One or more errors occurred."; } if (friendlyInnerException !== null) { super(friendlyMessage, friendlyInnerException); } else { super(friendlyMessage); } this.innerExceptions = Object.freeze(friendlyInnerExceptions); } toString() { const messages = [super.toString()]; if (this.innerExceptions.length > 0) { messages.push(...this.innerExceptions.map((e) => e.toString())); } return messages.join("\n"); } } exports.FExceptionAggregate = FExceptionAggregate; //# sourceMappingURL=f_exception_aggregate.js.map