type CreateContextOptions = {
req: express.Request
res: express.Response
currentSchema: any
}
type MetaOptions = {
roles: string[]
}
export const createInnerTRPCContext = async (opts: CreateContextOptions) => ({
req: opts.req,
res: opts.res,
currentSchema: opts.currentSchema,
})
export const createTRPCContext = async (
opts: trpcExpress.CreateExpressContextOptions,
) => {
const { req, res } = opts
const currentSchema =
req.locationSchemas?.find(({ id }) => id === req.schemaId) || {}
return createInnerTRPCContext({
req,
res,
currentSchema,
})
}
const t = initTRPC
.context<typeof createTRPCContext>()
.meta<MetaOptions>()
.create({
/// defaultMeta <------------------------- MISSING TYPING
transformer: superjson,
errorFormatter({ shape, ctx }) {
const { data, ...rest } = shape
return {
...rest,
data: {
...data,
traceId: ctx?.req?.traceId,
schemaId: ctx?.req?.schemaId,
},
}
},
})
type CreateContextOptions = {
req: express.Request
res: express.Response
currentSchema: any
}
type MetaOptions = {
roles: string[]
}
export const createInnerTRPCContext = async (opts: CreateContextOptions) => ({
req: opts.req,
res: opts.res,
currentSchema: opts.currentSchema,
})
export const createTRPCContext = async (
opts: trpcExpress.CreateExpressContextOptions,
) => {
const { req, res } = opts
const currentSchema =
req.locationSchemas?.find(({ id }) => id === req.schemaId) || {}
return createInnerTRPCContext({
req,
res,
currentSchema,
})
}
const t = initTRPC
.context<typeof createTRPCContext>()
.meta<MetaOptions>()
.create({
/// defaultMeta <------------------------- MISSING TYPING
transformer: superjson,
errorFormatter({ shape, ctx }) {
const { data, ...rest } = shape
return {
...rest,
data: {
...data,
traceId: ctx?.req?.traceId,
schemaId: ctx?.req?.schemaId,
},
}
},
})