The type of the error kind
, constrained to Primitive (e.g., string, number, enum).
const err1 = new AnyError("Invalid input", "ValidationError");
const err2 = new AnyError("File not found", 404, new Error("ENOENT"));
expect(err1.message).toBe("[ValidationError] Invalid input.");
expect(err2.message).toBe("[404] File not found. Reason: ENOENT");
expect(err2.kind).toBe(404);
expect(err2.reason.message).toBe("ENOENT");
Constructs a new AnyError instance with a message, kind, and optional reason.
The error’s message is formatted as [kind] message
or [kind] message. Reason: reason
if a reason
is provided. The name
is set to the constructor’s name,
and the reason
is normalized to an Error
instance.
The descriptive message for the error.
The category or type of the error, a primitive value.
Optional
reason: unknownAn optional underlying cause, which can be any value (converted to Error
if not already).
Optional
causeReadonly
kindThe category or type of the error, represented as a primitive value.
This readonly property identifies the error’s kind, such as a string code or numeric status, and is set during construction.
Readonly
reasonThe underlying cause of the error, represented as an Error
instance.
This readonly property holds the reason
provided during construction,
normalized to an Error
object. If no reason
is given, it defaults to
an error wrapping the kind
.
Optional
stackStatic
Optional
prepareOptional override for formatting stack traces
Static
stack
A generic error class extending
Error
with a typedkind
and optionalreason
.This class provides a structured way to represent errors with a category (
kind
) of a primitive type (e.g., string, number, enum) and an optional underlying cause (reason
). The error message is automatically formatted to include both thekind
andreason
(if provided), making it suitable for categorized error handling in libraries or applications.