UNPKG

@busy-hour/blaze

Version:

<h1 align='center'>🔥 Blaze</h1> <div align='center'> An event driven framework for 🔥 Hono.js </div>

37 lines (36 loc) • 1.04 kB
// src/loader/trpc/index.ts import { BlazeConfig } from "../../internal/config/instance.js"; import { ExternalModule } from "../../utils/constant/config/index.js"; import { TrpcConstructor } from "./constructor.js"; function loadTrpc(app) { const instance = BlazeConfig.module(ExternalModule.Trpc).initTRPC.create(); const trpcLoader = new TrpcConstructor(app, instance.procedure); const router = instance.router(trpcLoader.procedures); return { router, instance, procedure: instance.procedure }; } function useTrpc(path, { endpoint = "/trpc", middlewares = [], ...options } = {}) { const trpc = loadTrpc(this); this.use(path, ...middlewares, async (ctx) => { const response = await BlazeConfig.module( ExternalModule.TrpcAdapter ).fetchRequestHandler({ ...options, router: trpc.router, async createContext() { }, endpoint, req: ctx.req.raw }); ctx.body(response.body, response); return response; }); return trpc; } export { loadTrpc, useTrpc };