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
package/README.md
CHANGED
|
@@ -8,12 +8,12 @@ Scaffold a new app with Prisma already wired up.
|
|
|
8
8
|
|
|
9
9
|
- creates a new app from a supported template
|
|
10
10
|
- adds Prisma 7 dependencies for your database
|
|
11
|
-
- scaffolds `prisma/schema.prisma`, `prisma/seed.ts`, `prisma.config.ts`, and
|
|
11
|
+
- scaffolds `prisma/schema.prisma`, `prisma/seed.ts`, `prisma.config.ts`, and Compute deploy defaults for Compute-ready templates
|
|
12
12
|
- writes a Prisma client singleton in the right place for the selected template
|
|
13
|
-
- adds `db:generate`, `db:migrate`,
|
|
14
|
-
- creates
|
|
15
|
-
-
|
|
16
|
-
- can deploy the finished app
|
|
13
|
+
- adds `db:generate`, `db:migrate`, and `db:seed` scripts
|
|
14
|
+
- creates or updates the template env file with `DATABASE_URL`
|
|
15
|
+
- can install dependencies and run `prisma generate` for you
|
|
16
|
+
- can deploy the finished app to Prisma Compute and return a live URL
|
|
17
17
|
|
|
18
18
|
## Quick Start
|
|
19
19
|
|
|
@@ -35,6 +35,10 @@ yarn dlx create-prisma@latest
|
|
|
35
35
|
bunx create-prisma@latest
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
```bash
|
|
39
|
+
deno run -A npm:create-prisma@latest
|
|
40
|
+
```
|
|
41
|
+
|
|
38
42
|
If you already have it available locally:
|
|
39
43
|
|
|
40
44
|
```bash
|
|
@@ -67,19 +71,19 @@ Create a monorepo with a shared Prisma package:
|
|
|
67
71
|
create-prisma --name my-monorepo --template turborepo --provider postgresql
|
|
68
72
|
```
|
|
69
73
|
|
|
70
|
-
Use Prisma Postgres auto-provisioning
|
|
74
|
+
Use Prisma Postgres auto-provisioning:
|
|
71
75
|
|
|
72
76
|
```bash
|
|
73
|
-
create-prisma --name my-app --template nest --provider postgresql
|
|
77
|
+
create-prisma --name my-app --template nest --provider postgresql --prisma-postgres
|
|
74
78
|
```
|
|
75
79
|
|
|
76
|
-
Deploy a supported app
|
|
80
|
+
Deploy a supported app to Prisma Compute:
|
|
77
81
|
|
|
78
82
|
```bash
|
|
79
83
|
create-prisma --name my-api --template hono --provider postgresql --deploy
|
|
80
84
|
```
|
|
81
85
|
|
|
82
|
-
PostgreSQL
|
|
86
|
+
With PostgreSQL and no `--database-url`, the Compute flow asks whether to use Prisma Postgres. If accepted, or if `--prisma-postgres` is passed, it creates a Prisma Compute project, creates a `main` Prisma Postgres database on the `main` branch, writes `DATABASE_URL` to the template env file, and deploys the app with the env file configured in `prisma.compute.ts`. Pass `--no-prisma-postgres` to deploy without provisioning a database.
|
|
83
87
|
|
|
84
88
|
## Supported Templates
|
|
85
89
|
|
|
@@ -93,13 +97,12 @@ PostgreSQL always includes Prisma Postgres in the Composer application graph. Th
|
|
|
93
97
|
- `tanstack-start`
|
|
94
98
|
- `turborepo`
|
|
95
99
|
|
|
96
|
-
Prisma
|
|
100
|
+
Prisma Compute deployment is currently supported for:
|
|
97
101
|
|
|
98
102
|
- `hono`
|
|
99
103
|
- `elysia`
|
|
100
104
|
- `nest`
|
|
101
105
|
- `next`
|
|
102
|
-
- `svelte`
|
|
103
106
|
- `astro`
|
|
104
107
|
- `nuxt`
|
|
105
108
|
- `tanstack-start`
|
|
@@ -119,8 +122,7 @@ Prisma Composer files are included by default, and deployment is supported for:
|
|
|
119
122
|
- `pnpm`
|
|
120
123
|
- `yarn`
|
|
121
124
|
- `bun`
|
|
122
|
-
|
|
123
|
-
Every package manager receives the same Composer-ready templates and deploy scripts.
|
|
125
|
+
- `deno`
|
|
124
126
|
|
|
125
127
|
## Useful Flags
|
|
126
128
|
|
|
@@ -128,9 +130,12 @@ Every package manager receives the same Composer-ready templates and deploy scri
|
|
|
128
130
|
- `--template` choose the template
|
|
129
131
|
- `--provider` choose the database provider
|
|
130
132
|
- `--package-manager` choose the package manager/runtime
|
|
131
|
-
- `--
|
|
133
|
+
- `--schema-preset empty|basic`
|
|
134
|
+
- `--deploy` deploy supported templates to Prisma Compute
|
|
132
135
|
- `--yes` accept defaults and skip prompts
|
|
133
136
|
- `--no-install` scaffold only
|
|
137
|
+
- `--no-generate` skip `prisma generate`
|
|
138
|
+
- `--prisma-postgres` provision Prisma Postgres for PostgreSQL
|
|
134
139
|
- `--skills --mcp --extension` enable optional add-ons
|
|
135
140
|
- `--force` allow scaffolding into a non-empty directory
|
|
136
141
|
- `--verbose` print full command output
|
|
@@ -144,10 +149,11 @@ Every package manager receives the same Composer-ready templates and deploy scri
|
|
|
144
149
|
- Prisma IDE extension install
|
|
145
150
|
|
|
146
151
|
These can be selected interactively or enabled with flags.
|
|
152
|
+
When Prisma Compute deploy is selected, the skills add-on recommends the `prisma-compute` skill too.
|
|
147
153
|
|
|
148
|
-
## Deploy
|
|
154
|
+
## Deploy to Prisma Compute
|
|
149
155
|
|
|
150
|
-
|
|
156
|
+
After scaffolding, `create-prisma` can deploy your app to [Prisma Compute](https://www.prisma.io/docs/compute), the serverless hosting for TypeScript apps that runs next to your Prisma Postgres database. It is offered for the templates the Prisma CLI can deploy today: `hono`, `elysia`, `nest`, `next`, `astro`, `nuxt`, `tanstack-start`, and `turborepo`.
|
|
151
157
|
|
|
152
158
|
Accept the deploy prompt when it appears, or pass the flag:
|
|
153
159
|
|
|
@@ -155,11 +161,11 @@ Accept the deploy prompt when it appears, or pass the flag:
|
|
|
155
161
|
create-prisma --name my-api --template hono --provider postgresql --deploy
|
|
156
162
|
```
|
|
157
163
|
|
|
158
|
-
|
|
164
|
+
The deploy step signs you in with the Prisma CLI if you are not signed in yet. With PostgreSQL and no `--database-url`, create-prisma asks whether to use Prisma Postgres. If accepted, or if `--prisma-postgres` is passed, setup creates a Prisma Compute project, creates a `main` Prisma Postgres database on the `main` branch, writes `DATABASE_URL` to the template env file, runs the requested Prisma setup, then deploys the app with the env file configured in `prisma.compute.ts`. Pass `--no-prisma-postgres` to deploy without provisioning a database.
|
|
159
165
|
|
|
160
|
-
A `
|
|
166
|
+
A `prisma.compute.ts` file is generated with the app framework, runtime port, target, and env-file defaults. When deployment is selected, a `compute:deploy` script is added to the generated project so you can redeploy app changes later. That script runs `@prisma/cli@latest app deploy` using `prisma.compute.ts`; it does not create a new project, create a new database, run migrations, or seed data.
|
|
161
167
|
|
|
162
|
-
The
|
|
168
|
+
The deploy prompt is skipped in `--yes` runs unless you pass `--deploy`. Browser sign-in may still need a person at the keyboard if no Prisma CLI session exists.
|
|
163
169
|
|
|
164
170
|
## Local Development
|
|
165
171
|
|
package/dist/cli.mjs
CHANGED
|
@@ -1,36 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
//#region src/utils/node-version.ts
|
|
4
|
-
const supportedNodeVersionRange = {
|
|
5
|
-
"bun": ">=1.3.0",
|
|
6
|
-
"node": ">=24.0.0"
|
|
7
|
-
}.node;
|
|
8
|
-
function getMinimumNodeMajor() {
|
|
9
|
-
const match = /^>=(\d+)(?:\.\d+){0,2}$/.exec(supportedNodeVersionRange);
|
|
10
|
-
if (!match) throw new Error(`Unsupported Node.js engine range: ${supportedNodeVersionRange}`);
|
|
11
|
-
return Number(match[1]);
|
|
12
|
-
}
|
|
13
|
-
function getNodeVersionCompatibilityError(nodeVersion) {
|
|
14
|
-
const majorMatch = /^v?(\d+)(?:\.|$)/.exec(nodeVersion);
|
|
15
|
-
const currentMajor = majorMatch ? Number(majorMatch[1]) : NaN;
|
|
16
|
-
const minimumMajor = getMinimumNodeMajor();
|
|
17
|
-
if (Number.isFinite(currentMajor) && currentMajor >= minimumMajor) return;
|
|
18
|
-
return [
|
|
19
|
-
`Node.js ${nodeVersion} is unsupported.`,
|
|
20
|
-
"",
|
|
21
|
-
`create-prisma requires Node.js ${minimumMajor} LTS or newer.`,
|
|
22
|
-
"Update Node.js, then run create-prisma again."
|
|
23
|
-
].join("\n");
|
|
24
|
-
}
|
|
25
|
-
//#endregion
|
|
2
|
+
import { n as createCreatePrismaCli } from "./src-B3hRLZ0U.mjs";
|
|
26
3
|
//#region src/cli.ts
|
|
27
|
-
|
|
28
|
-
if (nodeVersionError) {
|
|
29
|
-
process.stderr.write(`${nodeVersionError}\n`);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
const { createCreatePrismaCli } = await import("./index.mjs");
|
|
33
|
-
await createCreatePrismaCli().run({ formatError: (error) => error instanceof Error ? error.message : String(error) });
|
|
34
|
-
if (process.exitCode && process.exitCode !== 0) process.exit(process.exitCode);
|
|
4
|
+
createCreatePrismaCli().run();
|
|
35
5
|
//#endregion
|
|
36
6
|
export {};
|
package/dist/index.d.mts
CHANGED
|
@@ -185,6 +185,11 @@ declare const PackageManagerSchema: z.ZodEnum<{
|
|
|
185
185
|
pnpm: "pnpm";
|
|
186
186
|
yarn: "yarn";
|
|
187
187
|
bun: "bun";
|
|
188
|
+
deno: "deno";
|
|
189
|
+
}>;
|
|
190
|
+
declare const SchemaPresetSchema: z.ZodEnum<{
|
|
191
|
+
empty: "empty";
|
|
192
|
+
basic: "basic";
|
|
188
193
|
}>;
|
|
189
194
|
declare const CreateTemplateSchema: z.ZodEnum<{
|
|
190
195
|
hono: "hono";
|
|
@@ -197,6 +202,7 @@ declare const CreateTemplateSchema: z.ZodEnum<{
|
|
|
197
202
|
"tanstack-start": "tanstack-start";
|
|
198
203
|
turborepo: "turborepo";
|
|
199
204
|
}>;
|
|
205
|
+
declare const DatabaseUrlSchema: z.ZodString;
|
|
200
206
|
declare const CreateCommandInputSchema: z.ZodObject<{
|
|
201
207
|
yes: z.ZodOptional<z.ZodBoolean>;
|
|
202
208
|
verbose: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -212,8 +218,17 @@ declare const CreateCommandInputSchema: z.ZodObject<{
|
|
|
212
218
|
pnpm: "pnpm";
|
|
213
219
|
yarn: "yarn";
|
|
214
220
|
bun: "bun";
|
|
221
|
+
deno: "deno";
|
|
215
222
|
}>>;
|
|
223
|
+
prismaPostgres: z.ZodOptional<z.ZodBoolean>;
|
|
224
|
+
databaseUrl: z.ZodOptional<z.ZodString>;
|
|
216
225
|
install: z.ZodOptional<z.ZodBoolean>;
|
|
226
|
+
generate: z.ZodOptional<z.ZodBoolean>;
|
|
227
|
+
migrateAndSeed: z.ZodOptional<z.ZodBoolean>;
|
|
228
|
+
schemaPreset: z.ZodOptional<z.ZodEnum<{
|
|
229
|
+
empty: "empty";
|
|
230
|
+
basic: "basic";
|
|
231
|
+
}>>;
|
|
217
232
|
name: z.ZodOptional<z.ZodString>;
|
|
218
233
|
template: z.ZodOptional<z.ZodEnum<{
|
|
219
234
|
hono: "hono";
|
|
@@ -251,8 +266,17 @@ declare const router: {
|
|
|
251
266
|
pnpm: "pnpm";
|
|
252
267
|
yarn: "yarn";
|
|
253
268
|
bun: "bun";
|
|
269
|
+
deno: "deno";
|
|
254
270
|
}>>;
|
|
271
|
+
prismaPostgres: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
272
|
+
databaseUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
255
273
|
install: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
274
|
+
generate: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
275
|
+
migrateAndSeed: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
276
|
+
schemaPreset: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
277
|
+
empty: "empty";
|
|
278
|
+
basic: "basic";
|
|
279
|
+
}>>;
|
|
256
280
|
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
257
281
|
template: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
258
282
|
hono: "hono";
|
|
@@ -275,4 +299,4 @@ declare const router: {
|
|
|
275
299
|
declare function createCreatePrismaCli(): import("trpc-cli").TrpcCli;
|
|
276
300
|
declare function create(input?: CreateCommandInput): Promise<void>;
|
|
277
301
|
//#endregion
|
|
278
|
-
export { type CreateCommandInput, CreateCommandInputSchema, CreateTemplateSchema, DatabaseProviderSchema, PackageManagerSchema, create, createCreatePrismaCli, router };
|
|
302
|
+
export { type CreateCommandInput, CreateCommandInputSchema, CreateTemplateSchema, DatabaseProviderSchema, DatabaseUrlSchema, PackageManagerSchema, SchemaPresetSchema, create, createCreatePrismaCli, router };
|