forked from imbytecat/fullstack-starter
28 lines
791 B
TypeScript
28 lines
791 B
TypeScript
import { onError } from '@orpc/server'
|
|
import { RPCHandler } from '@orpc/server/fetch'
|
|
import { createFileRoute } from '@tanstack/react-router'
|
|
import { handleValidationError, logError } from '@/server/api/interceptors'
|
|
import { router } from '@/server/api/routers'
|
|
|
|
const handler = new RPCHandler(router, {
|
|
interceptors: [onError(logError)],
|
|
clientInterceptors: [onError(handleValidationError)],
|
|
})
|
|
|
|
export const Route = createFileRoute('/api/rpc/$')({
|
|
server: {
|
|
handlers: {
|
|
ANY: async ({ request }) => {
|
|
const { response } = await handler.handle(request, {
|
|
prefix: '/api/rpc',
|
|
context: {
|
|
headers: request.headers,
|
|
},
|
|
})
|
|
|
|
return response ?? new Response('Not Found', { status: 404 })
|
|
},
|
|
},
|
|
},
|
|
})
|