create-prisma 0.1.4 → 0.2.0-pr.17.22.1

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 (113) hide show
  1. package/README.md +99 -23
  2. package/dist/cli.mjs +1 -1
  3. package/dist/create-CyMasmHY.mjs +1934 -0
  4. package/dist/index.d.mts +34 -57
  5. package/dist/index.mjs +14 -22
  6. package/package.json +27 -20
  7. package/templates/create/astro/.yarnrc.yml.hbs +3 -0
  8. package/templates/create/astro/README.md.hbs +35 -0
  9. package/templates/create/astro/astro.config.mjs +5 -0
  10. package/templates/create/astro/deno.json.hbs +5 -0
  11. package/templates/create/astro/package.json.hbs +22 -0
  12. package/templates/create/astro/prisma/schema.prisma.hbs +21 -0
  13. package/templates/create/astro/prisma/seed.ts.hbs +38 -0
  14. package/templates/create/astro/prisma.config.ts.hbs +13 -0
  15. package/templates/create/astro/public/favicon.svg +14 -0
  16. package/templates/create/astro/src/env.d.ts +9 -0
  17. package/templates/create/astro/src/lib/prisma.ts.hbs +53 -0
  18. package/templates/create/astro/src/pages/api/users.ts.hbs +42 -0
  19. package/templates/create/astro/src/pages/index.astro.hbs +236 -0
  20. package/templates/create/astro/tsconfig.json +5 -0
  21. package/templates/create/hono/.yarnrc.yml.hbs +3 -0
  22. package/templates/create/hono/README.md.hbs +13 -48
  23. package/templates/create/hono/deno.json.hbs +5 -0
  24. package/templates/create/hono/package.json.hbs +3 -0
  25. package/templates/create/hono/prisma/schema.prisma.hbs +21 -0
  26. package/templates/create/hono/prisma/seed.ts.hbs +38 -0
  27. package/templates/create/hono/prisma.config.ts.hbs +13 -0
  28. package/templates/create/hono/src/index.ts.hbs +1 -1
  29. package/templates/{init/prisma/index.ts.hbs → create/hono/src/lib/prisma.ts.hbs} +14 -13
  30. package/templates/create/hono/tsconfig.json +1 -2
  31. package/templates/create/next/.yarnrc.yml.hbs +3 -0
  32. package/templates/create/next/README.md.hbs +8 -23
  33. package/templates/create/next/deno.json.hbs +12 -0
  34. package/templates/create/next/eslint.config.mjs +1 -6
  35. package/templates/create/next/package.json.hbs +4 -0
  36. package/templates/create/next/prisma/schema.prisma.hbs +21 -0
  37. package/templates/create/next/prisma/seed.ts.hbs +38 -0
  38. package/templates/create/next/prisma.config.ts.hbs +13 -0
  39. package/templates/create/next/src/app/globals.css +130 -0
  40. package/templates/create/next/src/app/page.tsx.hbs +104 -0
  41. package/templates/create/next/src/lib/prisma.ts.hbs +53 -0
  42. package/templates/create/nuxt/.yarnrc.yml.hbs +3 -0
  43. package/templates/create/nuxt/README.md.hbs +32 -0
  44. package/templates/create/nuxt/app/app.vue +4 -0
  45. package/templates/create/nuxt/app/pages/index.vue.hbs +230 -0
  46. package/templates/create/nuxt/deno.json.hbs +5 -0
  47. package/templates/create/nuxt/nuxt.config.ts +5 -0
  48. package/templates/create/nuxt/package.json.hbs +27 -0
  49. package/templates/create/nuxt/prisma/schema.prisma.hbs +21 -0
  50. package/templates/create/nuxt/prisma/seed.ts.hbs +38 -0
  51. package/templates/create/nuxt/prisma.config.ts.hbs +13 -0
  52. package/templates/create/nuxt/public/robots.txt +2 -0
  53. package/templates/create/nuxt/server/api/users.get.ts.hbs +36 -0
  54. package/templates/create/nuxt/server/utils/prisma.ts.hbs +53 -0
  55. package/templates/create/nuxt/tsconfig.json +17 -0
  56. package/templates/create/svelte/.vscode/extensions.json +3 -0
  57. package/templates/create/svelte/.yarnrc.yml.hbs +3 -0
  58. package/templates/create/svelte/README.md.hbs +34 -0
  59. package/templates/create/svelte/deno.json.hbs +5 -0
  60. package/templates/create/svelte/package.json.hbs +28 -0
  61. package/templates/create/svelte/prisma/schema.prisma.hbs +21 -0
  62. package/templates/create/svelte/prisma/seed.ts.hbs +87 -0
  63. package/templates/create/svelte/prisma.config.ts.hbs +13 -0
  64. package/templates/create/svelte/src/app.d.ts +13 -0
  65. package/templates/create/svelte/src/app.html +11 -0
  66. package/templates/create/svelte/src/lib/assets/favicon.svg +1 -0
  67. package/templates/create/svelte/src/lib/index.ts +1 -0
  68. package/templates/create/svelte/src/lib/server/prisma.ts.hbs +53 -0
  69. package/templates/create/svelte/src/routes/+layout.svelte +11 -0
  70. package/templates/create/svelte/src/routes/+page.server.ts.hbs +28 -0
  71. package/templates/create/svelte/src/routes/+page.svelte.hbs +350 -0
  72. package/templates/create/svelte/static/robots.txt +3 -0
  73. package/templates/create/svelte/svelte.config.js +13 -0
  74. package/templates/create/svelte/tsconfig.json +20 -0
  75. package/templates/create/svelte/vite.config.ts +6 -0
  76. package/templates/create/tanstack-start/.yarnrc.yml.hbs +4 -0
  77. package/templates/create/tanstack-start/README.md.hbs +31 -0
  78. package/templates/create/tanstack-start/deno.json.hbs +13 -0
  79. package/templates/create/tanstack-start/package.json.hbs +33 -0
  80. package/templates/create/tanstack-start/prisma/schema.prisma.hbs +22 -0
  81. package/templates/create/tanstack-start/prisma/seed.ts.hbs +37 -0
  82. package/templates/create/tanstack-start/prisma.config.ts.hbs +13 -0
  83. package/templates/create/tanstack-start/src/lib/prisma.server.ts.hbs +53 -0
  84. package/templates/create/tanstack-start/src/routeTree.gen.ts +74 -0
  85. package/templates/create/tanstack-start/src/router.tsx +18 -0
  86. package/templates/create/tanstack-start/src/routes/__root.tsx.hbs +71 -0
  87. package/templates/create/tanstack-start/src/routes/index.tsx.hbs +145 -0
  88. package/templates/create/tanstack-start/src/styles.css +187 -0
  89. package/templates/create/tanstack-start/tsconfig.json +22 -0
  90. package/templates/create/tanstack-start/vite.config.ts +8 -0
  91. package/templates/create/turborepo/.yarnrc.yml.hbs +3 -0
  92. package/templates/create/turborepo/README.md.hbs +29 -0
  93. package/templates/create/turborepo/apps/api/package.json.hbs +21 -0
  94. package/templates/create/turborepo/apps/api/src/index.ts.hbs +45 -0
  95. package/templates/create/turborepo/apps/api/tsconfig.json +15 -0
  96. package/templates/create/turborepo/deno.json.hbs +5 -0
  97. package/templates/create/turborepo/package.json.hbs +24 -0
  98. package/templates/create/turborepo/packages/db/package.json.hbs +17 -0
  99. package/templates/create/turborepo/packages/db/prisma/schema.prisma.hbs +21 -0
  100. package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +38 -0
  101. package/templates/create/turborepo/packages/db/prisma.config.ts.hbs +13 -0
  102. package/templates/create/turborepo/packages/db/src/client.ts.hbs +58 -0
  103. package/templates/create/turborepo/packages/db/src/index.ts +2 -0
  104. package/templates/create/turborepo/packages/db/tsconfig.json +15 -0
  105. package/templates/create/turborepo/turbo.json +28 -0
  106. package/templates/init/prisma/schema.prisma.hbs +4 -1
  107. package/templates/init/prisma/seed.ts.hbs +38 -0
  108. package/templates/init/prisma-instance.ts.hbs +53 -0
  109. package/templates/init/prisma.config.ts.hbs +1 -0
  110. package/dist/create-Dz9GFGFQ.mjs +0 -1090
  111. package/templates/create/next/app/globals.css +0 -47
  112. package/templates/create/next/app/page.tsx.hbs +0 -46
  113. /package/templates/create/next/{app → src/app}/layout.tsx.hbs +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-prisma
