@lodestar/api
Version:
A Typescript REST client for the Ethereum Consensus API
35 lines • 1.47 kB
TypeScript
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