create-prisma 0.4.2-pr.53.197.1 → 0.4.2-pr.53.199.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.
- package/dist/cli.mjs +1 -1
- package/dist/{create-BPGG92im.mjs → create-emt40To0.mjs} +23 -69
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/templates/create/_shared/README.md.hbs +1 -1
- package/templates/create/_shared/pnpm-workspace.yaml.hbs +0 -1
- package/templates/create/_shared/prisma-next.config.ts.hbs +0 -1
- package/templates/create/_shared/prisma.config.ts.hbs +2 -2
- package/templates/create/_shared/src/prisma/seed.ts.hbs +32 -15
- package/templates/create/_shared/src/prisma/users.ts.hbs +2 -4
- package/templates/create/elysia/src/index.ts.hbs +0 -3
- package/templates/create/hono/src/index.ts.hbs +0 -3
- package/templates/create/minimal/src/index.ts.hbs +0 -2
- package/templates/create/nest/src/main.ts.hbs +0 -3
- package/templates/create/_shared/src/prisma/starter-data.ts.hbs +0 -36
package/dist/cli.mjs
CHANGED
|
@@ -40,7 +40,7 @@ async function getAnonymousId() {
|
|
|
40
40
|
}
|
|
41
41
|
function getCommonProperties() {
|
|
42
42
|
return {
|
|
43
|
-
"cli-version": "0.4.2-pr.53.
|
|
43
|
+
"cli-version": "0.4.2-pr.53.199.1",
|
|
44
44
|
"node-version": process.version,
|
|
45
45
|
platform: process.platform,
|
|
46
46
|
arch: process.arch
|
|
@@ -301,39 +301,6 @@ function getPackageExecutionCommand(packageManager, commandArgs) {
|
|
|
301
301
|
const execution = getPackageExecutionArgs(packageManager, commandArgs);
|
|
302
302
|
return [execution.command, ...execution.args].join(" ");
|
|
303
303
|
}
|
|
304
|
-
function getLocalPackageBinaryArgs(packageManager, binaryName, binaryArgs) {
|
|
305
|
-
switch (packageManager) {
|
|
306
|
-
case "pnpm": return {
|
|
307
|
-
command: "pnpm",
|
|
308
|
-
args: [
|
|
309
|
-
"exec",
|
|
310
|
-
binaryName,
|
|
311
|
-
...binaryArgs
|
|
312
|
-
]
|
|
313
|
-
};
|
|
314
|
-
case "yarn": return {
|
|
315
|
-
command: "yarn",
|
|
316
|
-
args: [binaryName, ...binaryArgs]
|
|
317
|
-
};
|
|
318
|
-
case "bun": return {
|
|
319
|
-
command: "bun",
|
|
320
|
-
args: [binaryName, ...binaryArgs]
|
|
321
|
-
};
|
|
322
|
-
default: return {
|
|
323
|
-
command: "npm",
|
|
324
|
-
args: [
|
|
325
|
-
"exec",
|
|
326
|
-
binaryName,
|
|
327
|
-
"--",
|
|
328
|
-
...binaryArgs
|
|
329
|
-
]
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function getLocalPackageBinaryCommand(packageManager, binaryName, binaryArgs) {
|
|
334
|
-
const execution = getLocalPackageBinaryArgs(packageManager, binaryName, binaryArgs);
|
|
335
|
-
return [execution.command, ...execution.args].join(" ");
|
|
336
|
-
}
|
|
337
304
|
function getRunScriptArgs(packageManager, scriptName) {
|
|
338
305
|
switch (packageManager) {
|
|
339
306
|
case "bun": return {
|
|
@@ -355,21 +322,11 @@ function getRunScriptArgs(packageManager, scriptName) {
|
|
|
355
322
|
}
|
|
356
323
|
}
|
|
357
324
|
|
|
358
|
-
//#endregion
|
|
359
|
-
//#region src/utils/runtime.ts
|
|
360
|
-
function usesNodeStyleRuntime(packageManager) {
|
|
361
|
-
return packageManager !== void 0 && packageManager !== "bun";
|
|
362
|
-
}
|
|
363
|
-
function requiresDotenvConfigImport(packageManager) {
|
|
364
|
-
return usesNodeStyleRuntime(packageManager);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
325
|
//#endregion
|
|
368
326
|
//#region src/templates/shared.ts
|
|
369
327
|
Handlebars.registerHelper("eq", (left, right) => left === right);
|
|
370
328
|
Handlebars.registerHelper("runScriptCommand", (packageManager, scriptName) => packageManager ? getRunScriptCommand(packageManager, scriptName) : "");
|
|
371
329
|
Handlebars.registerHelper("packageManagerManifestValue", (packageManager) => getPackageManagerManifestValue(packageManager) ?? "");
|
|
372
|
-
Handlebars.registerHelper("requiresDotenvConfigImport", (packageManager) => requiresDotenvConfigImport(packageManager));
|
|
373
330
|
Handlebars.registerHelper("runtimeScript", (packageManager, kind, sourceEntrypoint, builtEntrypoint, _options) => {
|
|
374
331
|
if (!packageManager) return "";
|
|
375
332
|
return getRuntimeScriptCommand(packageManager, kind, {
|
|
@@ -471,27 +428,24 @@ async function scaffoldCreateFrameworkTemplate(opts) {
|
|
|
471
428
|
const dependencyVersionMap = {
|
|
472
429
|
"@astrojs/node": "^10.0.2",
|
|
473
430
|
"@elysiajs/node": "^1.4.5",
|
|
474
|
-
"@prisma/cli": "
|
|
475
|
-
"@prisma/
|
|
476
|
-
"@prisma/composer": "0.
|
|
477
|
-
"@prisma/
|
|
478
|
-
"@prisma/orm-
|
|
479
|
-
"@prisma/orm-postgres": "8.0.0-rc.1",
|
|
431
|
+
"@prisma/cli-engine": "0.2.0",
|
|
432
|
+
"@prisma/composer": "0.8.0",
|
|
433
|
+
"@prisma/composer-prisma-cloud": "0.8.0",
|
|
434
|
+
"@prisma/orm-mongo": "8.0.0-rc.3",
|
|
435
|
+
"@prisma/orm-postgres": "8.0.0-rc.3",
|
|
480
436
|
"@sveltejs/adapter-node": "^5.3.2",
|
|
481
437
|
"@types/node": "^25.6.2",
|
|
482
438
|
alchemy: "2.0.0-beta.67",
|
|
483
439
|
arktype: "^2.2.3",
|
|
484
|
-
dotenv: "^17.4.2",
|
|
485
440
|
esbuild: "^0.28.1",
|
|
486
441
|
effect: "4.0.0-beta.103",
|
|
487
442
|
mongodb: "^7.1.0",
|
|
488
443
|
"mongodb-memory-server": "^11.1.0",
|
|
489
444
|
nitro: "^3.0.260610-beta",
|
|
490
|
-
"prisma-next": "8.0.0-rc.1",
|
|
491
445
|
tsx: "^4.21.0",
|
|
492
446
|
typescript: "^5.9.3"
|
|
493
447
|
};
|
|
494
|
-
const PRISMA_PLATFORM_CLI_PACKAGE =
|
|
448
|
+
const PRISMA_PLATFORM_CLI_PACKAGE = "prisma@next";
|
|
495
449
|
function getDependencyVersion(packageName) {
|
|
496
450
|
return dependencyVersionMap[packageName];
|
|
497
451
|
}
|
|
@@ -533,17 +487,17 @@ function getDbPackages(provider) {
|
|
|
533
487
|
|
|
534
488
|
//#endregion
|
|
535
489
|
//#region src/tasks/install.ts
|
|
536
|
-
function
|
|
490
|
+
function getPrismaScriptMap(packageManager) {
|
|
491
|
+
const prismaCommand = (...args) => getPackageExecutionCommand(packageManager, [PRISMA_PLATFORM_CLI_PACKAGE, ...args]);
|
|
537
492
|
return {
|
|
538
|
-
"contract:emit": "
|
|
539
|
-
"db:init": "
|
|
540
|
-
"db:update": "
|
|
541
|
-
"db:verify": "
|
|
542
|
-
"
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
"migration:
|
|
546
|
-
"migration:show": "prisma-next migration show"
|
|
493
|
+
"contract:emit": prismaCommand("contract", "emit"),
|
|
494
|
+
"db:init": prismaCommand("db", "init"),
|
|
495
|
+
"db:update": prismaCommand("db", "update"),
|
|
496
|
+
"db:verify": prismaCommand("db", "verify"),
|
|
497
|
+
"migration:plan": prismaCommand("migration", "plan"),
|
|
498
|
+
migrate: prismaCommand("migrate"),
|
|
499
|
+
"migration:status": prismaCommand("migration", "status"),
|
|
500
|
+
"migration:show": prismaCommand("migration", "show")
|
|
547
501
|
};
|
|
548
502
|
}
|
|
549
503
|
function getComposerScriptMap(packageManager) {
|
|
@@ -597,12 +551,12 @@ async function addPackageDependency(opts) {
|
|
|
597
551
|
await fs.writeJson(pkgJsonPath, pkgJson, { spaces: 2 });
|
|
598
552
|
}
|
|
599
553
|
async function writePrismaDependencies(provider, packageManager, _authoring, projectDir = process.cwd()) {
|
|
600
|
-
const dependencies = [getDbPackages(provider)
|
|
554
|
+
const dependencies = [getDbPackages(provider)];
|
|
601
555
|
if (provider === "mongo") dependencies.push("arktype", "mongodb");
|
|
602
556
|
await addPackageDependency({
|
|
603
557
|
dependencies,
|
|
604
|
-
devDependencies: ["prisma-
|
|
605
|
-
scripts:
|
|
558
|
+
devDependencies: ["@prisma/cli-engine", "@types/node"],
|
|
559
|
+
scripts: getPrismaScriptMap(packageManager),
|
|
606
560
|
projectDir
|
|
607
561
|
});
|
|
608
562
|
}
|
|
@@ -897,9 +851,9 @@ async function ensureComposerTypeScriptOptions(projectDir) {
|
|
|
897
851
|
await fs.writeFile(tsconfigPath, updated, "utf8");
|
|
898
852
|
}
|
|
899
853
|
async function emitContract(context, projectDir) {
|
|
900
|
-
const
|
|
901
|
-
if (context.verbose) log.step(
|
|
902
|
-
await execa(
|
|
854
|
+
const invocation = getPrismaCliInvocation(context.packageManager, ["contract", "emit"]);
|
|
855
|
+
if (context.verbose) log.step([invocation.command, ...invocation.args].join(" "));
|
|
856
|
+
await execa(invocation.command, invocation.args, {
|
|
903
857
|
cwd: projectDir,
|
|
904
858
|
stdio: context.verbose ? "inherit" : "pipe"
|
|
905
859
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as DatabaseProviderSchema, i as CreateTemplateSchema, n as AuthoringStyleSchema, o as PackageManagerSchema, r as CreateCommandInputSchema, t as runCreateCommand } from "./create-
|
|
2
|
+
import { a as DatabaseProviderSchema, i as CreateTemplateSchema, n as AuthoringStyleSchema, o as PackageManagerSchema, r as CreateCommandInputSchema, t as runCreateCommand } from "./create-emt40To0.mjs";
|
|
3
3
|
import { os } from "@orpc/server";
|
|
4
4
|
import { createCli } from "trpc-cli";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
|
|
7
7
|
//#region src/index.ts
|
|
8
|
-
const CLI_VERSION = "0.4.2-pr.53.
|
|
8
|
+
const CLI_VERSION = "0.4.2-pr.53.199.1";
|
|
9
9
|
const CreateCliInputSchema = z.tuple([z.string().trim().min(1, "Please enter a valid project name").optional().describe("Project name / directory"), CreateCommandInputSchema]);
|
|
10
10
|
function normalizeCreateCliInput(input) {
|
|
11
11
|
const [projectName, options] = input;
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ This builds the app and starts it with Composer. PostgreSQL projects get a local
|
|
|
18
18
|
|
|
19
19
|
The deploy script builds the framework output, provisions Prisma Postgres when selected, applies migrations, and deploys the app to Prisma Compute.
|
|
20
20
|
|
|
21
|
-
The starter users are inserted idempotently on the first database query through the Composer service binding.
|
|
21
|
+
The starter users are inserted idempotently from `src/prisma/seed.ts` on the first database query through the Composer service binding.
|
|
22
22
|
|
|
23
23
|
{{#if (eq provider "mongo")}}
|
|
24
24
|
MongoDB is not provisioned by Composer. Set `MONGODB_URL` before running Composer locally or deploying.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { definePrismaConfig } from "@prisma/cli-engine";
|
|
2
2
|
|
|
3
3
|
import orm from "./prisma-next.config.ts";
|
|
4
4
|
|
|
5
|
-
export default
|
|
5
|
+
export default definePrismaConfig({
|
|
6
6
|
orm,
|
|
7
7
|
composer: {
|
|
8
8
|
configPath: "./prisma-composer.config.ts",
|
|
@@ -1,19 +1,36 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { connectDatabase, db } from "./db.ts";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const users = [
|
|
4
|
+
{ email: "alice@prisma.io", username: "alice", name: "Alice" },
|
|
5
|
+
{ email: "bob@prisma.io", username: "bob", name: "Bob" },
|
|
6
|
+
{ email: "carol@prisma.io", username: "carol", name: "Carol" },
|
|
7
|
+
];
|
|
8
|
+
|
|
9
|
+
let pendingSeed: Promise<void> | undefined;
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
async function runSeed(): Promise<void> {
|
|
12
|
+
await connectDatabase();
|
|
13
|
+
|
|
14
|
+
{{#if (eq provider "mongo")}}
|
|
15
|
+
for (const user of users) {
|
|
16
|
+
const existingUser = await db.orm.users.where({ email: user.email }).first();
|
|
17
|
+
if (!existingUser) await db.orm.users.create(user);
|
|
18
|
+
}
|
|
19
|
+
{{else}}
|
|
20
|
+
for (const user of users) {
|
|
21
|
+
await db.orm.public.User.upsert({
|
|
22
|
+
create: user,
|
|
23
|
+
update: {},
|
|
24
|
+
conflictOn: { email: user.email },
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
{{/if}}
|
|
28
|
+
}
|
|
13
29
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
30
|
+
export function seed(): Promise<void> {
|
|
31
|
+
pendingSeed ??= runSeed().catch((error: unknown) => {
|
|
32
|
+
pendingSeed = undefined;
|
|
33
|
+
throw error;
|
|
34
|
+
});
|
|
35
|
+
return pendingSeed;
|
|
19
36
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
|
|
3
1
|
import { db } from "./db.ts";
|
|
4
|
-
import {
|
|
2
|
+
import { seed } from "./seed.ts";
|
|
5
3
|
|
|
6
4
|
export { db };
|
|
7
5
|
|
|
8
6
|
export async function listUsers(limit = 10) {
|
|
9
|
-
await
|
|
7
|
+
await seed();
|
|
10
8
|
{{#if (eq provider "mongo")}}
|
|
11
9
|
const users = [];
|
|
12
10
|
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { connectDatabase, db } from "./db.ts";
|
|
2
|
-
|
|
3
|
-
const starterUsers = [
|
|
4
|
-
{ email: "alice@prisma.io", username: "alice", name: "Alice" },
|
|
5
|
-
{ email: "bob@prisma.io", username: "bob", name: "Bob" },
|
|
6
|
-
{ email: "carol@prisma.io", username: "carol", name: "Carol" },
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
let seed: Promise<void> | undefined;
|
|
10
|
-
|
|
11
|
-
async function seedOnce(): Promise<void> {
|
|
12
|
-
await connectDatabase();
|
|
13
|
-
|
|
14
|
-
{{#if (eq provider "mongo")}}
|
|
15
|
-
for (const user of starterUsers) {
|
|
16
|
-
const existingUser = await db.orm.users.where({ email: user.email }).first();
|
|
17
|
-
if (!existingUser) await db.orm.users.create(user);
|
|
18
|
-
}
|
|
19
|
-
{{else}}
|
|
20
|
-
for (const user of starterUsers) {
|
|
21
|
-
await db.orm.public.User.upsert({
|
|
22
|
-
create: user,
|
|
23
|
-
update: {},
|
|
24
|
-
conflictOn: { email: user.email },
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
{{/if}}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function seedStarterData(): Promise<void> {
|
|
31
|
-
seed ??= seedOnce().catch((error: unknown) => {
|
|
32
|
-
seed = undefined;
|
|
33
|
-
throw error;
|
|
34
|
-
});
|
|
35
|
-
return seed;
|
|
36
|
-
}
|