UNPKG

@lodestar/api

Version:

A Typescript REST client for the Ethereum Consensus API

35 lines 1.41 kB
import { EmptyMeta, EmptyResponseData } from "../codecs.js"; import { HttpSuccessCodes } from "../httpStatusCode.js"; import { Endpoint, HasOnlyOptionalProps } from "../types.js"; type ApplicationResponseObject<E extends Endpoint> = { /** * Set non-200 success status code */ status?: HttpSuccessCodes; } & (E["return"] extends EmptyResponseData ? { data?: never; } : { data: E["return"] | (E["return"] extends undefined ? undefined : Uint8Array); }) & (E["meta"] extends EmptyMeta ? { meta?: never; } : { meta: E["meta"]; }); export type ApplicationResponse<E extends Endpoint> = HasOnlyOptionalProps<ApplicationResponseObject<E>> extends true ? ApplicationResponseObject<E> | void : ApplicationResponseObject<E>; export type ApiContext = { /** * Raw ssz bytes from request payload, only available for ssz requests */ sszBytes?: Uint8Array | null; /** * Informs application method about preferable return type to avoid unnecessary serialization */ returnBytes?: boolean; }; type GenericOptions = Record<string, unknown>; export type ApplicationMethod<E extends Endpoint> = (args: E["args"], context?: ApiContext, opts?: GenericOptions) => Promise<ApplicationResponse<E>>; export type ApplicationMethods<Es extends Record<string, Endpoint>> = { [K in keyof Es]: ApplicationMethod<Es[K]>; }; export {}; //# sourceMappingURL=method.d.ts.map