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