Files
klz-cables.com/.pnpm-store/v10/files/e7/eac846c09ae21c21cae0edd60b996da3db5ea05e935f6ba8655aea636cc09b6aff94b59cb13f835b9bd75d12b192591740da651f16e5d1243f46a076af5603
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

156 lines
7.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
*
* client
*
*/
import type { ExecutionResult } from 'graphql';
import { RequestParams, Sink } from './common.mjs';
/** This file is the entry point for browsers, re-export common elements. */
export * from './common.mjs';
/** @category Client */
export interface ClientOptions {
/**
* URL of the GraphQL over HTTP server to connect.
*
* If the option is a function, it will be called on each request.
* Returning a Promise is supported too and the request will stall until it
* resolves.
*
* A good use-case for having a function is when using the URL for authentication,
* where subsequent requests (due to auth) may have a refreshed identity token.
*
* Function receives the request params. Useful for example, to ease up debugging and DevTools
* navigation you might want to use the operation name in the URL's search params (`/graphql?MyQuery`).
*/
url: string | ((request: RequestParams) => Promise<string> | string);
/**
* Indicates whether the user agent should send cookies from the other domain in the case
* of cross-origin requests.
*
* Possible options are:
* - `omit`: Never send or receive cookies.
* - `same-origin`: Send user credentials (cookies, basic http auth, etc..) if the URL is on the same origin as the calling script.
* - `include`: Always send user credentials (cookies, basic http auth, etc..), even for cross-origin calls.
*
* @default same-origin
*/
credentials?: 'omit' | 'same-origin' | 'include';
/**
* A string specifying the referrer of the request. This can be a same-origin URL, about:client, or an empty string.
*
* @default undefined
*/
referrer?: string;
/**
* Specifies the referrer policy to use for the request.
*
* Possible options are:
* - `no-referrer`: Does not send referrer information along with requests to any origin.
* - `no-referrer-when-downgrade`: Sends full referrerURL for requests: whose referrerURL and current URL are both potentially trustworthy URLs, or whose referrerURL is a non-potentially trustworthy URL.
* - `same-origin`: Sends full referrerURL as referrer information when making same-origin-referrer requests.
* - `origin`: Sends only the ASCII serialization of the requests referrerURL when making both same-origin-referrer requests and cross-origin-referrer requests.
* - `strict-origin`: Sends the ASCII serialization of the origin of the referrerURL for requests: whose referrerURL and current URL are both potentially trustworthy URLs, or whose referrerURL is a non-potentially trustworthy URL
* - `origin-when-cross-origin`: Sends full referrerURL when making same-origin-referrer requests, and only the ASCII serialization of the origin of the requests referrerURL is sent when making cross-origin-referrer requests
* - `strict-origin-when-cross-origin`: Sends full referrerURL when making same-origin-referrer requests, and only the ASCII serialization of the origin of the requests referrerURL when making cross-origin-referrer requests: whose referrerURL and current URL are both potentially trustworthy URLs, or whose referrerURL is a non-potentially trustworthy URL.
* - `unsafe-url`: Sends full referrerURL along for both same-origin-referrer requests and cross-origin-referrer requests.
*
* @default undefined
*/
referrerPolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'same-origin' | 'origin' | 'strict-origin' | 'origin-when-cross-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
/**
* HTTP headers to pass along the request.
*
* If the option is a function, it will be called on each request.
* Returning a Promise is supported too and the request will stall until it
* resolves.
*
* A good use-case for having a function is when using the URL for authentication,
* where subsequent requests (due to auth) may have a refreshed identity token.
*/
headers?: Record<string, string> | (() => Promise<Record<string, string> | null | void> | Record<string, string> | null | void);
/**
* Control whether the network request error should be retried.
*
* Please note that you can **only** control network errors, all other
* errors are considered fatal and will be reported immediately.
*
* You may implement your own waiting strategy by timing the resolution of the returned promise.
*
* Useful for retrying requests that failed because the service is temporarily unavailable.
*
* `retries` argument counts actual retries, so it will begin with
* 0 after the first failed request.
*
* Returning `false` will report the `err` argument; however, throwing a different error from
* the `err` argument, will report it instead.
*
* @default '() => false'
*/
shouldRetry?: (err: NetworkError, retries: number) => Promise<boolean>;
/**
* The Fetch function to use.
*
* For NodeJS environments consider using [`node-fetch`](https://github.com/node-fetch/node-fetch).
*
* @default global.fetch
*/
fetchFn?: unknown;
/**
* The AbortController implementation to use.
*
* For NodeJS environments before v15 consider using [`node-abort-controller`](https://github.com/southpolesteve/node-abort-controller).
*
* @default global.AbortController
*/
abortControllerImpl?: unknown;
}
/** @category Client */
export interface Client {
/**
* Subscribes to receive a response by making an HTTP request.
*
* It uses the `sink` to emit the received data or errors. Returns a _dispose_
* function used for canceling active requests and cleaning up.
*/
subscribe<Data = Record<string, unknown>, Extensions = unknown>(request: RequestParams, sink: Sink<ExecutionResult<Data, Extensions>>): () => void;
/**
* Dispose of the client, cancel all active requests and clean up resources.
*/
dispose: () => void;
}
/**
* Creates a disposable GraphQL over HTTP client to transmit
* GraphQL operation results.
*
* @category Client
*/
export declare function createClient(options: ClientOptions): Client;
/**
* A network error caused by the client or an unexpected response from the server.
*
* To avoid bundling DOM typings (because the client can run in Node env too),
* you should supply the `Response` generic depending on your Fetch implementation.
*
* @category Client
*/
export declare class NetworkError<Response extends ResponseLike = ResponseLike> extends Error {
/**
* The underlying response thats considered an error.
*
* Will be undefined when no response is received,
* instead an unexpected network error.
*/
response: Response | undefined;
constructor(msgOrErrOrResponse: string | Error | Response);
}
/**
* Concrete interface a response needs to implement for the client.
*
* @category Client
*/
export interface ResponseLike {
readonly ok: boolean;
readonly status: number;
readonly statusText: string;
}