@lodestar/api
Version:
A Typescript REST client for the Ethereum Consensus API
27 lines • 1.07 kB
JavaScript
import { mapValues } from "@lodestar/utils";
import { compileRouteUrlFormatter } from "../urlFormat.js";
export function createApiClientMethod(definition, client, operationId) {
const urlFormatter = compileRouteUrlFormatter(definition.url);
const definitionExtended = {
...definition,
urlFormatter,
operationId,
};
// If the request args is void, then completely remove the args parameter
if (definition.req.schema.body === undefined &&
definition.req.schema.params === undefined &&
definition.req.schema.query === undefined) {
return (async (init) => {
return client.request(definitionExtended, undefined, init);
});
}
return async (args, init) => {
return client.request(definitionExtended, args ?? {}, init);
};
}
export function createApiClientMethods(definitions, client) {
return mapValues(definitions, (definition, operationId) => {
return createApiClientMethod(definition, client, operationId);
});
}
//# sourceMappingURL=method.js.map