import { inferAsyncReturnType } from '@trpc/server'; import { CreateWSSContextFnOptions } from '@trpc/server/adapters/ws'; import { Session } from 'next-auth'; // Base context - available in all requests interface CreateContextOptions { session: Session | null; req?: Request; } // Helper to create base context const createContextInner = async (opts: CreateContextOptions) => { return { session: opts.session, // Add any other context properties you need }; }; // Context for WebSocket connections export const createWSContext = async (opts: CreateWSSContextFnOptions) => { // Get session from WebSocket connection // You'll need to implement your session extraction logic here const session = null; // Replace with actual session extraction return await createContextInner({ session, req: opts.req, }); }; export type Context = inferAsyncReturnType;