@freemework/common
Version:
Common library of the Freemework Project.
50 lines • 1.76 kB
JavaScript
;
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