MugetsuM
tRPC3y ago
18 replies
Mugetsu

Meta - unable to create default meta

Trying to follow https://trpc.io/docs/server/metadata#default-meta-chaining-and-shallow-merging
I set the type of the meta add it to the builder and want to set default but seems there is no typing for the meta in the create to set the default. Am I missing something ?
"@trpc/client": "10.16.0",
    "@trpc/react-query": "10.16.0",
    "@trpc/server": "10.16.0",

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,
        },
      }
    },
  })
Screenshot_2023-03-20_at_17.07.20.png
Was this page helpful?