import {initTRPC} from '@trpc/server'
import {
defaultErrorFormatter,
registerTRPCRoute,
type TRPCContext,
} from '@orion-js/trpc'
import type {TRPCRouterRecord} from '@trpc/server'
import {deserialize as superjsonDeserialize, serialize as superjsonSerialize} from 'superjson'
const transformer = {
serialize: superjsonSerialize,
deserialize: superjsonDeserialize,
}
const t = initTRPC.context<TRPCContext>().create({
transformer,
errorFormatter: defaultErrorFormatter,
})
export function startTrpc<T extends TRPCRouterRecord>(procedures: T) {
const appRouter = t.router(procedures)
registerTRPCRoute({appRouter, path: '/trpc'})
return {router: appRouter}
}