WaspW
Wasp10mo ago
Trujillo

How to properly type Prisma query results with included relations in Wasp?

Hi everyone, I'm trying out Wasp, and I have a small problem I would like share here.

model Product { id String @id @default(uuid()) name String description String price Float stockQuantity Int @default(0) unit String // Remove the files relation as it will be accessed from the other side file File? user User @relation(fields: [userId], references: [id]) userId String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model File { id String @id @default(uuid()) createdAt DateTime @default(now()) // Make this a one-to-one relation product Product @relation(fields: [productId], references: [id], onDelete: Cascade) productId String @unique // Add unique constraint to ensure one-to-one relationship name String type String key String uploadUrl String }

I have this two models, then, in one my querys, I want to get Products with Files, so I do:

export const getProducts: GetProducts<void, Product[]> = async (args, context) => { if (!context.user) { throw new HttpError(401) } return context.entities.Product.findMany({ where: { user: { id: context.user.id }}, orderBy: { createdAt: 'asc'}, include: { file: true } }) };

This works great and the return object brings Product with files, however, the type definition doesn't include the file property, so I get an error in the frontend when I want to use product[n].file.

How can I fix this?
Was this page helpful?