Types

[ Wasp ] ext-src/products/operations.ts(97,42): error TS2339: Property 'Product' does not exist on type '{ Review: ReviewDelegate<DefaultArgs>; }'. why am i getting this error? How should i create the entities?
5 Replies
kapa.ai
kapa.ai3w ago
Hi @Bruno Njeru. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- This error suggests that you're trying to access a Product entity that doesn't exist in your Wasp project's context. Let's address how to properly create and use entities in Wasp to resolve this issue: 1. Define the Entity: First, you need to define the Product entity in your main.wasp file. Here's an example of how to do that:
entity Product {=psl
id Int @id @default(autoincrement())
name String
description String?
// Add other fields as needed
psl=}
entity Product {=psl
id Int @id @default(autoincrement())
name String
description String?
// Add other fields as needed
psl=}
Entities documentation (https://wasp-lang.dev/docs/data-model/entities#defining-an-entity) 2. Include the Entity in your Action/Query: If you're using this entity in an action or query, make sure to include it in the entities array:
action createProduct {
fn: import { createProduct } from "@src/products/operations.js",
entities: [Product]
}
action createProduct {
fn: import { createProduct } from "@src/products/operations.js",
entities: [Product]
}
Using Entities in Actions (https://wasp-lang.dev/docs/data-model/operations/actions#using-entities-in-actions) 3. Use the Entity in your Operations: In your operations.ts file, you can then access the Product entity through the context.entities object:
import { CreateProduct } from 'wasp/server/operations'

export const createProduct: CreateProduct<{ name: string, description?: string }, Product> =
async (args, context) => {
return context.entities.Product.create({
data: {
name: args.name,
description: args.description
}
})
}
import { CreateProduct } from 'wasp/server/operations'

export const createProduct: CreateProduct<{ name: string, description?: string }, Product> =
async (args, context) => {
return context.entities.Product.create({
data: {
name: args.name,
description: args.description
}
})
}
Example of implementing actions (https://wasp-lang.dev/docs/data-model/operations/actions#example-1) 4. Run Database Migrations: After defining new entities or modifying existing ones, you need to run database migrations:
wasp db migrate-dev
wasp db migrate-dev
Working with Entities (https://wasp-lang.dev/docs/data-model/entities#working-with-entities) If you've followed these steps and are still encountering the error, double-check that you've properly defined the Product entity in your main.wasp file and included it in the relevant action/query declarations. Also, ensure that you've run the database migrations after making changes to your entities. If the issue persists, you might want to try cleaning your Wasp project and rebuilding:
wasp clean
wasp start
wasp clean
wasp start
Cleaning Wasp project (https://discord.com/channels/686873244791210014/1215750573278629958) Remember, the exact solution might depend on the specific structure of your Wasp project and how you're using the Product entity. If you continue to face issues, you may need to review your entire entity setup and usage across your Wasp project. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ---------------------- Sorry @Bruno Njeru, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
Bruno Njeru
Bruno NjeruOP3w ago
ok, i solved it. how about this error [ Wasp ] ext-src/products/ProductViewPage.tsx(51,34): error TS2448: Block-scoped variable 'createReview' used before its declaration. [ Wasp ] ext-src/products/ProductViewPage.tsx(52,41): error TS2448: Block-scoped variable 'updateProductRating' used before its declaration. @kapa.ai
kapa.ai
kapa.ai3w ago
Let me check the knowledge base for you again. One moment! :books: Sorry @Bruno Njeru, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
miho
miho2w ago
It's a Typescript error that means you tried using a variable before you declared it (it's declared below the place of usage). Did you figure it out in the end?
Bruno Njeru
Bruno NjeruOP2w ago
Yes @miho
Want results from more Discord servers?
Add your server