@freemework/common
Version:
Common library of the Freemework Project.
46 lines • 1.58 kB
JavaScript
import { FException } from "./f_exception.js";
export class FExceptionAggregate extends 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");
}
}
//# sourceMappingURL=f_exception_aggregate.js.map