31 lines
948 B
TypeScript
31 lines
948 B
TypeScript
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<typeof createWSContext>; |