@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
46 lines (39 loc) • 1.41 kB
text/typescript
/**
* This is your entry point to setup the root configuration for tRPC on the server.
* - `initTRPC` should only be used once per app.
* - We export only the functionality that we use so we can enforce which base procedures should be used
*
* Learn how to create protected base procedures and other things below:
* @link https://trpc.io/docs/v11/router
* @link https://trpc.io/docs/v11/procedures
*/
import { DESKTOP_USER_ID } from '@/const/desktop';
import { isDesktop } from '@/const/version';
import { edgeTrpc } from './init';
import { jwtPayloadChecker } from './middleware/jwtPayload';
/**
* Create a router
* @link https://trpc.io/docs/v11/router
*/
export const router = edgeTrpc.router;
/**
* Create an unprotected procedure
* @link https://trpc.io/docs/v11/procedures
**/
export const publicProcedure = edgeTrpc.procedure.use(({ next, ctx }) => {
return next({
ctx: { userId: isDesktop ? DESKTOP_USER_ID : ctx.userId },
});
});
// procedure that asserts that the user add the password
export const passwordProcedure = edgeTrpc.procedure.use(jwtPayloadChecker);
/**
* Merge multiple routers together
* @link https://trpc.io/docs/v11/merging-routers
*/
export const mergeRouters = edgeTrpc.mergeRouters;
/**
* Create a server-side caller
* @link https://trpc.io/docs/v11/server/server-side-calls
*/
export const createCallerFactory = edgeTrpc.createCallerFactory;