tRPCttRPC
Powered by
Gobot1234G
tRPC•13mo ago•
11 replies
Gobot1234

Modifying input in a middleware

Is it possible to modify input somewhere so that I can do something like this
const signIn = deskOrAdminProcedure
  .input(
    z.object({
      name: LocationNameSchema,
      ucard_number: z
        .string()
        .regex(/\d{9,}/),
      data: CreateSignInSchema.extend({
        reason_id: z.string(),
      }),
    }),
  )
  .mutation(async ({ input, ctx: { db, logger } }) => {
    const { user, name, data } = await ensureUser(input, { db });
const signIn = deskOrAdminProcedure
  .input(
    z.object({
      name: LocationNameSchema,
      ucard_number: z
        .string()
        .regex(/\d{9,}/),
      data: CreateSignInSchema.extend({
        reason_id: z.string(),
      }),
    }),
  )
  .mutation(async ({ input, ctx: { db, logger } }) => {
    const { user, name, data } = await ensureUser(input, { db });
as just
const signIn = deskOrAdminProcedure
  .input(
    z.object({
      name: LocationNameSchema,
      ucard_number: z
        .string()
        .regex(/\d{9,}/)
        .transform(ldapLibraryToUcardNumber),
      data: CreateSignInSchema.extend({
        reason_id: z.string(),
      }),
    }),
  )
  // ... IDK what but inject ensureUser and db
  .mutation(async ({ { user, name, data }, ctx: { db, logger } }) => {
const signIn = deskOrAdminProcedure
  .input(
    z.object({
      name: LocationNameSchema,
      ucard_number: z
        .string()
        .regex(/\d{9,}/)
        .transform(ldapLibraryToUcardNumber),
      data: CreateSignInSchema.extend({
        reason_id: z.string(),
      }),
    }),
  )
  // ... IDK what but inject ensureUser and db
  .mutation(async ({ { user, name, data }, ctx: { db, logger } }) => {
Solution
CleanShot_2025-01-16_at_17.33.29.png
Jump to solution
tRPCJoin
Move Fast & Break Nothing. End-to-end typesafe APIs made easy.
5,015Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Have middleware require a "base" input
DavidDDavid / ❓-help
3y ago
TRPC Middleware w/ Input
LiamLLiam / ❓-help
3y ago