Vereda
    Preparing search index...

    Interface ClientConfig

    interface ClientConfig {
        baseUrl?: string;
        retry?: RetryConfig;
        timeout: ClientTimeoutConfig;
        concurrency?: number;
        maxQueueSize?: number;
        partitions?: Record<string, PartitionConfig>;
        defaultPartition?: PartitionConfig;
        circuitBreaker?: CircuitBreakerConfig;
        retryBudget?: RetryBudgetConfig;
        rateLimit?: RateLimitConfig;
        logger?: Logger;
        metrics?: MetricsSink;
        redactQuery?: boolean;
        fetch?: {
            (input: URL | RequestInfo, init?: RequestInit): Promise<Response>;
            (input: string | URL | Request, init?: RequestInit): Promise<Response>;
        };
        redirect?: RedirectMode;
    }
    Index
    baseUrl?: string

    Base URL prepended to all requests

    retry?: RetryConfig

    Default retry config

    Default timeout config. attemptMs is required — pass Infinity to explicitly opt out of a per-attempt cap, so "no timeout" is always a deliberate choice rather than an accidental default.

    concurrency?: number

    Global concurrency across all partitions.

    maxQueueSize?: number

    Max requests queued globally (across all partitions) waiting for a concurrency permit before new requests are rejected with QueueFullError.

    partitions?: Record<string, PartitionConfig>

    Per-partition overrides. Partitions not listed here use defaultPartition. A listed partition does not inherit from it.

    {}
    
    defaultPartition?: PartitionConfig

    Config for every partition not listed in partitions, merged the same way a listed entry is: client → partition → request. Fields left unset keep their defaults (concurrency DEFAULT_CONCURRENCY, maxQueueSize DEFAULT_MAX_QUEUE_SIZE).

    {}
    
    circuitBreaker?: CircuitBreakerConfig

    Default circuit breaker config. Opt-in — inert unless enabled: true.

    retryBudget?: RetryBudgetConfig

    Default per-partition retry budget. Opt-in — no budget unless set.

    rateLimit?: RateLimitConfig

    Default per-partition rate limit. Opt-in — no limit unless set.

    logger?: Logger

    Optional structured logger. A logger that throws never affects a request: the error is rethrown on a microtask (reaching uncaughtException), like a throwing listener.

    metrics?: MetricsSink

    Optional metrics sink for counters, histograms, and gauges.

    redactQuery?: boolean

    Redact query parameter values in logged URLs.

    true
    
    fetch?: {
        (input: URL | RequestInfo, init?: RequestInit): Promise<Response>;
        (input: string | URL | Request, init?: RequestInit): Promise<Response>;
    }

    Custom fetch function (defaults to globalThis.fetch).

    Type Declaration

      • (input: URL | RequestInfo, init?: RequestInit): Promise<Response>
      • Parameters

        • input: URL | RequestInfo
        • Optionalinit: RequestInit

        Returns Promise<Response>

      • (input: string | URL | Request, init?: RequestInit): Promise<Response>
      • Parameters

        • input: string | URL | Request
        • Optionalinit: RequestInit

        Returns Promise<Response>

    redirect?: RedirectMode

    Redirect mode passed to fetch on every attempt. Use "manual" when the caller must vet each hop itself (e.g. an SSRF guard): a 3xx then comes back as an HttpError whose response carries the Location header.

    "follow"