UNPKG

@lodestar/api

Version:

A Typescript REST client for the Ethereum Consensus API

20 lines (15 loc) 825 B
import type {FastifyInstance} from "fastify"; import {ChainForkConfig} from "@lodestar/config"; import {AnyEndpoint} from "../../utils/codecs.js"; import {ApplicationMethods, FastifyRoute, FastifyRoutes, createFastifyRoutes} from "../../utils/server/index.js"; import {Endpoints, getDefinitions} from "../routes.js"; export type BuilderApiMethods = ApplicationMethods<Endpoints>; export function getRoutes(config: ChainForkConfig, methods: BuilderApiMethods): FastifyRoutes<Endpoints> { return createFastifyRoutes(getDefinitions(config), methods); } export function registerRoutes(server: FastifyInstance, config: ChainForkConfig, methods: BuilderApiMethods): void { const routes = getRoutes(config, methods); for (const route of Object.values(routes)) { server.route(route as FastifyRoute<AnyEndpoint>); } }