diff --git a/packages/fabric/core/src/error/tagged-error.ts b/packages/fabric/core/src/error/tagged-error.ts index 876c87e..c01f0bf 100644 --- a/packages/fabric/core/src/error/tagged-error.ts +++ b/packages/fabric/core/src/error/tagged-error.ts @@ -3,14 +3,15 @@ import { TaggedVariant, VariantTag } from "../variant/index.js"; /** * A TaggedError is a tagged variant with an error message. */ -export class TaggedError +export abstract class TaggedError extends Error implements TaggedVariant { readonly [VariantTag]: Tag; - constructor(tag: Tag) { - super(); + constructor(tag: Tag, message?: string) { + super(message); this[VariantTag] = tag; + this.name = tag; } } diff --git a/packages/fabric/core/src/error/unexpected-error.ts b/packages/fabric/core/src/error/unexpected-error.ts index ba9fa23..a9ee30f 100644 --- a/packages/fabric/core/src/error/unexpected-error.ts +++ b/packages/fabric/core/src/error/unexpected-error.ts @@ -8,12 +8,7 @@ import { TaggedError } from "./tagged-error.js"; * we must be prepared to handle. */ export class UnexpectedError extends TaggedError<"UnexpectedError"> { - constructor(readonly context: Record = {}) { - super("UnexpectedError"); - this.message = "An unexpected error occurred"; - } - - toString() { - return `UnexpectedError: ${this.message}\n${JSON.stringify(this.context, null, 2)}`; + constructor(message?: string) { + super("UnexpectedError", message); } }