Setu-TS
    Preparing search index...

    Class HttpError

    The framework's HTTP error type.

    Throw an instance directly, or — preferably — construct one via a factory function from ./exceptions.ts so the status code is correct by construction:

    import { notFound } from '@setu-ts/exceptions';

    throw notFound(`User ${id} not found`);

    The error handler middleware inspects the statusCode to set the response status, and serializes message and details into the error body.

    0.1.0

    Hierarchy

    • Error
      • HttpError
    Index
    • Creates a new HttpError.

      Prefer the factory functions in exceptions.ts over calling this constructor directly — they guarantee a correct status code.

      Parameters

      • statusCode: number

        HTTP status code (e.g. 404)

      • message: string

        Human-readable error message

      • Optionaldetails: Readonly<Record<string, unknown>>

        Optional structured details; omitted when absent

      • Optionalcause: Error

        Optional underlying error; forwarded to the ES2022 cause chain

      Returns HttpError

      const err = new HttpError(404, 'User not found');
      console.log(err.statusCode); // 404

      0.1.0

    cause?: unknown
    details?: Readonly<Record<string, unknown>>

    Structured details appended to the error body. Omitted entirely when not supplied (never undefined) so serialization stays clean.

    declare suppresses the ES2022 class-field initialization that would otherwise set this to undefined on every instance — it only exists on the object when actually assigned by the constructor.

    message: string
    name: string
    stack?: string
    statusCode: number

    The HTTP status code this error maps to.

    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack`

      The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

      The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

      The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

      function a() {
      b();
      }

      function b() {
      c();
      }

      function c() {
      // Create an error without stack trace to avoid calculating the stack trace twice.
      const { stackTraceLimit } = Error;
      Error.stackTraceLimit = 0;
      const error = new Error();
      Error.stackTraceLimit = stackTraceLimit;

      // Capture the stack trace above function b
      Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
      throw error;
      }

      a();

      Parameters

      • targetObject: object
      • OptionalconstructorOpt: Function

      Returns void

    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any