MELCloud & MELCloud Home API for Node.js - v48.2.0
    Preparing search index...

    Class RateLimitError

    Upstream returned HTTP 429 (Too Many Requests), or the local rate-limit gate is still holding a pause window from a previous 429.

    Consumers receive structured, machine-readable fields so they can format their own localized messages without parsing the string:

    • retryAfter: relative duration remaining (ideal for "try again in 5 min" phrasing) — read with retryAfter.total({ unit: 'seconds' }).
    • unblockAt: absolute unblock time (ideal for "try again at 14:30" phrasing) — read with unblockAt.toString() or convert via unblockAt.toZonedDateTimeISO(zone).

    The Result-based getters surface the same window as the rate-limited variant's plain retryAfterMs (milliseconds) — this class is the rich Temporal surface, retryAfterMs the dependency-free one; both are derived from the same gate snapshot.

    Hierarchy (View Summary)

    Index
    • Builds the error from the message and rate-limit window metadata; both retryAfter and unblockAt may be null when the upstream supplies no window.

      Parameters

      • message: string

        Human-readable error description.

      • options: {
            cause?: unknown;
            retryAfter: Temporal.Duration | null;
            unblockAt: Temporal.Instant | null;
        }

        Rate-limit window metadata plus optional cause.

        • Optionalcause?: unknown

          Original error that triggered this one.

        • retryAfter: Temporal.Duration | null

          Temporal.Duration until retry is allowed, or null.

        • unblockAt: Temporal.Instant | null

          Absolute unblock Temporal.Instant, or null.

      Returns RateLimitError

    cause?: unknown
    message: string
    name: "RateLimitError" = 'RateLimitError'
    retryAfter: Temporal.Duration | null
    stack?: string
    unblockAt: Temporal.Instant | null
    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

    • Indicates whether the argument provided is a built-in Error instance or not.

      Parameters

      • error: unknown

      Returns error is Error