2
2
 
3
- A modern Prisma 7 CLI with first-party project templates and great init DX.
3
+ A modern Prisma 7 CLI with first-party project templates and a smooth create flow.
4
4
 
5
5
  ## Stack
6
6
 
@@ -20,97 +20,170 @@ Run directly with Bun:
20
20
  bunx create-prisma@latest
21
21
  ```
22
22
 
23
- Create a new project (default command):
23
+ Run directly with Yarn:
24
+
25
+ ```bash
26
+ yarn dlx create-prisma@latest
27
+ ```
28
+
29
+ Run directly with Deno:
30
+
31
+ ```bash
32
+ deno run -A npm:create-prisma@latest
33
+ ```
34
+
35
+ Create a new project in an empty directory:
36
+
37
+ ```bash
38
+ create-prisma
39
+ ```
40
+
41
+ Initialize Prisma in the current project:
24
42
 
25
43
  ```bash
26
44
  create-prisma
27
45
  ```
28
46
 
47
+ Create a new project explicitly:
48
+
49
+ ```bash
50
+ create-prisma create
51
+ ```
52
+
29
53
  Create a Hono project non-interactively:
30
54
 
31
55
  ```bash
32
- create-prisma --name my-api --template hono --provider postgresql
56
+ create-prisma create --name my-api --template hono --provider postgresql
33
57
  ```
34
58
 
35
59
  Create a Next.js project non-interactively:
36
60
 
37
61
  ```bash
