A custom error class that extends the native Error class, providing additional properties such as a unique identifier, error key, HTTP status code, and cause.

The following example demonstrates how to throw and catch a BasaltError.

try {
throw new BasaltError({
message: 'An error occurred',
key: 'example.error',
httpStatusCode: 400,
cause: new Error('Original error')
});
} catch (error) {
if (error instanceof BasaltError) {
console.error(`Error UUID: ${error.uuid}`);
console.error(`Error Date: ${error.date}`);
console.error(`Error Key: ${error.key}`);
console.error(`HTTP Status Code: ${error.httpStatusCode}`);
console.error(`Cause: ${error.cause}`);
}
}

The following example demonstrates how to create a BasaltError with a custom cause type.

const basaltError = new BasaltError<{ foo: string }>({
message: 'Custom error with cause',
key: 'basalt-package.error.custom_error',
httpStatusCode: 500,
cause: { foo: 'bar' },
});
console.log(basaltError.cause); // { foo: 'bar' }

Type Parameters

  • const T = unknown

    The type of the cause of the error, which can be any object or error.

Hierarchy

  • Error
    • BasaltError

Constructors

Properties

cause: undefined | T

The cause of the error, typically used to store the original error or additional context.

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

stackTraceLimit: number

Accessors

  • get httpStatusCode(): number

    Gets the HTTP status code associated with the error.

    Returns number

    The HTTP status code.

  • get key(): string

    Gets the error key, which identifies the type of error.

    Returns string

    The key associated with the error.

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void