@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
JavaScript
// 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
};