26 lines
655 B
TypeScript
26 lines
655 B
TypeScript
import { getUser } from '@/api/user/query';
|
|
import { getCurrentScope } from '@sentry/node';
|
|
import type { inferAsyncReturnType } from '@trpc/server';
|
|
import type { CreateNextContextOptions } from '@trpc/server/adapters/next';
|
|
|
|
export async function createContext({ req }: CreateNextContextOptions) {
|
|
const { cookie = '', authorization, 'user-agent': userAgent } = req.headers;
|
|
|
|
const user = await getUser({
|
|
headers: {
|
|
cookie,
|
|
},
|
|
});
|
|
|
|
const scope = getCurrentScope();
|
|
scope.setUser(user);
|
|
|
|
return {
|
|
headers: { authorization },
|
|
user,
|
|
userAgent,
|
|
};
|
|
}
|
|
|
|
export type Context = inferAsyncReturnType<typeof createContext>;
|