Vinyl
    Preparing search index...

    A quality of service wrapper to global.fetch. Handles retries, network status, and emits events that may be used in reporting or metrics.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    logPrefix: string = ...

    A string prefix for all log statements made by this target.

    Accessors

    • get "[toStringTag]"(): string

      Returns string

    Methods

    • Applies the given partial configuration.

      Parameters

      • newOptions: {
            retryOptions?: {
                retries?: number;
                retryAfterJitter?: () => number;
                retryBackoff?: {
                    distribution?: () => number;
                    exponentBase?: number;
                    interval?: number;
                    maxTime?: number;
                };
                retryFailureCutoff?: number;
                shouldRetry?: (status: number) => boolean;
                tryBackoff?: {
                    distribution?: () => number;
                    exponentBase?: number;
                    interval?: number;
                    maxTime?: number;
                };
            };
            timeout?: number;
        }
        • Optional ReadonlyretryOptions?: {
              retries?: number;
              retryAfterJitter?: () => number;
              retryBackoff?: {
                  distribution?: () => number;
                  exponentBase?: number;
                  interval?: number;
                  maxTime?: number;
              };
              retryFailureCutoff?: number;
              shouldRetry?: (status: number) => boolean;
              tryBackoff?: {
                  distribution?: () => number;
                  exponentBase?: number;
                  interval?: number;
                  maxTime?: number;
              };
          }

          Retry configuration.

          • Optional Readonlyretries?: number

            The maximum number of retries for a single request. Default: 1 For requests with side effects, this should be set to 0.

            "Various studies have collected data which shows that one max retry is sufficient to achieve 99.999% success. The idea is that a truly transient failure should succeed on the first retry. And if the retry fails then it is likely more than a transient failure and additional retries are exhausting resources in the system for no benefit."

          • Optional ReadonlyretryAfterJitter?: () => number

            If there is a retry-after header, add the returned amount of time (in seconds) to prevent clustered retry behavior.

          • Optional ReadonlyretryBackoff?: {
                distribution?: () => number;
                exponentBase?: number;
                interval?: number;
                maxTime?: number;
            }

            Retry backoff timing.

            • Optional Readonlydistribution?: () => number

              The distribution function to randomize request retry timing. This is to prevent all users from making retries at the same time.

            • Optional ReadonlyexponentBase?: number

              pow(exponentBase, failureCount)

            • Optional Readonlyinterval?: number

              The interval in seconds, multiplied by pow(exponentBase, failureCount).

            • Optional ReadonlymaxTime?: number

              The maximum time to wait between tries, in seconds, regardless of how many consecutive failures.

          • Optional ReadonlyretryFailureCutoff?: number

            The number of consecutive failures before retries are no longer attempted, only tries.

          • Optional ReadonlyshouldRetry?: (status: number) => boolean

            Given the network status code, returns true if the fetch should retry.

          • Optional ReadonlytryBackoff?: {
                distribution?: () => number;
                exponentBase?: number;
                interval?: number;
                maxTime?: number;
            }

            First try backoff timing.

            • Optional Readonlydistribution?: () => number

              The distribution function to randomize request retry timing. This is to prevent all users from making retries at the same time.

            • Optional ReadonlyexponentBase?: number

              pow(exponentBase, failureCount)

            • Optional Readonlyinterval?: number

              The interval in seconds, multiplied by pow(exponentBase, failureCount).

            • Optional ReadonlymaxTime?: number

              The maximum time to wait between tries, in seconds, regardless of how many consecutive failures.

        • Optional Readonlytimeout?: number

          The timeout (in seconds) before the request is aborted.

      Returns void

    • Dispatches an event.

      Type Parameters

      Parameters

      • type: K

        The key of the event within EventMap

      • event: RequesterImplEventMap[K]

        If the passed event is read-only, then it may be re-used/cached. Otherwise, it should be a new event object every dispatch. If no target property is set on the event, the target will be set to this host.

      Returns void

    • Returns true if the event host has any listeners.

      Returns boolean

    • Requests a resource.

      Note: Unlike window.fetch, the returned promise is expected to reject if the response is !ok.

      Parameters

      • input: RequestInfo | Readonly<URL>
      • Optionalinit: Maybe<Readonly<Omit<RequestInit, "signal">>>
      • OptionalrequestOptions: Maybe<RequestOptions>

      Returns Promise<Response>