mirror of
https://github.com/wasp-lang/wasp.git
synced 2024-12-26 02:23:21 +03:00
75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
app TodoTypescript {
|
|
wasp: {
|
|
version: "^0.12.0"
|
|
},
|
|
title: "ToDo TypeScript",
|
|
|
|
auth: {
|
|
userEntity: User,
|
|
methods: {
|
|
usernameAndPassword: {}, // this is a very naive implementation, use 'email' in production instead
|
|
//google: {}, //https://wasp-lang.dev/docs/integrations/google
|
|
//gitHub: {}, //https://wasp-lang.dev/docs/integrations/github
|
|
//email: {} //https://wasp-lang.dev/docs/guides/email-auth
|
|
},
|
|
onAuthFailedRedirectTo: "/login",
|
|
}
|
|
}
|
|
|
|
// Use Prisma Schema Language (PSL) to define our entities: https://www.prisma.io/docs/concepts/components/prisma-schema
|
|
// Run `wasp db migrate-dev` in the CLI to create the database tables
|
|
// Then run `wasp db studio` to open Prisma Studio and view your db models
|
|
entity User {=psl
|
|
id Int @id @default(autoincrement())
|
|
tasks Task[]
|
|
psl=}
|
|
|
|
entity Task {=psl
|
|
id Int @id @default(autoincrement())
|
|
description String
|
|
isDone Boolean @default(false)
|
|
user User @relation(fields: [userId], references: [id])
|
|
userId Int
|
|
psl=}
|
|
|
|
route RootRoute { path: "/", to: MainPage }
|
|
page MainPage {
|
|
authRequired: true,
|
|
component: import { MainPage } from "@src/client/MainPage.tsx"
|
|
}
|
|
|
|
route LoginRoute { path: "/login", to: LoginPage }
|
|
page LoginPage {
|
|
component: import { LoginPage } from "@src/client/LoginPage.tsx"
|
|
}
|
|
|
|
route SignupRoute { path: "/signup", to: SignupPage }
|
|
page SignupPage {
|
|
component: import { SignupPage } from "@src/client/SignupPage.tsx"
|
|
}
|
|
|
|
query getTasks {
|
|
// We specify the JS implementation of our query (which is an async JS function)
|
|
// Even if you use TS and have a queries.ts file, you will still need to import it using the .js extension.
|
|
// see here for more info: https://wasp-lang.dev/docs/tutorials/todo-app/03-listing-tasks#wasp-declaration
|
|
fn: import { getTasks } from "@src/server/queries.js",
|
|
// We tell Wasp that this query is doing something with the `Task` entity. With that, Wasp will
|
|
// automatically refresh the results of this query when tasks change.
|
|
entities: [Task]
|
|
}
|
|
|
|
action createTask {
|
|
fn: import { createTask } from "@src/server/actions.js",
|
|
entities: [Task]
|
|
}
|
|
|
|
action updateTask {
|
|
fn: import { updateTask } from "@src/server/actions.js",
|
|
entities: [Task]
|
|
}
|
|
|
|
action deleteTasks {
|
|
fn: import { deleteTasks } from "@src/server/actions.js",
|
|
entities: [Task],
|
|
}
|