38
- create-prisma --name my-web --template next --provider postgresql
62
+ create-prisma create --name my-web --template next --provider postgresql
39
63
  ```
40
64
 
41
- Initialize Prisma explicitly in the current project:
65
+ Create a SvelteKit project non-interactively:
42
66
 
43
67
  ```bash
44
- create-prisma init
68
+ create-prisma create --name my-app --template svelte --provider postgresql
69
+ ```
70
+
71
+ Create an Astro project non-interactively:
72
+
73
+ ```bash
74
+ create-prisma create --name my-site --template astro --provider postgresql
75
+ ```
76
+
77
+ Create a Nuxt project non-interactively:
78
+
79
+ ```bash
80
+ create-prisma create --name my-nuxt-app --template nuxt --provider postgresql
81
+ ```
82
+
83
+ Create a TanStack Start project non-interactively:
84
+
85
+ ```bash
86
+ create-prisma create --name my-start-app --template tanstack-start --provider postgresql
87
+ ```
88
+
89
+ Create a Turborepo project with a `packages/db` Prisma package:
90
+
91
+ ```bash
92
+ create-prisma create --name my-monorepo --template turborepo --provider postgresql
45
93
  ```
46
94
 
47
95
  Set package manager non-interactively:
48
96
 
49
97
  ```bash
50
- create-prisma init --package-manager pnpm --install
98
+ create-prisma create --name my-app --template hono --package-manager pnpm --install
51
99
  ```
52
100
 
53
101
  Skip Prisma Client generation:
54
102
 
55
103
  ```bash
56
- create-prisma init --no-generate
104
+ create-prisma create --name my-app --template hono --no-generate
57
105
  ```
58
106
 
59
107
  Show verbose command output:
60
108
 
61
109
  ```bash
62
- create-prisma init --verbose
110
+ create-prisma create --name my-app --template hono --verbose
63
111
  ```
64
112
 
65
- Run fully non-interactive with defaults:
113
+ Scaffold a new project non-interactively with defaults:
66
114
 
67
115
  ```bash
68
- create-prisma init --yes
116
+ create-prisma create --yes
69
117
  ```
70
118
 
71
119
  Use Prisma Postgres auto-provisioning for PostgreSQL:
72
120
 
73
121
  ```bash
74
- create-prisma init --provider postgresql --prisma-postgres
122
+ create-prisma create --name my-app --template hono --provider postgresql --prisma-postgres
123
+ ```
124
+
125
+ Enable add-ons with individual flags:
126
+
127
+ ```bash
128
+ create-prisma create --name my-app --template next --skills --mcp --extension
75
129
  ```
76
130
 
77
131
  Or run locally:
78
132
 
79
133
  ```bash
80
134
  bun install
135
+ bun run check
81
136
  bun run build
82
137
  bun run start
