shelving
Version:
Toolkit for using data in JavaScript.
20 lines (19 loc) • 1.17 kB
TypeScript
import type { AnyCaller } from "../../util/function.js";
import type { RequestOptions } from "../../util/http.js";
import type { Sourceable } from "../../util/source.js";
import type { Endpoint } from "../endpoint/Endpoint.js";
import { APIProvider } from "./APIProvider.js";
/**
* Provider wrapper that delegates API operations to a source provider.
* - Extend this when you want to intercept only selected API operations, such as injecting auth headers or logging.
*/
export declare class ThroughAPIProvider<P, R> extends APIProvider<P, R> implements Sourceable<APIProvider<P, R>> {
get url(): URL;
readonly source: APIProvider<P, R>;
constructor(source: APIProvider<P, R>);
renderURL<PP extends P, RR extends R>(endpoint: Endpoint<PP, RR>, payload: PP, caller?: AnyCaller): URL;
createRequest<PP extends P, RR extends R>(endpoint: Endpoint<PP, RR>, payload: PP, options?: RequestOptions, caller?: AnyCaller): Request;
parseResponse<PP extends P, RR extends R>(endpoint: Endpoint<PP, RR>, response: Response, caller?: AnyCaller): Promise<RR>;
fetch(request: Request): Promise<Response>;
[Symbol.asyncDispose](): Promise<void>;
}