UNPKG

@lodestar/api

Version:

A Typescript REST client for the Ethereum Consensus API

35 lines 1.47 kB
import { Endpoint, RouteDefinition } from "../types.js"; import { WireFormat } from "../wireFormat.js"; export type ExtraRequestInit = { /** Wire format to use in HTTP requests to server */ requestWireFormat?: `${WireFormat}`; /** Preferred wire format for HTTP responses from server */ responseWireFormat?: `${WireFormat}`; /** Timeout of requests in milliseconds */ timeoutMs?: number; /** Number of retries per request */ retries?: number; /** Retry delay, only relevant if retries > 0 */ retryDelay?: number; }; export type OptionalRequestInit = { bearerToken?: string; }; export type UrlInit = ApiRequestInit & { baseUrl?: string; }; export type UrlInitRequired = ApiRequestInit & { urlIndex: number; baseUrl: string; /** Used in logs and metrics to prevent leaking user credentials */ printableUrl: string; }; export type ApiRequestInit = ExtraRequestInit & OptionalRequestInit & RequestInit; export type ApiRequestInitRequired = Required<ExtraRequestInit> & UrlInitRequired; /** Route definition with computed extra properties */ export type RouteDefinitionExtra<E extends Endpoint> = RouteDefinition<E> & { operationId: string; urlFormatter: (args: Record<string, string | number>) => string; }; export declare function createApiRequest<E extends Endpoint>(definition: RouteDefinitionExtra<E>, args: E["args"], init: ApiRequestInitRequired): Request; //# sourceMappingURL=request.d.ts.map