LedeWire SDK API Reference
    Preparing search index...

    Class LedewireError

    Base error class for all LedeWire SDK errors. All errors thrown by the SDK are instances of this class, making it safe to use err instanceof LedewireError as a type guard.

    instanceof works even when err was constructed by a different bundled copy of this class — e.g. an error thrown by @ledewire/x402-client checked with the SpendCapReachedError bundled into @ledewire/node. See [Symbol.hasInstance].

    try {
    await client.purchases.create({ content_id: 'content-id', price_cents: 250 })
    } catch (err) {
    if (err instanceof LedewireError) {
    console.error(err.statusCode, err.message)
    }
    }

    Hierarchy (View Summary)

    Index
    • Parameters

      • message: string
      • statusCode: number
      • Optionalcode: number
      • Optionaltype: ErrorTypeValue
      • Optionaldetails: Record<string, unknown>
      • OptionalretryAfter: number

      Returns LedewireError

    code: number | undefined

    Machine-readable error code from the API error body, if present.

    details: Readonly<Record<string, unknown>> | undefined

    Extra top-level fields from the API error response body, excluding error itself. For example, a selection_too_large refusal from POST /v1/acquisitions (422) carries maximum and submitted alongside error. undefined when the body carried no other top-level fields, which is the common case.

    retryAfter: number | undefined

    Seconds to wait before retrying, from the response's Retry-After header. undefined when the response carried no usable header. Present on rate-limit (429) and busy (503) refusals, so a caller can back off without guessing.

    statusCode: number

    HTTP status code returned by the API (e.g. 400, 401, 404, 422).

    type: ErrorTypeValue | undefined

    Machine-readable reason from the API error body's error.type, if present. See ErrorType for the documented values and how to branch on them — the API may emit other values it hasn't documented yet, which still land here as a plain string rather than being dropped.

    brand: string

    Class-identity brand used for cross-bundle instanceof (see [Symbol.hasInstance]). Hardcoded per class — never derived from constructor.name or this.name, either of which a minifier can rewrite, silently breaking the brand match.

    • Makes err instanceof LedewireError (and every subclass below) true even when err was constructed by a different bundled copy of this module. Each published package (@ledewire/node, @ledewire/browser, @ledewire/x402-client) bundles its own copy of @ledewire/core via tsup, so the classes are distinct objects with unrelated prototypes — the plain prototype-chain check instanceof normally does would fail.

      Falls back to the brand list every instance carries under a Symbol.for('@ledewire/error-brands') key (collected from the brand static along the constructing class's prototype chain): true when the ordinary check passes, OR the instance's brand list includes this class's own brand.

      Parameters

      • instance: unknown

      Returns boolean