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.
Files changed (129) hide show
  1. package/README.md +25 -19
  2. package/dist/cli.mjs +2 -32
  3. package/dist/index.d.mts +25 -1
  4. package/dist/index.mjs +2 -2290
  5. package/dist/src-B3hRLZ0U.mjs +2527 -0
  6. package/package.json +2 -4
  7. package/templates/create/astro/README.md.hbs +14 -7
  8. package/templates/create/astro/astro.config.mjs.hbs +0 -11
  9. package/templates/create/astro/deno.json.hbs +5 -0
  10. package/templates/create/astro/prisma/schema.prisma.hbs +5 -0
  11. package/templates/create/astro/prisma/seed.ts.hbs +5 -1
  12. package/templates/create/astro/prisma.compute.ts.hbs +10 -0
  13. package/templates/create/astro/src/lib/prisma.ts.hbs +4 -18
  14. package/templates/create/astro/src/pages/api/users.ts.hbs +11 -1
  15. package/templates/create/astro/src/pages/index.astro.hbs +176 -36
  16. package/templates/create/elysia/README.md.hbs +13 -7
  17. package/templates/create/elysia/deno.json.hbs +5 -0
  18. package/templates/create/elysia/package.json.hbs +3 -4
  19. package/templates/create/elysia/prisma/schema.prisma.hbs +6 -0
  20. package/templates/create/elysia/prisma/seed.ts.hbs +5 -1
  21. package/templates/create/elysia/prisma.compute.ts.hbs +11 -0
  22. package/templates/create/elysia/src/index.ts.hbs +17 -13
  23. package/templates/create/elysia/src/lib/prisma.ts.hbs +4 -18
  24. package/templates/create/elysia/tsconfig.json +0 -1
  25. package/templates/create/hono/README.md.hbs +13 -7
  26. package/templates/create/hono/deno.json.hbs +5 -0
  27. package/templates/create/hono/package.json.hbs +2 -2
  28. package/templates/create/hono/prisma/schema.prisma.hbs +6 -0
  29. package/templates/create/hono/prisma/seed.ts.hbs +5 -1
  30. package/templates/create/hono/prisma.compute.ts.hbs +10 -0
  31. package/templates/create/hono/src/index.ts.hbs +7 -9
  32. package/templates/create/hono/src/lib/prisma.ts.hbs +4 -18
  33. package/templates/create/hono/tsconfig.json +0 -1
  34. package/templates/create/nest/README.md.hbs +12 -6
  35. package/templates/create/nest/deno.json.hbs +5 -0
  36. package/templates/create/nest/package.json.hbs +2 -2
  37. package/templates/create/nest/prisma/schema.prisma.hbs +6 -0
  38. package/templates/create/nest/prisma/seed.ts.hbs +5 -1
  39. package/templates/create/nest/prisma.compute.ts.hbs +10 -0
  40. package/templates/create/nest/src/app.controller.ts.hbs +1 -6
  41. package/templates/create/nest/src/app.module.ts.hbs +14 -7
  42. package/templates/create/nest/src/lib/prisma.ts.hbs +4 -17
  43. package/templates/create/nest/src/main.ts.hbs +6 -2
  44. package/templates/create/nest/src/prisma.service.ts.hbs +2 -2
  45. package/templates/create/nest/src/users.controller.ts.hbs +3 -1
  46. package/templates/create/nest/src/users.service.ts.hbs +3 -1
  47. package/templates/create/nest/tsconfig.json +0 -1
  48. package/templates/create/next/README.md.hbs +11 -7
  49. package/templates/create/next/deno.json.hbs +12 -0
  50. package/templates/create/next/prisma/schema.prisma.hbs +5 -0
  51. package/templates/create/next/prisma/seed.ts.hbs +5 -1
  52. package/templates/create/next/prisma.compute.ts.hbs +9 -0
  53. package/templates/create/next/src/app/globals.css +122 -0
  54. package/templates/create/next/src/app/layout.tsx.hbs +2 -2
  55. package/templates/create/next/src/app/page.tsx.hbs +58 -34
  56. package/templates/create/next/src/lib/prisma.ts.hbs +4 -18
  57. package/templates/create/nuxt/README.md.hbs +11 -7
  58. package/templates/create/nuxt/app/pages/index.vue.hbs +175 -43
  59. package/templates/create/nuxt/deno.json.hbs +5 -0
  60. package/templates/create/nuxt/nuxt.config.ts +0 -1
  61. package/templates/create/nuxt/prisma/schema.prisma.hbs +5 -0
  62. package/templates/create/nuxt/prisma/seed.ts.hbs +5 -1
  63. package/templates/create/nuxt/prisma.compute.ts.hbs +9 -0
  64. package/templates/create/nuxt/server/api/users.get.ts.hbs +6 -0
  65. package/templates/create/nuxt/server/utils/prisma.ts.hbs +4 -18
  66. package/templates/create/svelte/README.md.hbs +13 -4
  67. package/templates/create/svelte/deno.json.hbs +5 -0
  68. package/templates/create/svelte/package.json.hbs +1 -2
  69. package/templates/create/svelte/prisma/schema.prisma.hbs +5 -0
  70. package/templates/create/svelte/prisma/seed.ts.hbs +5 -1
  71. package/templates/create/svelte/src/lib/server/prisma.ts.hbs +2 -18
  72. package/templates/create/svelte/src/routes/+layout.svelte +0 -1
  73. package/templates/create/svelte/src/routes/+page.server.ts.hbs +7 -1
  74. package/templates/create/svelte/src/routes/+page.svelte.hbs +297 -41
  75. package/templates/create/svelte/svelte.config.js +13 -0
  76. package/templates/create/svelte/vite.config.ts +0 -3
  77. package/templates/create/tanstack-start/README.md.hbs +11 -7
  78. package/templates/create/tanstack-start/deno.json.hbs +13 -0
  79. package/templates/create/tanstack-start/prisma/schema.prisma.hbs +5 -0
  80. package/templates/create/tanstack-start/prisma/seed.ts.hbs +5 -1
  81. package/templates/create/tanstack-start/prisma.compute.ts.hbs +9 -0
  82. package/templates/create/tanstack-start/src/lib/prisma.server.ts.hbs +4 -18
  83. package/templates/create/tanstack-start/src/routes/__root.tsx.hbs +29 -4
  84. package/templates/create/tanstack-start/src/routes/index.tsx.hbs +76 -35
  85. package/templates/create/tanstack-start/src/styles.css +146 -0
  86. package/templates/create/tanstack-start/tsconfig.json +1 -1
  87. package/templates/create/turborepo/README.md.hbs +9 -7
  88. package/templates/create/turborepo/apps/api/package.json.hbs +9 -2
  89. package/templates/create/turborepo/apps/api/src/index.ts.hbs +12 -28
  90. package/templates/create/turborepo/apps/api/tsconfig.json +0 -1
  91. package/templates/create/turborepo/deno.json.hbs +5 -0
  92. package/templates/create/turborepo/package.json.hbs +6 -0
  93. package/templates/create/turborepo/packages/db/package.json.hbs +5 -4
  94. package/templates/create/turborepo/packages/db/prisma/schema.prisma.hbs +5 -0
  95. package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +5 -1
  96. package/templates/create/turborepo/packages/db/src/client.ts.hbs +5 -2
  97. package/templates/create/turborepo/packages/db/tsconfig.json +0 -1
  98. package/templates/create/turborepo/prisma.compute.ts.hbs +14 -0
  99. package/templates/create/astro/module.ts.hbs +0 -30
  100. package/templates/create/astro/prisma-composer.config.ts.hbs +0 -8
  101. package/templates/create/astro/service.ts.hbs +0 -19
  102. package/templates/create/elysia/.yarnrc.yml.hbs +0 -3
  103. package/templates/create/elysia/module.ts.hbs +0 -30
  104. package/templates/create/elysia/prisma-composer.config.ts.hbs +0 -8
  105. package/templates/create/elysia/service.ts.hbs +0 -19
  106. package/templates/create/hono/module.ts.hbs +0 -30
  107. package/templates/create/hono/prisma-composer.config.ts.hbs +0 -8
  108. package/templates/create/hono/service.ts.hbs +0 -19
  109. package/templates/create/nest/module.ts.hbs +0 -30
  110. package/templates/create/nest/prisma-composer.config.ts.hbs +0 -8
  111. package/templates/create/nest/src/service.ts.hbs +0 -19
  112. package/templates/create/next/module.ts.hbs +0 -30
  113. package/templates/create/next/prisma-composer.config.ts.hbs +0 -8
  114. package/templates/create/next/service.ts.hbs +0 -19
  115. package/templates/create/nuxt/module.ts.hbs +0 -30
  116. package/templates/create/nuxt/prisma-composer.config.ts.hbs +0 -8
  117. package/templates/create/nuxt/service.ts.hbs +0 -19
  118. package/templates/create/svelte/module.ts.hbs +0 -30
  119. package/templates/create/svelte/prisma-composer.config.ts.hbs +0 -8
  120. package/templates/create/svelte/service.ts.hbs +0 -19
  121. package/templates/create/svelte/svelte.config.js.hbs +0 -10
  122. package/templates/create/tanstack-start/module.ts.hbs +0 -30
  123. package/templates/create/tanstack-start/prisma-composer.config.ts.hbs +0 -8
  124. package/templates/create/tanstack-start/service.ts.hbs +0 -19
  125. package/templates/create/turborepo/apps/api/src/service.ts.hbs +0 -19
  126. package/templates/create/turborepo/module.ts.hbs +0 -30
  127. package/templates/create/turborepo/prisma-composer.config.ts.hbs +0 -8
  128. package/templates/shared/setup-composer-postgres.mjs.hbs +0 -179
  129. package/templates/shared/starter.css +0 -276
