@busy-hour/blaze
Version:
<h1 align='center'>🔥 Blaze</h1> <div align='center'> An event driven framework for 🔥 Hono.js </div>
24 lines (23 loc) • 720 B
JavaScript
// src/loader/trpc/helper.ts
import { z } from "zod";
function getValidator(validator) {
const defaultValidation = z.any().nullable().default(null);
return z.object({
headers: validator?.header ?? defaultValidation,
params: validator?.params ?? defaultValidation,
query: validator?.query ?? defaultValidation,
body: validator?.body ?? defaultValidation
});
}
function trpcHandler(action, input) {
const { body = {}, headers = {}, params = {}, query = {} } = input;
return action.actionHandler(body, params, headers, query);
}
function getTrpcInput(procedure, action) {
return procedure.input(getValidator(action.action.validator));
}
export {
getTrpcInput,
getValidator,
trpcHandler
};