UNPKG

@lodestar/api

Version:

A Typescript REST client for the Ethereum Consensus API

42 lines 1.17 kB
import { Endpoint, HeaderParams, PathParams, QueryParams } from "./types.js"; type JsonSchema = Record<string, unknown>; type RequireSchema<T> = { [K in keyof T]-?: Schema; }; export type SchemaDefinition<ReqType extends Endpoint["request"]> = (ReqType["params"] extends PathParams ? { params: RequireSchema<ReqType["params"]>; } : { params?: never; }) & (ReqType["query"] extends QueryParams ? { query: RequireSchema<ReqType["query"]>; } : { query?: never; }) & (ReqType["headers"] extends HeaderParams ? { headers: RequireSchema<ReqType["headers"]>; } : { headers?: never; }) & (ReqType extends { body: unknown; } ? { body: Schema; } : { body?: never; }); export declare enum Schema { Uint = 0, UintRequired = 1, UintArray = 2, String = 3, StringRequired = 4, StringArray = 5, StringArrayRequired = 6, UintOrStringRequired = 7, UintOrStringArray = 8, Object = 9, ObjectArray = 10, AnyArray = 11, Boolean = 12 } export declare function getFastifySchema<T extends Endpoint["request"]>(schemaDef: SchemaDefinition<T>): JsonSchema; export {}; //# sourceMappingURL=schema.d.ts.map