create-prisma 0.7.1-pr.52.181.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -19
- package/dist/cli.mjs +2 -32
- package/dist/index.d.mts +25 -1
- package/dist/index.mjs +2 -2290
- package/dist/src-B3hRLZ0U.mjs +2527 -0
- package/package.json +2 -4
- package/templates/create/astro/README.md.hbs +14 -7
- package/templates/create/astro/astro.config.mjs.hbs +0 -11
- package/templates/create/astro/deno.json.hbs +5 -0
- package/templates/create/astro/prisma/schema.prisma.hbs +5 -0
- package/templates/create/astro/prisma/seed.ts.hbs +5 -1
- package/templates/create/astro/prisma.compute.ts.hbs +10 -0
- package/templates/create/astro/src/lib/prisma.ts.hbs +4 -18
- package/templates/create/astro/src/pages/api/users.ts.hbs +11 -1
- package/templates/create/astro/src/pages/index.astro.hbs +176 -36
- package/templates/create/elysia/README.md.hbs +13 -7
- package/templates/create/elysia/deno.json.hbs +5 -0
- package/templates/create/elysia/package.json.hbs +3 -4
- package/templates/create/elysia/prisma/schema.prisma.hbs +6 -0
- package/templates/create/elysia/prisma/seed.ts.hbs +5 -1
- package/templates/create/elysia/prisma.compute.ts.hbs +11 -0
- package/templates/create/elysia/src/index.ts.hbs +17 -13
- package/templates/create/elysia/src/lib/prisma.ts.hbs +4 -18
- package/templates/create/elysia/tsconfig.json +0 -1
- package/templates/create/hono/README.md.hbs +13 -7
- package/templates/create/hono/deno.json.hbs +5 -0
- package/templates/create/hono/package.json.hbs +2 -2
- package/templates/create/hono/prisma/schema.prisma.hbs +6 -0
- package/templates/create/hono/prisma/seed.ts.hbs +5 -1
- package/templates/create/hono/prisma.compute.ts.hbs +10 -0
- package/templates/create/hono/src/index.ts.hbs +7 -9
- package/templates/create/hono/src/lib/prisma.ts.hbs +4 -18
- package/templates/create/hono/tsconfig.json +0 -1
- package/templates/create/nest/README.md.hbs +12 -6
- package/templates/create/nest/deno.json.hbs +5 -0
- package/templates/create/nest/package.json.hbs +2 -2
- package/templates/create/nest/prisma/schema.prisma.hbs +6 -0
- package/templates/create/nest/prisma/seed.ts.hbs +5 -1
- package/templates/create/nest/prisma.compute.ts.hbs +10 -0
- package/templates/create/nest/src/app.controller.ts.hbs +1 -6
- package/templates/create/nest/src/app.module.ts.hbs +14 -7
- package/templates/create/nest/src/lib/prisma.ts.hbs +4 -17
- package/templates/create/nest/src/main.ts.hbs +6 -2
- package/templates/create/nest/src/prisma.service.ts.hbs +2 -2
- package/templates/create/nest/src/users.controller.ts.hbs +3 -1
- package/templates/create/nest/src/users.service.ts.hbs +3 -1
- package/templates/create/nest/tsconfig.json +0 -1
- package/templates/create/next/README.md.hbs +11 -7
- package/templates/create/next/deno.json.hbs +12 -0
- package/templates/create/next/prisma/schema.prisma.hbs +5 -0
- package/templates/create/next/prisma/seed.ts.hbs +5 -1
- package/templates/create/next/prisma.compute.ts.hbs +9 -0
- package/templates/create/next/src/app/globals.css +122 -0
- package/templates/create/next/src/app/layout.tsx.hbs +2 -2
- package/templates/create/next/src/app/page.tsx.hbs +58 -34
- package/templates/create/next/src/lib/prisma.ts.hbs +4 -18
- package/templates/create/nuxt/README.md.hbs +11 -7
- package/templates/create/nuxt/app/pages/index.vue.hbs +175 -43
- package/templates/create/nuxt/deno.json.hbs +5 -0
- package/templates/create/nuxt/nuxt.config.ts +0 -1
- package/templates/create/nuxt/prisma/schema.prisma.hbs +5 -0
- package/templates/create/nuxt/prisma/seed.ts.hbs +5 -1
- package/templates/create/nuxt/prisma.compute.ts.hbs +9 -0
- package/templates/create/nuxt/server/api/users.get.ts.hbs +6 -0
- package/templates/create/nuxt/server/utils/prisma.ts.hbs +4 -18
- package/templates/create/svelte/README.md.hbs +13 -4
- package/templates/create/svelte/deno.json.hbs +5 -0
- package/templates/create/svelte/package.json.hbs +1 -2
- package/templates/create/svelte/prisma/schema.prisma.hbs +5 -0
- package/templates/create/svelte/prisma/seed.ts.hbs +5 -1
- package/templates/create/svelte/src/lib/server/prisma.ts.hbs +2 -18
- package/templates/create/svelte/src/routes/+layout.svelte +0 -1
- package/templates/create/svelte/src/routes/+page.server.ts.hbs +7 -1
- package/templates/create/svelte/src/routes/+page.svelte.hbs +297 -41
- package/templates/create/svelte/svelte.config.js +13 -0
- package/templates/create/svelte/vite.config.ts +0 -3
- package/templates/create/tanstack-start/README.md.hbs +11 -7
- package/templates/create/tanstack-start/deno.json.hbs +13 -0
- package/templates/create/tanstack-start/prisma/schema.prisma.hbs +5 -0
- package/templates/create/tanstack-start/prisma/seed.ts.hbs +5 -1
- package/templates/create/tanstack-start/prisma.compute.ts.hbs +9 -0
- package/templates/create/tanstack-start/src/lib/prisma.server.ts.hbs +4 -18
- package/templates/create/tanstack-start/src/routes/__root.tsx.hbs +29 -4
- package/templates/create/tanstack-start/src/routes/index.tsx.hbs +76 -35
- package/templates/create/tanstack-start/src/styles.css +146 -0
- package/templates/create/tanstack-start/tsconfig.json +1 -1
- package/templates/create/turborepo/README.md.hbs +9 -7
- package/templates/create/turborepo/apps/api/package.json.hbs +9 -2
- package/templates/create/turborepo/apps/api/src/index.ts.hbs +12 -28
- package/templates/create/turborepo/apps/api/tsconfig.json +0 -1
- package/templates/create/turborepo/deno.json.hbs +5 -0
- package/templates/create/turborepo/package.json.hbs +6 -0
- package/templates/create/turborepo/packages/db/package.json.hbs +5 -4
- package/templates/create/turborepo/packages/db/prisma/schema.prisma.hbs +5 -0
- package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +5 -1
- package/templates/create/turborepo/packages/db/src/client.ts.hbs +5 -2
- package/templates/create/turborepo/packages/db/tsconfig.json +0 -1
- package/templates/create/turborepo/prisma.compute.ts.hbs +14 -0
- package/templates/create/astro/module.ts.hbs +0 -30
- package/templates/create/astro/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/astro/service.ts.hbs +0 -19
- package/templates/create/elysia/.yarnrc.yml.hbs +0 -3
- package/templates/create/elysia/module.ts.hbs +0 -30
- package/templates/create/elysia/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/elysia/service.ts.hbs +0 -19
- package/templates/create/hono/module.ts.hbs +0 -30
- package/templates/create/hono/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/hono/service.ts.hbs +0 -19
- package/templates/create/nest/module.ts.hbs +0 -30
- package/templates/create/nest/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/nest/src/service.ts.hbs +0 -19
- package/templates/create/next/module.ts.hbs +0 -30
- package/templates/create/next/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/next/service.ts.hbs +0 -19
- package/templates/create/nuxt/module.ts.hbs +0 -30
- package/templates/create/nuxt/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/nuxt/service.ts.hbs +0 -19
- package/templates/create/svelte/module.ts.hbs +0 -30
- package/templates/create/svelte/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/svelte/service.ts.hbs +0 -19
- package/templates/create/svelte/svelte.config.js.hbs +0 -10
- package/templates/create/tanstack-start/module.ts.hbs +0 -30
- package/templates/create/tanstack-start/prisma-composer.config.ts.hbs +0 -8
- package/templates/create/tanstack-start/service.ts.hbs +0 -19
- package/templates/create/turborepo/apps/api/src/service.ts.hbs +0 -19
- package/templates/create/turborepo/module.ts.hbs +0 -30
- package/templates/create/turborepo/prisma-composer.config.ts.hbs +0 -8
- package/templates/shared/setup-composer-postgres.mjs.hbs +0 -179
- package/templates/shared/starter.css +0 -276
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import { PrismaClient } from "../generated/prisma/client";
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
6
5
|
{{#if (eq provider "postgresql")}}
|
|
7
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
7
|
{{/if}}
|
|
@@ -19,20 +18,7 @@ import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage pa
|
|
|
19
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
20
19
|
{{/if}}
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
{{#if composerPostgres}}
|
|
25
|
-
return service.load().database.url;
|
|
26
|
-
{{else}}
|
|
27
|
-
return service.input().databaseUrl.expose();
|
|
28
|
-
{{/if}}
|
|
29
|
-
} catch {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const rawDatabaseUrl = getComposerDatabaseUrl() ?? process.env.DATABASE_URL;
|
|
35
|
-
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
36
22
|
{{#if (eq provider "sqlite")}}
|
|
37
23
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
38
24
|
{{else}}
|
|
@@ -5,9 +5,11 @@ Generated by `create-prisma` with the Hono template.
|
|
|
5
5
|
## Scripts
|
|
6
6
|
|
|
7
7
|
- `{{runScriptCommand packageManager "dev"}}` - start local dev server
|
|
8
|
-
- `{{runScriptCommand packageManager "build"}}` -
|
|
9
|
-
- `{{runScriptCommand packageManager "start"}}` - run the
|
|
10
|
-
|
|
8
|
+
- `{{runScriptCommand packageManager "build"}}` - {{#if (eq packageManager "deno")}}type-check the app with Deno{{else}}{{#if (eq packageManager "bun")}}type-check the app for Bun{{else}}typecheck and compile{{/if}}{{/if}}
|
|
9
|
+
- `{{runScriptCommand packageManager "start"}}` - {{#if (eq packageManager "deno")}}run the server directly from `src/index.ts` with Deno{{else}}{{#if (eq packageManager "bun")}}run the server directly from `src/index.ts` with Bun{{else}}run compiled server from `dist/`{{/if}}{{/if}}
|
|
10
|
+
{{#if compute}}
|
|
11
|
+
- `{{runScriptCommand packageManager "compute:deploy"}}` - redeploy to Prisma Compute with environment variables from `.env`
|
|
12
|
+
{{/if}}
|
|
11
13
|
|
|
12
14
|
## Prisma
|
|
13
15
|
|
|
@@ -26,12 +28,16 @@ Generated by `create-prisma` with the Hono template.
|
|
|
26
28
|
|
|
27
29
|
5. Use the Prisma client from `src/lib/prisma.ts`.
|
|
28
30
|
|
|
29
|
-
Generated Prisma files are written to `src/generated/prisma`.
|
|
31
|
+
Generated Prisma files are written to `src/generated/prisma`. Prisma Compute deploy defaults are written to `prisma.compute.ts`.
|
|
32
|
+
{{#if (eq schemaPreset "basic")}}
|
|
30
33
|
|
|
31
34
|
The template includes a basic `User` model, a sample `GET /users` endpoint, and seed data in `prisma/seed.ts`.
|
|
35
|
+
{{/if}}
|
|
36
|
+
{{#if compute}}
|
|
32
37
|
|
|
33
|
-
## Prisma
|
|
38
|
+
## Prisma Compute
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
This project includes a Prisma Compute deploy script and deploy defaults in `prisma.compute.ts`. Deploys load environment variables from `.env`; if setup created a Prisma Postgres database, its `DATABASE_URL` is already written there.
|
|
36
41
|
|
|
37
|
-
|
|
42
|
+
After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
|
|
43
|
+
{{/if}}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"main": "src/index.ts",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"dev": "{{runtimeScript packageManager "dev" "src/index.ts" "dist/src/index.js"}}",
|
|
11
|
-
"build": "
|
|
12
|
-
"start": "
|
|
11
|
+
"build": "{{runtimeScript packageManager "build" "src/index.ts" "dist/src/index.js"}}",
|
|
12
|
+
"start": "{{runtimeScript packageManager "start" "src/index.ts" "dist/src/index.js"}}"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@hono/node-server": "^2.0.6",
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
generator client {
|
|
2
2
|
provider = "prisma-client"
|
|
3
3
|
output = "../src/generated/prisma"
|
|
4
|
+
{{#if (eq packageManager "deno")}}
|
|
5
|
+
runtime = "deno"
|
|
6
|
+
{{else}}
|
|
4
7
|
{{#if (eq packageManager "bun")}}
|
|
5
8
|
runtime = "bun"
|
|
6
9
|
{{/if}}
|
|
10
|
+
{{/if}}
|
|
7
11
|
}
|
|
8
12
|
|
|
9
13
|
datasource db {
|
|
10
14
|
provider = "{{provider}}"
|
|
11
15
|
}
|
|
16
|
+
{{#if (eq schemaPreset "basic")}}
|
|
12
17
|
|
|
13
18
|
model User {
|
|
14
19
|
id String @id @default(cuid())
|
|
@@ -17,3 +22,4 @@ model User {
|
|
|
17
22
|
createdAt DateTime @default(now())
|
|
18
23
|
updatedAt DateTime @updatedAt
|
|
19
24
|
}
|
|
25
|
+
{{/if}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import prisma from "../src/lib/prisma";
|
|
1
|
+
import prisma from "../src/lib/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
2
2
|
|
|
3
3
|
async function main() {
|
|
4
|
+
{{#if (eq schemaPreset "basic")}}
|
|
4
5
|
const users = await Promise.all([
|
|
5
6
|
prisma.user.upsert({
|
|
6
7
|
where: { email: "alice@prisma.io" },
|
|
@@ -21,6 +22,9 @@ async function main() {
|
|
|
21
22
|
]);
|
|
22
23
|
|
|
23
24
|
console.log(`Seeded ${users.length} users.`);
|
|
25
|
+
{{else}}
|
|
26
|
+
console.log("No seed data defined for the empty schema preset.");
|
|
27
|
+
{{/if}}
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
main()
|
|
@@ -3,21 +3,18 @@ import "dotenv/config";
|
|
|
3
3
|
{{/if}}
|
|
4
4
|
import { serve } from "@hono/node-server";
|
|
5
5
|
import { Hono } from "hono";
|
|
6
|
-
|
|
7
|
-
import { prisma } from "./lib/prisma";
|
|
6
|
+
{{#if (eq schemaPreset "basic")}}
|
|
7
|
+
import { prisma } from "./lib/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
8
|
+
{{/if}}
|
|
8
9
|
|
|
9
10
|
const app = new Hono();
|
|
10
11
|
|
|
11
12
|
app.get("/", (c) => {
|
|
12
13
|
return c.json({
|
|
13
|
-
|
|
14
|
-
framework: "Hono",
|
|
15
|
-
status: "ready",
|
|
16
|
-
endpoints: {
|
|
17
|
-
users: "/users",
|
|
18
|
-
},
|
|
14
|
+
message: "hello from create-prisma + hono",
|
|
19
15
|
});
|
|
20
16
|
});
|
|
17
|
+
{{#if (eq schemaPreset "basic")}}
|
|
21
18
|
|
|
22
19
|
app.get("/users", async (c) => {
|
|
23
20
|
const users = await prisma.user.findMany({
|
|
@@ -29,8 +26,9 @@ app.get("/users", async (c) => {
|
|
|
29
26
|
|
|
30
27
|
return c.json(users);
|
|
31
28
|
});
|
|
29
|
+
{{/if}}
|
|
32
30
|
|
|
33
|
-
const rawPort = (process.env.PORT ?? "").trim();
|
|
31
|
+
const rawPort = ({{#if (eq packageManager "deno")}}Deno.env.get("PORT"){{else}}process.env.PORT{{/if}} ?? "").trim();
|
|
34
32
|
const parsedPort = rawPort.length > 0 ? Number(rawPort) : Number.NaN;
|
|
35
33
|
const port =
|
|
36
34
|
Number.isInteger(parsedPort) && parsedPort >= 0 && parsedPort <= 65535 ? parsedPort : 8080;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import { PrismaClient } from "../generated/prisma/client";
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
6
5
|
{{#if (eq provider "postgresql")}}
|
|
7
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
7
|
{{/if}}
|
|
@@ -19,20 +18,7 @@ import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage pa
|
|
|
19
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
20
19
|
{{/if}}
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
{{#if composerPostgres}}
|
|
25
|
-
return service.load().database.url;
|
|
26
|
-
{{else}}
|
|
27
|
-
return service.input().databaseUrl.expose();
|
|
28
|
-
{{/if}}
|
|
29
|
-
} catch {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const rawDatabaseUrl = getComposerDatabaseUrl() ?? process.env.DATABASE_URL;
|
|
35
|
-
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
36
22
|
{{#if (eq provider "sqlite")}}
|
|
37
23
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
38
24
|
{{else}}
|
|
@@ -5,9 +5,11 @@ Generated by `create-prisma` with the NestJS template.
|
|
|
5
5
|
## Scripts
|
|
6
6
|
|
|
7
7
|
- `{{runScriptCommand packageManager "dev"}}` - start the Nest dev server with watch mode
|
|
8
|
-
- `{{runScriptCommand packageManager "build"}}` -
|
|
9
|
-
- `{{runScriptCommand packageManager "start"}}` - run the
|
|
10
|
-
|
|
8
|
+
- `{{runScriptCommand packageManager "build"}}` - {{#if (eq packageManager "deno")}}type-check the app with Deno{{else}}{{#if (eq packageManager "bun")}}type-check the app for Bun{{else}}compile the app into `dist/`{{/if}}{{/if}}
|
|
9
|
+
- `{{runScriptCommand packageManager "start"}}` - {{#if (eq packageManager "deno")}}run the server directly from `src/main.ts` with Deno{{else}}{{#if (eq packageManager "bun")}}run the server directly from `src/main.ts` with Bun{{else}}run the compiled server from `dist/main.js`{{/if}}{{/if}}
|
|
10
|
+
{{#if compute}}
|
|
11
|
+
- `{{runScriptCommand packageManager "compute:deploy"}}` - redeploy to Prisma Compute with environment variables from `.env`
|
|
12
|
+
{{/if}}
|
|
11
13
|
|
|
12
14
|
## Prisma
|
|
13
15
|
|
|
@@ -27,11 +29,15 @@ Generated by `create-prisma` with the NestJS template.
|
|
|
27
29
|
5. Use the shared Prisma setup from `src/lib/prisma.ts` and inject `PrismaService` from `src/prisma.service.ts` inside Nest providers.
|
|
28
30
|
|
|
29
31
|
Generated Prisma files are written to `src/generated/prisma`.
|
|
32
|
+
{{#if (eq schemaPreset "basic")}}
|
|
30
33
|
|
|
31
34
|
The template includes a basic `User` model, a sample `GET /users` endpoint, and seed data in `prisma/seed.ts`.
|
|
35
|
+
{{/if}}
|
|
36
|
+
{{#if compute}}
|
|
32
37
|
|
|
33
|
-
## Prisma
|
|
38
|
+
## Prisma Compute
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
This project includes a Prisma Compute deploy script. Deploys load environment variables from `.env`; if setup created a Prisma Postgres database, its `DATABASE_URL` is already written there.
|
|
36
41
|
|
|
37
|
-
|
|
42
|
+
After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
|
|
43
|
+
{{/if}}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"type": "module",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"dev": "{{runtimeScript packageManager "dev" "src/main.ts" "dist/main.js"}}",
|
|
10
|
-
"build": "
|
|
11
|
-
"start": "
|
|
10
|
+
"build": "{{runtimeScript packageManager "build" "src/main.ts" "dist/main.js" emit=true}}",
|
|
11
|
+
"start": "{{runtimeScript packageManager "start" "src/main.ts" "dist/main.js"}}"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@nestjs/common": "^11.1.27",
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
generator client {
|
|
2
2
|
provider = "prisma-client"
|
|
3
3
|
output = "../src/generated/prisma"
|
|
4
|
+
{{#if (eq packageManager "deno")}}
|
|
5
|
+
runtime = "deno"
|
|
6
|
+
{{else}}
|
|
4
7
|
{{#if (eq packageManager "bun")}}
|
|
5
8
|
runtime = "bun"
|
|
6
9
|
{{/if}}
|
|
10
|
+
{{/if}}
|
|
7
11
|
}
|
|
8
12
|
|
|
9
13
|
datasource db {
|
|
10
14
|
provider = "{{provider}}"
|
|
11
15
|
}
|
|
16
|
+
{{#if (eq schemaPreset "basic")}}
|
|
12
17
|
|
|
13
18
|
model User {
|
|
14
19
|
id String @id @default(cuid())
|
|
@@ -17,3 +22,4 @@ model User {
|
|
|
17
22
|
createdAt DateTime @default(now())
|
|
18
23
|
updatedAt DateTime @updatedAt
|
|
19
24
|
}
|
|
25
|
+
{{/if}}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { createPrismaClient } from "../src/lib/prisma";
|
|
1
|
+
import { createPrismaClient } from "../src/lib/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
2
2
|
|
|
3
3
|
const prisma = createPrismaClient();
|
|
4
4
|
|
|
5
5
|
async function main() {
|
|
6
|
+
{{#if (eq schemaPreset "basic")}}
|
|
6
7
|
const users = await Promise.all([
|
|
7
8
|
prisma.user.upsert({
|
|
8
9
|
where: { email: "alice@prisma.io" },
|
|
@@ -23,6 +24,9 @@ async function main() {
|
|
|
23
24
|
]);
|
|
24
25
|
|
|
25
26
|
console.log(`Seeded ${users.length} users.`);
|
|
27
|
+
{{else}}
|
|
28
|
+
console.log("No seed data defined for the empty schema preset.");
|
|
29
|
+
{{/if}}
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
main()
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { Module } from "@nestjs/common";
|
|
2
|
-
import { AppController } from "./app.controller";
|
|
3
|
-
import { PrismaService } from "./prisma.service";
|
|
4
|
-
|
|
5
|
-
import { UsersController } from "./users.controller";
|
|
6
|
-
import { UsersService } from "./users.service";
|
|
2
|
+
import { AppController } from "./app.controller{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
|
+
import { PrismaService } from "./prisma.service{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
4
|
+
{{#if (eq schemaPreset "basic")}}
|
|
5
|
+
import { UsersController } from "./users.controller{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
6
|
+
import { UsersService } from "./users.service{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
7
|
+
{{/if}}
|
|
7
8
|
|
|
8
9
|
@Module({
|
|
9
10
|
imports: [],
|
|
10
|
-
controllers: [
|
|
11
|
-
|
|
11
|
+
controllers: [
|
|
12
|
+
AppController{{#if (eq schemaPreset "basic")}},
|
|
13
|
+
UsersController{{/if}}
|
|
14
|
+
],
|
|
15
|
+
providers: [
|
|
16
|
+
PrismaService{{#if (eq schemaPreset "basic")}},
|
|
17
|
+
UsersService{{/if}}
|
|
18
|
+
],
|
|
12
19
|
})
|
|
13
20
|
export class AppModule {}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
2
4
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import { PrismaClient } from "../generated/prisma/client";
|
|
5
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
6
6
|
{{#if (eq provider "postgresql")}}
|
|
7
7
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
8
|
{{/if}}
|
|
@@ -19,20 +19,7 @@ import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage pa
|
|
|
19
19
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
20
20
|
{{/if}}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
{{#if composerPostgres}}
|
|
25
|
-
return service.load().database.url;
|
|
26
|
-
{{else}}
|
|
27
|
-
return service.input().databaseUrl.expose();
|
|
28
|
-
{{/if}}
|
|
29
|
-
} catch {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const rawDatabaseUrl = getComposerDatabaseUrl() ?? process.env.DATABASE_URL;
|
|
35
|
-
|
|
22
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
36
23
|
{{#if (eq provider "sqlite")}}
|
|
37
24
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
38
25
|
{{else}}
|
|
@@ -5,11 +5,11 @@ import "dotenv/config";
|
|
|
5
5
|
|
|
6
6
|
import { NestFactory } from "@nestjs/core";
|
|
7
7
|
|
|
8
|
-
import { AppModule } from "./app.module";
|
|
8
|
+
import { AppModule } from "./app.module{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
9
9
|
|
|
10
10
|
async function bootstrap() {
|
|
11
11
|
const app = await NestFactory.create(AppModule);
|
|
12
|
-
const rawPort = (process.env.PORT ?? "").trim();
|
|
12
|
+
const rawPort = ({{#if (eq packageManager "deno")}}Deno.env.get("PORT"){{else}}process.env.PORT{{/if}} ?? "").trim();
|
|
13
13
|
const parsedPort = rawPort.length > 0 ? Number(rawPort) : Number.NaN;
|
|
14
14
|
const port =
|
|
15
15
|
Number.isFinite(parsedPort) && parsedPort >= 0 && parsedPort <= 65535 ? parsedPort : 3000;
|
|
@@ -19,5 +19,9 @@ async function bootstrap() {
|
|
|
19
19
|
|
|
20
20
|
bootstrap().catch((error) => {
|
|
21
21
|
console.error("Failed to start server", error);
|
|
22
|
+
{{#if (eq packageManager "deno")}}
|
|
23
|
+
Deno.exit(1);
|
|
24
|
+
{{else}}
|
|
22
25
|
process.exit(1);
|
|
26
|
+
{{/if}}
|
|
23
27
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from "@nestjs/common";
|
|
2
|
-
import { PrismaClient } from "./generated/prisma/client";
|
|
3
|
-
import { prismaClientOptions } from "./lib/prisma";
|
|
2
|
+
import { PrismaClient } from "./generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
|
+
import { prismaClientOptions } from "./lib/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
4
4
|
|
|
5
5
|
@Injectable()
|
|
6
6
|
export class PrismaService extends PrismaClient {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
{{#if (eq schemaPreset "basic")}}
|
|
1
2
|
import { Controller, Get } from "@nestjs/common";
|
|
2
3
|
|
|
3
|
-
import { UsersService } from "./users.service";
|
|
4
|
+
import { UsersService } from "./users.service{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
4
5
|
|
|
5
6
|
@Controller("users")
|
|
6
7
|
export class UsersController {
|
|
@@ -11,3 +12,4 @@ export class UsersController {
|
|
|
11
12
|
return this.usersService.findAll();
|
|
12
13
|
}
|
|
13
14
|
}
|
|
15
|
+
{{/if}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
{{#if (eq schemaPreset "basic")}}
|
|
1
2
|
import { Injectable } from "@nestjs/common";
|
|
2
3
|
|
|
3
|
-
import { PrismaService } from "./prisma.service";
|
|
4
|
+
import { PrismaService } from "./prisma.service{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
4
5
|
|
|
5
6
|
@Injectable()
|
|
6
7
|
export class UsersService {
|
|
@@ -15,3 +16,4 @@ export class UsersService {
|
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
}
|
|
19
|
+
{{/if}}
|
|
@@ -7,7 +7,9 @@ Generated by `create-prisma` with the Next.js template.
|
|
|
7
7
|
- `{{runScriptCommand packageManager "dev"}}` - start local dev server
|
|
8
8
|
- `{{runScriptCommand packageManager "build"}}` - production build
|
|
9
9
|
- `{{runScriptCommand packageManager "start"}}` - run production server
|
|
10
|
-
|
|
10
|
+
{{#if compute}}
|
|
11
|
+
- `{{runScriptCommand packageManager "compute:deploy"}}` - redeploy to Prisma Compute with environment variables from `.env`
|
|
12
|
+
{{/if}}
|
|
11
13
|
|
|
12
14
|
## Prisma
|
|
13
15
|
|
|
@@ -17,9 +19,7 @@ Prisma setup is scaffolded automatically in:
|
|
|
17
19
|
- `prisma/seed.ts`
|
|
18
20
|
- `src/lib/prisma.ts`
|
|
19
21
|
- `prisma.config.ts`
|
|
20
|
-
- `
|
|
21
|
-
- `service.ts`
|
|
22
|
-
- `prisma-composer.config.ts`
|
|
22
|
+
- `prisma.compute.ts`
|
|
23
23
|
- `src/generated/prisma`
|
|
24
24
|
|
|
25
25
|
Database helper scripts are added to `package.json`:
|
|
@@ -28,11 +28,15 @@ Database helper scripts are added to `package.json`:
|
|
|
28
28
|
- `db:push`
|
|
29
29
|
- `db:migrate`
|
|
30
30
|
- `db:seed`
|
|
31
|
+
{{#if (eq schemaPreset "basic")}}
|
|
31
32
|
|
|
32
33
|
The starter page in `src/app/page.tsx` reads from a basic `User` model so you can verify queries quickly, and `prisma/seed.ts` inserts starter users.
|
|
34
|
+
{{/if}}
|
|
35
|
+
{{#if compute}}
|
|
33
36
|
|
|
34
|
-
## Prisma
|
|
37
|
+
## Prisma Compute
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
This project includes a Prisma Compute deploy script and deploy defaults in `prisma.compute.ts`. Deploys load environment variables from `.env`; if setup created a Prisma Postgres database, its `DATABASE_URL` is already written there.
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
|
|
42
|
+
{{/if}}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
generator client {
|
|
2
2
|
provider = "prisma-client"
|
|
3
3
|
output = "../src/generated/prisma"
|
|
4
|
+
{{#if (eq packageManager "deno")}}
|
|
5
|
+
runtime = "deno"
|
|
6
|
+
{{/if}}
|
|
4
7
|
}
|
|
5
8
|
|
|
6
9
|
datasource db {
|
|
7
10
|
provider = "{{provider}}"
|
|
8
11
|
}
|
|
12
|
+
{{#if (eq schemaPreset "basic")}}
|
|
9
13
|
|
|
10
14
|
model User {
|
|
11
15
|
id String @id @default(cuid())
|
|
@@ -14,3 +18,4 @@ model User {
|
|
|
14
18
|
createdAt DateTime @default(now())
|
|
15
19
|
updatedAt DateTime @updatedAt
|
|
16
20
|
}
|
|
21
|
+
{{/if}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import prisma from "../src/lib/prisma";
|
|
1
|
+
import prisma from "../src/lib/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
2
2
|
|
|
3
3
|
async function main() {
|
|
4
|
+
{{#if (eq schemaPreset "basic")}}
|
|
4
5
|
const users = await Promise.all([
|
|
5
6
|
prisma.user.upsert({
|
|
6
7
|
where: { email: "alice@prisma.io" },
|
|
@@ -21,6 +22,9 @@ async function main() {
|
|
|
21
22
|
]);
|
|
22
23
|
|
|
23
24
|
console.log(`Seeded ${users.length} users.`);
|
|
25
|
+
{{else}}
|
|
26
|
+
console.log("No seed data defined for the empty schema preset.");
|
|
27
|
+
{{/if}}
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
main()
|