@maschinenlesbar.org/abgeordnetenwatch-cli
    Preparing search index...

    Interface EngineOptions

    Options for RequestEngine and the client. The numeric options must be integers within their documented range; anything else (negative, fractional, NaN, Infinity, too large, not a number) makes the constructor throw an AwValidationError, as does an options value that is not an object, a transport or sleep that is not a function, and headers that are not a plain object.

    interface EngineOptions {
        baseUrl?: string;
        headers?: Record<string, string>;
        maxRedirects?: number;
        maxResponseBytes?: number;
        maxRetries?: number;
        onRetry?: (event: RetryEvent) => void;
        retryDelayMs?: number;
        sleep?: (ms: number) => Promise<void>;
        timeoutMs?: number;
        transport?: Transport;
        userAgent?: string;
    }
    Index
    baseUrl?: string

    Base URL of the API. Defaults to https://www.abgeordnetenwatch.de. Must be an absolute http(s) URL without a query, fragment or surrounding whitespace (baseUrlProblem); anything else throws at construction.

    headers?: Record<string, string>

    Extra headers sent on every request to the configured origin. When a redirect the engine follows crosses to a different origin, all of them are dropped (only the engine's own Accept and User-Agent go along), so no credential — Authorization, Proxy-Authorization, Cookie, X-API-Key, X-Auth-Token or any other — leaks to an arbitrary host named in Location. That holds only while the transport leaves redirects to the engine (HttpRequest.redirect is "manual"); a response whose HttpResponse.url lies on another origin is rejected. Names must be HTTP tokens and values follow the userAgent rule; anything else throws AwValidationError at construction.

    maxRedirects?: number

    Number of HTTP redirects (301/302/303/307/308) to follow, 0..20. Defaults to 5. Any other 3xx, one with a missing or malformed Location, and one past this limit surface as an AwApiError naming the target.

    maxResponseBytes?: number

    Hard cap on response body size in bytes (defends against memory exhaustion from a hostile/buggy endpoint). Defaults to 100 MiB; set to 0 for no limit. Enforced by the engine for every transport.

    maxRetries?: number

    Number of automatic retries for transient (429/503) responses and for a GET whose connection was reset (see isTransientNetworkError), 0..MAX_RETRIES (10). Each waits retryDelayMs * attempt, or a 429/503's Retry-After when that is longer (up to MAX_RETRY_AFTER_MS; a longer one is not retried, and the AwApiError says so and carries it as retryAfterMs).

    onRetry?: (event: RetryEvent) => void

    Called once per retry, right before the backoff sleep, for each retried 429/503 and reset connection; never when there is no retry. A throw is swallowed.

    retryDelayMs?: number

    Base backoff between retries in milliseconds (grows linearly: 1 s, 2 s, ... by default). The upstream rate limiter answers a burst with 429s and no Retry-After for about 1–2 s, so the default outlasts that window. At most MAX_RETRY_AFTER_MS. It is also the floor under a Retry-After: the header can lengthen a wait, never shorten it.

    sleep?: (ms: number) => Promise<void>

    Injectable sleep, primarily for deterministic tests.

    timeoutMs?: number

    Time limit per request in milliseconds, covering the whole response body, not only idle gaps (0 disables; at most MAX_TIMEOUT_MS, 2^31 - 1 ms). Enforced by the engine for every transport.

    transport?: Transport

    Swappable transport. Defaults to the built-in node http/https transport.

    userAgent?: string

    Value of the User-Agent header. Must not be blank, nor contain control characters (tab aside) or characters above U+00FF; such a value throws AwValidationError at construction.