wasp-lang cursor-template .cursorrules file for TypeScript (stars: 17)

// Wasp Import Rules
- Path to Wasp functions within .ts files must come from 'wasp', not '@wasp'!
  ✓ import { Task } from 'wasp/entities'
  ✓ import type { GetTasks } from 'wasp/server/operations'
  ✓ import { getTasks, useQuery } from 'wasp/client/operations'
  ✗ import { getTasks, useQuery } from '@wasp/...' 
  ✗ import { getTasks, useQuery } from '@src/feature/operations.ts'

- Path to external imports within 'main.wasp' must start with "@src/"!
  ✓ component: import { LoginPage } from "@src/client/pages/auth/LoginPage.tsx"
  ✗ component: import { LoginPage } from "@client/pages/auth/LoginPage.tsx"
- In the client's root component, use the Outlet component rather than children
  ✓ import { Outlet } from 'react-router-dom';

// Wasp DB Schema Rules
- Add databse models to the 'schema.prisma' file, NOT to 'main.wasp' as "entities"
- Do NOT add a db.system nor a db.prisma property to 'main.wasp'. This is taken care of in 'schema.prisma'
- Keep the 'schema.prisma' within the root of the project

// Wasp Operations
- Types are generated automatically from the function definition in 'main.wasp',
  ✓ import type { GetTimeLogs, CreateTimeLog, UpdateTimeLog } from 'wasp/server/operations'
- Wasp also generates entity types based on the models in 'schema.prisma'
  ✓ import type { Project, TimeLog } from 'wasp/entities'
- Make sure that all Entities that should be included in the operations context are defined in its definition in 'main.wasp'
  ✓ action createTimeLog { fn: import { createTimeLog } from "@src/server/timeLogs/operations.js", entities: [TimeLog, Project] }

// Wasp Auth
- When creating Auth pages, use the LoginForm and SignupForm components provided by Wasp
  ✓ import { LoginForm } from 'wasp/client/auth'
- Wasp takes care of creating the user's auth model id, username, and password for a user, so a user model DOES NOT need these properties
   ✓ model User { id       Int       @id @default(autoincrement()) }

// Wasp Dependencies
- Do NOT add dependencies to 'main.wasp'
- Install dependencies via 'npm install' instead

// Wasp
- Use the latest Wasp version, ^0.15.0
- Always use typescript for Wasp code.
- When creating Wasp operations (queries and actions) combine them into an operations.ts file within the feature directory rather than into separate queries.ts and actions.ts files

// React
- Use relative imports for other react components
- If importing a function from an operations file, defer to the wasp import rules

// CSS
- Use Tailwind CSS for styling.
- Do not use inline styles unless necessary

// General
- Use single quotes
css
javascript
less
npm
prisma
react
tailwindcss
typescript

First Time Repository

A template for building Wasp apps with the Cursor IDE

TypeScript

Languages:

CSS: 0.1KB
JavaScript: 0.3KB
TypeScript: 17.9KB
Created: 12/4/2024
Updated: 1/4/2025

All Repositories (3)

A template for building Wasp apps with the Cursor IDE

Simple Slack-like chat app built with React, Node.js, and Prisma