@@ -1,8 +1,7 @@
1
+ {{#if (requiresDotenvConfigImport packageManager)}}
1
2
  import "dotenv/config";
2
-
3
- import service from "../../service";
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
- function getComposerDatabaseUrl(): string | undefined {
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}}
@@ -7,7 +7,6 @@
7
7
  "strict": true,
8
8
  "esModuleInterop": true,
9
9
  "skipLibCheck": true,
10
- "types": ["node"],
11
10
  "forceConsistentCasingInFileNames": true,
12
11
  "outDir": "dist",
13
12
  "rootDir": "."
@@ -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"}}` - build the production server
9
- - `{{runScriptCommand packageManager "start"}}` - run the production server
10
- - `{{runScriptCommand packageManager "deploy"}}` - build and deploy with Prisma Composer
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 Composer
38
+ ## Prisma Compute
34
39
 
35
- The application topology is declared in `module.ts` and `service.ts`, with deploy configuration in `prisma-composer.config.ts`. {{#if composerPostgres}}Composer provisions Prisma Postgres and injects its connection into the service.{{else}}The database URL is bound as a secret service input from `.env`.{{/if}}
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
- If needed, sign in with `{{prismaAuthLoginCommand packageManager}}`. Run `{{runScriptCommand packageManager "deploy"}}` to deploy later changes.
42
+ After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
43
+ {{/if}}
@@ -0,0 +1,5 @@
1
+ {{#if (eq packageManager "deno")}}
2
+ {
3
+ "nodeModulesDir": "auto"
4
+ }
5
+ {{/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": "esbuild src/index.ts --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __composerCreateRequire } from 'node:module'; const require = __composerCreateRequire(import.meta.url);\" --outfile=dist/server.mjs",
12
- "start": "node dist/server.mjs"
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()
@@ -0,0 +1,10 @@
1
+ import { defineComputeConfig } from "@prisma/compute-sdk/config";
2
+
3
+ export default defineComputeConfig({
4
+ app: {
5
+ name: "{{projectName}}",
6
+ framework: "hono",
7
+ httpPort: 8080,
8
+ env: ".env",
9
+ },
10
+ });
@@ -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
- name: "{{projectName}}",
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 service from "../../service";
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
- function getComposerDatabaseUrl(): string | undefined {
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}}
@@ -7,7 +7,6 @@
7
7
  "strict": true,
8
8
  "esModuleInterop": true,
9
9
  "skipLibCheck": true,
10
- "types": ["node"],
11
10
  "forceConsistentCasingInFileNames": true,
12
11
  "outDir": "dist",
13
12
  "rootDir": "."
@@ -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"}}` - build the production server
9
- - `{{runScriptCommand packageManager "start"}}` - run the production server
10
- - `{{runScriptCommand packageManager "deploy"}}` - build and deploy with Prisma Composer
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 Composer
38
+ ## Prisma Compute
34
39
 
35
- The application topology is declared in `module.ts` and `src/service.ts`, with deploy configuration in `prisma-composer.config.ts`. {{#if composerPostgres}}Composer provisions Prisma Postgres and injects its connection into the service.{{else}}The database URL is bound as a secret service input from `.env`.{{/if}}
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
- If needed, sign in with `{{prismaAuthLoginCommand packageManager}}`. Run `{{runScriptCommand packageManager "deploy"}}` to deploy later changes.
42
+ After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
43
+ {{/if}}
@@ -0,0 +1,5 @@
1
+ {{#if (eq packageManager "deno")}}
2
+ {
3
+ "nodeModulesDir": "auto"
4
+ }
5
+ {{/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": "tsc && esbuild dist/main.js --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __composerCreateRequire } from 'node:module'; const require = __composerCreateRequire(import.meta.url);\" --external:\"@nestjs/microservices/*\" --external:\"@nestjs/websockets/*\" --external:@nestjs/microservices --external:class-transformer --external:class-validator --outfile=dist-composer/server.mjs",
11
- "start": "node dist-composer/server.mjs"
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()
@@ -0,0 +1,10 @@
1
+ import { defineComputeConfig } from "@prisma/compute-sdk/config";
2
+
3
+ export default defineComputeConfig({
4
+ app: {
5
+ name: "{{projectName}}",
6
+ framework: "nestjs",
7
+ httpPort: 3000,
8
+ env: ".env",
9
+ },
10
+ });
@@ -5,12 +5,7 @@ export class AppController {
5
5
  @Get()
6
6
  getRoot() {
7
7
  return {
8
- name: "{{projectName}}",
9
- framework: "NestJS",
10
- status: "ready",
11
- endpoints: {
12
- users: "/users",
13
- },
8
+ message: "hello from create-prisma + nest",
14
9
  };
15
10
  }
16
11
  }
@@ -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: [AppController, UsersController],
11
- providers: [PrismaService, UsersService],
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 service from "../service";
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
- function getComposerDatabaseUrl(): string | undefined {
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,6 @@
7
7
  "strict": true,
8
8
  "esModuleInterop": true,
9
9
  "skipLibCheck": true,
10
- "types": ["node"],
11
10
  "forceConsistentCasingInFileNames": true,
12
11
  "emitDecoratorMetadata": true,
13
12
  "experimentalDecorators": true,
@@ -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
- - `{{runScriptCommand packageManager "deploy"}}` - build and deploy with Prisma Composer
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
- - `module.ts`
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 Composer
37
+ ## Prisma Compute
35
38
 
36
- The application topology is declared in `module.ts` and `service.ts`, with deploy configuration in `prisma-composer.config.ts`. {{#if composerPostgres}}Composer provisions Prisma Postgres and injects its connection into the service.{{else}}The database URL is bound as a secret service input from `.env`.{{/if}}
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
- If needed, sign in with `{{prismaAuthLoginCommand packageManager}}`. Run `{{runScriptCommand packageManager "deploy"}}` to deploy later changes.
41
+ After local changes, run `{{runScriptCommand packageManager "compute:deploy"}}` to redeploy.
42
+ {{/if}}
@@ -0,0 +1,12 @@
1
+ {{#if (eq packageManager "deno")}}
2
+ {
3
+ "nodeModulesDir": "auto",
4
+ "unstable": [
5
+ "bare-node-builtins",
6
+ "detect-cjs",
7
+ "node-globals",
8
+ "unsafe-proto",
9
+ "sloppy-imports"
10
+ ]
11
+ }
12
+ {{/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()
@@ -0,0 +1,9 @@
1
+ import { defineComputeConfig } from "@prisma/compute-sdk/config";
2
+
3
+ export default defineComputeConfig({
4
+ app: {
5
+ name: "{{projectName}}",
6
+ framework: "nextjs",
7
+ env: ".env",
8
+ },
9
+ });