mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-10 21:50:14 -07:00
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
|
|
|
|
import { appRouterCloud } from '~/server/trpc/trpc.router-cloud';
|
|
import { createTRPCFetchContext } from '~/server/trpc/trpc.server';
|
|
import { posthogServerSendException } from '~/server/posthog/posthog.server';
|
|
|
|
const handlerNodeRoutes = (req: Request) => fetchRequestHandler({
|
|
endpoint: '/api/cloud',
|
|
router: appRouterCloud,
|
|
req,
|
|
createContext: createTRPCFetchContext,
|
|
onError: async function({ path, error, type, ctx }) {
|
|
|
|
// -> DEV error logging
|
|
if (process.env.NODE_ENV === 'development')
|
|
console.error(`❌ tRPC-cloud failed on ${path ?? 'unk-path'}: ${error.message}`);
|
|
|
|
// -> Capture node errors
|
|
await posthogServerSendException(error, undefined, {
|
|
domain: 'trpc-onerror',
|
|
runtime: 'nodejs',
|
|
endpoint: path ?? 'unknown',
|
|
method: req.method,
|
|
url: req.url,
|
|
additionalProperties: {
|
|
error_code: error.code,
|
|
error_type: type,
|
|
},
|
|
});
|
|
},
|
|
});
|
|
|
|
|
|
// NOTE: the following statement breaks the build on non-pro deployments, and conditionals don't work either
|
|
// so we resorted to raising the timeout from 10s to 60s in the vercel.json file instead
|
|
// export const maxDuration = 60;
|
|
export const runtime = 'nodejs';
|
|
export const dynamic = 'force-dynamic';
|
|
export { handlerNodeRoutes as GET, handlerNodeRoutes as POST }; |