83
138
  ```
84
139
 
85
- The CLI updates `package.json` with Prisma dependencies, optionally runs dependency installation with your selected package manager, and scaffolds Prisma 7 setup files from Handlebars templates:
140
+ The CLI updates `package.json` with Prisma dependencies, optionally runs dependency installation with your selected package manager, and scaffolds Prisma 7 setup files directly inside each app template:
141
+
86
142
  - `prisma/schema.prisma`
87
- - `prisma/index.ts`
143
+ - `prisma/seed.ts`
144
+ - `src/lib/prisma.ts`, `src/lib/prisma.server.ts`, `src/lib/server/prisma.ts`, `server/utils/prisma.ts`, or `packages/db/src/client.ts`
88
145
  - `prisma.config.ts`
146
+ - `src/generated/prisma` or `server/generated/prisma` (Nuxt) or `packages/db/src/generated/prisma` (Turborepo)
89
147
  - `.env` (creates or updates `DATABASE_URL`, and writes `CLAIM_URL` when Prisma Postgres is provisioned)
90
148
  - runs `prisma generate` automatically after scaffolding
91
149
 
150
+ The create flow is smart:
151
+
152
+ - if the current directory contains a `package.json` and you do not pass `--name`, `--template`, `--force`, `--skills`, `--mcp`, or `--extension`, it initializes Prisma in the current project
153
+ - otherwise it scaffolds a new project
154
+ - passing `create` explicitly, or passing `--name` or `--template`, forces the project scaffolding flow
155
+
92
156
  `create` is the default command and currently supports:
93
- - templates: `hono`, `next`
157
+
158
+ - templates: `hono`, `next`, `svelte`, `astro`, `nuxt`, `tanstack-start`, `turborepo`
94
159
  - project name via `--name`
95
160
  - schema presets via `--schema-preset empty|basic` (default: `basic`)
96
161
 
97
- `init` configures Prisma in the current project and supports schema presets too (default: `empty`).
98
- Both commands prompt for database choice, package manager, and whether to install dependencies now.
162
+ When initializing an existing project, it adds the standard Prisma setup from the dedicated init template, auto-detects the existing package manager, and asks where to place the Prisma instance file, defaulting to `src/lib/prisma.ts`.
163
+
164
+ `create` prompts for database choice, package manager, and whether to install dependencies now.
99
165
  Supported providers in this flow: `postgresql`, `mysql`, `sqlite`, `sqlserver`, `cockroachdb`.
100
- Supported package managers: `bun`, `pnpm`, `npm`.
166
+ Supported package managers: `bun`, `deno`, `npm`, `pnpm`, `yarn`.
101
167
  Package manager prompt auto-detects from `package.json`/lockfiles/user agent and uses that as the initial selection.
102
168
  `--yes` accepts defaults (`postgresql`, detected package manager, Prisma Postgres enabled for PostgreSQL, install enabled) and skips prompts.
103
169
  `--no-generate` skips automatic `prisma generate`.
104
170
  `--verbose` prints full install/generate command output; default mode keeps output concise.
105
- `--force` (create only) allows scaffolding in a non-empty target directory.
106
- If Prisma files already exist, `init` asks whether to keep existing files or overwrite them.
107
- When `postgresql` is selected, `init` can provision Prisma Postgres via `create-db --json` and auto-fill `DATABASE_URL`.
171
+ `--force` allows scaffolding in a non-empty target directory when creating a new project.
172
+ Add-ons can be selected interactively or through flags: `--skills`, `--mcp`, `--extension`.
173
+ When add-ons are enabled, `create` prompts for the relevant agent and IDE selections, then installs curated Prisma skills (`skills@latest`), configures Prisma MCP (`add-mcp@latest`), and installs the Prisma IDE extension for supported IDE CLIs.
174
+ When `postgresql` is selected, `create` can provision Prisma Postgres via `create-db --json` and auto-fill `DATABASE_URL`.
175
+ Generated projects also include `db:seed` and configure Prisma's `migrations.seed` hook to run the package-manager-appropriate Prisma seed command.
108
176
 
109
177
  ## Scripts
110
178
 
111
179
  - `bun run build` - Build to `dist/`
180
+ - `bun run check` - Run formatting and lint checks
112
181
  - `bun run dev` - Watch mode build
113
182
  - `bun run start` - Run built CLI
183
+ - `bun run lint` - Run `oxlint` with warnings treated as failures
184
+ - `bun run lint:fix` - Apply safe `oxlint` fixes
185
+ - `bun run format` - Format the repo with `oxfmt`
186
+ - `bun run format:check` - Check formatting with `oxfmt`
114
187
  - `bun run typecheck` - TypeScript checks only
115
188
  - `bun run bump` - Create a release PR (interactive semver bump)
116
189
  - `bun run bump -- patch|minor|major|x.y.z` - Non-interactive bump
@@ -124,5 +197,8 @@ This repo uses a manual, script-driven release flow:
124
197
  1. Run `bun run bump` (or pass `patch|minor|major|x.y.z`).
125
198
  2. The script creates a `release/vX.Y.Z` branch and a PR with commit `chore(release): X.Y.Z`.
126
199
  3. Merge that PR to `main` with squash (keep commit title `chore(release): X.Y.Z`).
127
- 4. GitHub Actions creates the `vX.Y.Z` tag and GitHub Release notes via `changelogithub`.
128
- 5. GitHub Actions publishes only for `chore(release):` commits, using npm trusted publishing (OIDC, no npm token secret).
200
+ 4. GitHub Actions runs `bun run check`, `bun run typecheck`, and `bun run build` before publishing.
201
+ 5. GitHub Actions creates the `vX.Y.Z` tag and GitHub Release notes via `changelogithub`.
202
+ 6. GitHub Actions publishes only for `chore(release):` commits, using npm trusted publishing (OIDC, no npm token secret).
203
+
204
+ Every PR from a branch in this repository also publishes a preview package to npm using the dist-tag `pr<PR_NUMBER>`, so PR 3 is installable as `create-prisma@pr3`.
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./create-Dz9GFGFQ.mjs";
2
+ import "./create-CyMasmHY.mjs";
3
3
  import { createCreatePrismaCli } from "./index.mjs";
4
4
 
5
5
  //#region src/cli.ts