Skip to content

Commit 3f1a5ac

Browse files
committed
fix: improve orpc logger
1 parent c29ccbf commit 3f1a5ac

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

app/routes/api/rest.$.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
import { OpenAPIHandler } from '@orpc/openapi/fetch';
2-
import { onError } from '@orpc/server';
32
import { CORSPlugin, ResponseHeadersPlugin } from '@orpc/server/plugins';
43
import { createAPIFileRoute } from '@tanstack/react-start/api';
54

65
import { router } from '@/server/router';
76

87
const handler = new OpenAPIHandler(router, {
98
plugins: [new CORSPlugin(), new ResponseHeadersPlugin()],
10-
interceptors: [
11-
onError((error) => {
12-
console.error(error);
13-
}),
14-
],
159
});
1610

1711
async function handle({ request }: { request: Request }) {

app/routes/api/rpc.$.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { onError } from '@orpc/server';
21
import { RPCHandler } from '@orpc/server/fetch';
32
import { CORSPlugin, ResponseHeadersPlugin } from '@orpc/server/plugins';
43
import { createAPIFileRoute } from '@tanstack/react-start/api';
@@ -7,11 +6,6 @@ import { router } from '@/server/router';
76

87
const handler = new RPCHandler(router, {
98
plugins: [new CORSPlugin(), new ResponseHeadersPlugin()],
10-
interceptors: [
11-
onError((error) => {
12-
console.error(error);
13-
}),
14-
],
159
});
1610

1711
async function handle({ request }: { request: Request }) {

app/server/orpc.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { randomUUID } from 'node:crypto';
44

55
import { Permission } from '@/lib/auth/client';
66

7+
import { envClient } from '@/env/client';
78
import { auth } from '@/server/auth';
89
import { db } from '@/server/db';
910
import { logger } from '@/server/logger';
@@ -23,6 +24,7 @@ const base = os
2324
},
2425
});
2526
})
27+
2628
// Logger
2729
.use(async ({ next, context, procedure, path }) => {
2830
const start = Date.now();
@@ -46,10 +48,28 @@ const base = os
4648

4749
return result;
4850
} catch (error) {
49-
loggerForMiddleWare.error(error);
50-
51+
const logLevel = (() => {
52+
if (!(error instanceof ORPCError)) return 'error';
53+
if (error.message === 'DEMO_MODE_ENABLED') return 'info';
54+
const errorCode = error.status;
55+
if (errorCode >= 500) return 'error';
56+
if (errorCode >= 400) return 'warn';
57+
if (errorCode >= 300) return 'info';
58+
return 'error';
59+
})();
60+
61+
loggerForMiddleWare[logLevel](error);
5162
throw error;
5263
}
64+
})
65+
// Demo Mode
66+
.use(async ({ next, procedure }) => {
67+
if (envClient.VITE_IS_DEMO && procedure['~orpc'].route.method !== 'GET') {
68+
throw new ORPCError('METHOD_NOT_SUPPORTED', {
69+
message: 'DEMO_MODE_ENABLED',
70+
});
71+
}
72+
return await next();
5373
});
5474

5575
export const publicProcedure = () => base;

0 commit comments

Comments
 (0)