Skip to content

generated types are not resolved correctly when using methods like pick #5

@Mnigos

Description

@Mnigos

user.schema.ts

export const userSchema = z.object({
  id: z.string(),
  name: z.string(),
  createdAt: z.date(),
})

export const createUserSchema = userSchema.pick({ name: true })

user.router.ts

@Router({ alias: 'user' })
export class UsersRouter {
  constructor(private readonly prisma: PrismaService) {}

  @Query({ input: createUserSchema, output: userSchema })
  async login(@Input('name') name: string) {
    const foundUser = await this.prisma.user.findUnique({
      where: {
        name,
      },
    })

    if (foundUser) return foundUser

    return this.prisma.user.create({
      data: {
        name,
      },
    })
  }

  @Query({ input: z.string(), output: userSchema })
  async byName(@Input() name: string) {
    const foundUser = await this.prisma.user.findUnique({
      where: {
        name,
      },
    })

    if (!foundUser) throw new TRPCError({ code: 'NOT_FOUND' })

    return foundUser
  }
}
Screenshot 2024-09-27 at 12 16 30

Metadata

Metadata

Assignees

Labels

🐛 bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions