create-prisma 0.4.1 → 0.4.2-pr.36.76.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-H6Tk0JlE.mjs → create-DuV1nh0P.mjs} +135 -35
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/templates/create/astro/prisma/seed.ts.hbs +1 -1
- package/templates/create/{svelte/prisma.config.ts → astro/prisma.config.ts.hbs} +3 -1
- package/templates/create/astro/src/lib/prisma.ts.hbs +8 -6
- package/templates/create/elysia/prisma/seed.ts.hbs +0 -4
- package/templates/create/elysia/prisma.config.ts.hbs +2 -2
- package/templates/create/elysia/src/lib/prisma.ts.hbs +3 -3
- package/templates/create/hono/prisma/seed.ts.hbs +0 -4
- package/templates/create/hono/prisma.config.ts.hbs +2 -2
- package/templates/create/hono/src/lib/prisma.ts.hbs +3 -3
- package/templates/create/nest/prisma/seed.ts.hbs +0 -4
- package/templates/create/nest/prisma.config.ts.hbs +2 -2
- package/templates/create/nest/src/lib/prisma.ts.hbs +3 -3
- package/templates/create/next/prisma/seed.ts.hbs +1 -1
- package/templates/create/{astro/prisma.config.ts → next/prisma.config.ts.hbs} +3 -1
- package/templates/create/next/src/app/page.tsx.hbs +1 -3
- package/templates/create/next/src/lib/prisma.ts.hbs +8 -5
- package/templates/create/next/tsconfig.json +1 -0
- package/templates/create/nuxt/nuxt.config.ts +16 -0
- package/templates/create/nuxt/prisma/seed.ts.hbs +1 -1
- package/templates/create/{next/prisma.config.ts → nuxt/prisma.config.ts.hbs} +3 -1
- package/templates/create/nuxt/server/utils/prisma.ts.hbs +8 -5
- package/templates/create/svelte/package.json.hbs +2 -1
- package/templates/create/svelte/prisma/seed.ts.hbs +1 -50
- package/templates/create/{nuxt/prisma.config.ts → svelte/prisma.config.ts.hbs} +3 -1
- package/templates/create/svelte/src/lib/server/prisma.ts.hbs +6 -6
- package/templates/create/tanstack-start/prisma/seed.ts.hbs +5 -4
- package/templates/create/tanstack-start/prisma.config.ts.hbs +15 -0
- package/templates/create/tanstack-start/src/lib/prisma.server.ts.hbs +8 -5
- package/templates/create/turborepo/apps/api/package.json.hbs +7 -0
- package/templates/create/turborepo/package.json.hbs +10 -4
- package/templates/create/turborepo/packages/db/package.json.hbs +5 -0
- package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +1 -1
- package/templates/create/turborepo/packages/db/prisma.config.ts.hbs +15 -0
- package/templates/create/turborepo/packages/db/src/client.ts.hbs +10 -5
- package/templates/create/tanstack-start/prisma.config.ts +0 -13
- package/templates/create/turborepo/packages/db/prisma.config.ts +0 -13
package/dist/cli.mjs
CHANGED
|
@@ -19,20 +19,23 @@ function usesNodeStyleRuntime(packageManager) {
|
|
|
19
19
|
function requiresDotenvConfigImport(packageManager) {
|
|
20
20
|
return usesNodeStyleRuntime(packageManager);
|
|
21
21
|
}
|
|
22
|
+
function requiresPrismaConfigDotenvImport(packageManager) {
|
|
23
|
+
return packageManager !== "deno";
|
|
24
|
+
}
|
|
22
25
|
|
|
23
26
|
//#endregion
|
|
24
27
|
//#region src/constants/dependencies.ts
|
|
25
28
|
const dependencyVersionMap = {
|
|
26
29
|
"@elysiajs/node": "^1.4.5",
|
|
27
|
-
"@
|
|
28
|
-
"@prisma/
|
|
29
|
-
"@prisma/adapter-
|
|
30
|
-
"@prisma/adapter-
|
|
31
|
-
"@prisma/adapter-
|
|
30
|
+
"@libsql/client": "^0.17.3",
|
|
31
|
+
"@prisma/client": "^7.8.0",
|
|
32
|
+
"@prisma/adapter-pg": "^7.8.0",
|
|
33
|
+
"@prisma/adapter-libsql": "^7.8.0",
|
|
34
|
+
"@prisma/adapter-mariadb": "^7.8.0",
|
|
35
|
+
"@prisma/adapter-mssql": "^7.8.0",
|
|
32
36
|
"@types/node": "^24.3.0",
|
|
33
37
|
dotenv: "^17.2.3",
|
|
34
|
-
|
|
35
|
-
prisma: "^7.4.0",
|
|
38
|
+
prisma: "^7.8.0",
|
|
36
39
|
tsx: "^4.21.0"
|
|
37
40
|
};
|
|
38
41
|
function getWorkspaceDependencyVersion(packageManager) {
|
|
@@ -128,6 +131,7 @@ const PrismaSetupOptionsSchema = z.object({
|
|
|
128
131
|
databaseUrl: DatabaseUrlSchema.optional().describe("DATABASE_URL value"),
|
|
129
132
|
install: z.boolean().optional().describe("Install dependencies with selected package manager"),
|
|
130
133
|
generate: z.boolean().optional().describe("Generate Prisma Client after scaffolding"),
|
|
134
|
+
migrateAndSeed: z.boolean().optional().describe("Run an initial migration and seed after Prisma Client generation"),
|
|
131
135
|
schemaPreset: SchemaPresetSchema.optional().describe("Schema preset to scaffold in prisma/schema.prisma")
|
|
132
136
|
});
|
|
133
137
|
const PrismaSetupCommandInputSchema = CommonCommandOptionsSchema.extend(PrismaSetupOptionsSchema.shape);
|
|
@@ -243,6 +247,15 @@ function getRunScriptCommand(packageManager, scriptName) {
|
|
|
243
247
|
default: return `npm run ${scriptName}`;
|
|
244
248
|
}
|
|
245
249
|
}
|
|
250
|
+
function getRunScriptInDirectoryCommand(packageManager, directory, scriptName) {
|
|
251
|
+
switch (packageManager) {
|
|
252
|
+
case "deno": return `deno task --cwd ${directory} ${scriptName}`;
|
|
253
|
+
case "bun": return `bun run --cwd ${directory} ${scriptName}`;
|
|
254
|
+
case "pnpm": return `pnpm --dir ${directory} run ${scriptName}`;
|
|
255
|
+
case "yarn": return `yarn --cwd ${directory} run ${scriptName}`;
|
|
256
|
+
default: return `npm --prefix ${directory} run ${scriptName}`;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
246
259
|
function joinCommandParts(parts) {
|
|
247
260
|
return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
|
|
248
261
|
}
|
|
@@ -358,10 +371,26 @@ function getOptionalHashString(hash, key) {
|
|
|
358
371
|
function getOptionalHashStringList(hash, key) {
|
|
359
372
|
return getOptionalHashString(hash, key)?.split(" ") ?? [];
|
|
360
373
|
}
|
|
374
|
+
function getSeedCommand(packageManager) {
|
|
375
|
+
if (packageManager === "deno") return "deno run -A --env-file=.env ./prisma/seed.ts";
|
|
376
|
+
if (packageManager === "bun") return "bun ./prisma/seed.ts";
|
|
377
|
+
return "tsx ./prisma/seed.ts";
|
|
378
|
+
}
|
|
379
|
+
function getPrismaCommand(packageManager, subcommand) {
|
|
380
|
+
if (packageManager === "deno") return `deno run -A --env-file=.env npm:prisma@${dependencyVersionMap.prisma} ${subcommand}`;
|
|
381
|
+
if (packageManager === "bun") return `bun --env-file=.env ./node_modules/.bin/prisma ${subcommand}`;
|
|
382
|
+
return `prisma ${subcommand}`;
|
|
383
|
+
}
|
|
361
384
|
Handlebars.registerHelper("eq", (left, right) => left === right);
|
|
362
385
|
Handlebars.registerHelper("runScriptCommand", (packageManager, scriptName) => packageManager ? getRunScriptCommand(packageManager, scriptName) : "");
|
|
386
|
+
Handlebars.registerHelper("runScriptInDirectoryCommand", (packageManager, directory, scriptName) => packageManager ? getRunScriptInDirectoryCommand(packageManager, directory, scriptName) : "");
|
|
363
387
|
Handlebars.registerHelper("packageManagerManifestValue", (packageManager) => getPackageManagerManifestValue(packageManager) ?? "");
|
|
364
388
|
Handlebars.registerHelper("requiresDotenvConfigImport", (packageManager) => requiresDotenvConfigImport(packageManager));
|
|
389
|
+
Handlebars.registerHelper("requiresPrismaConfigDotenvImport", (packageManager) => requiresPrismaConfigDotenvImport(packageManager));
|
|
390
|
+
Handlebars.registerHelper("sqliteAdapterPackage", () => "@prisma/adapter-libsql");
|
|
391
|
+
Handlebars.registerHelper("sqliteAdapterClass", () => "PrismaLibSql");
|
|
392
|
+
Handlebars.registerHelper("seedCommand", (packageManager) => getSeedCommand(packageManager));
|
|
393
|
+
Handlebars.registerHelper("prismaCommand", (packageManager, subcommand) => getPrismaCommand(packageManager, subcommand));
|
|
365
394
|
Handlebars.registerHelper("runtimeScript", (packageManager, kind, sourceEntrypoint, builtEntrypoint, options) => {
|
|
366
395
|
if (!packageManager) return "";
|
|
367
396
|
const hash = options.hash;
|
|
@@ -450,12 +479,12 @@ async function scaffoldCreateTemplate(opts) {
|
|
|
450
479
|
|
|
451
480
|
//#endregion
|
|
452
481
|
//#region src/constants/db-packages.ts
|
|
453
|
-
function getDbPackages(provider) {
|
|
482
|
+
function getDbPackages(provider, _packageManager) {
|
|
454
483
|
switch (provider) {
|
|
455
484
|
case "postgresql":
|
|
456
485
|
case "cockroachdb": return "@prisma/adapter-pg";
|
|
457
486
|
case "mysql": return "@prisma/adapter-mariadb";
|
|
458
|
-
case "sqlite": return "@prisma/adapter-
|
|
487
|
+
case "sqlite": return "@prisma/adapter-libsql";
|
|
459
488
|
case "sqlserver": return "@prisma/adapter-mssql";
|
|
460
489
|
default: {
|
|
461
490
|
const exhaustiveCheck = provider;
|
|
@@ -468,12 +497,12 @@ function getDbPackages(provider) {
|
|
|
468
497
|
//#region src/tasks/install.ts
|
|
469
498
|
function getPrismaScriptMap(packageManager) {
|
|
470
499
|
if (packageManager === "deno") {
|
|
471
|
-
const
|
|
500
|
+
const prismaCli = `deno run -A --env-file=.env ${getDenoPrismaSpecifier()}`;
|
|
472
501
|
return {
|
|
473
|
-
"db:generate":
|
|
474
|
-
"db:push":
|
|
475
|
-
"db:migrate":
|
|
476
|
-
"db:seed":
|
|
502
|
+
"db:generate": `${prismaCli} generate`,
|
|
503
|
+
"db:push": `${prismaCli} db push`,
|
|
504
|
+
"db:migrate": `${prismaCli} migrate dev`,
|
|
505
|
+
"db:seed": `${prismaCli} db seed`
|
|
477
506
|
};
|
|
478
507
|
}
|
|
479
508
|
if (packageManager === "bun") {
|
|
@@ -553,9 +582,9 @@ async function addPackageDependency(opts) {
|
|
|
553
582
|
async function writePrismaDependencies(provider, packageManager, projectDir = process.cwd()) {
|
|
554
583
|
const dependencies = ["@prisma/client"];
|
|
555
584
|
const devDependencies = ["prisma"];
|
|
556
|
-
dependencies.push(getDbPackages(provider));
|
|
585
|
+
dependencies.push(getDbPackages(provider, packageManager));
|
|
586
|
+
if (provider === "sqlite") dependencies.push("@libsql/client");
|
|
557
587
|
if (requiresDotenvConfigImport(packageManager) || await projectContainsText(projectDir, "dotenv/config")) dependencies.push("dotenv");
|
|
558
|
-
if (provider === "sqlite" && packageManager === "deno") devDependencies.push("node-gyp");
|
|
559
588
|
await addPackageDependency({
|
|
560
589
|
dependencies,
|
|
561
590
|
devDependencies,
|
|
@@ -648,6 +677,8 @@ const DEFAULT_SCHEMA_PRESET$1 = "empty";
|
|
|
648
677
|
const DEFAULT_PRISMA_POSTGRES = true;
|
|
649
678
|
const DEFAULT_INSTALL = true;
|
|
650
679
|
const DEFAULT_GENERATE = true;
|
|
680
|
+
const DEFAULT_MIGRATE_AND_SEED = true;
|
|
681
|
+
const PRISMA_POSTGRES_MIGRATION_DELAY_MS = 2e3;
|
|
651
682
|
const requiredPrismaFileGroups = [
|
|
652
683
|
["prisma/schema.prisma", "packages/db/prisma/schema.prisma"],
|
|
653
684
|
["prisma/seed.ts", "packages/db/prisma/seed.ts"],
|
|
@@ -753,6 +784,17 @@ async function promptForDependencyInstall(packageManager) {
|
|
|
753
784
|
}
|
|
754
785
|
return Boolean(shouldInstall);
|
|
755
786
|
}
|
|
787
|
+
async function promptForMigrateAndSeed() {
|
|
788
|
+
const shouldMigrateAndSeed = await confirm({
|
|
789
|
+
message: "Run an initial migration and seed your database now?",
|
|
790
|
+
initialValue: DEFAULT_MIGRATE_AND_SEED
|
|
791
|
+
});
|
|
792
|
+
if (isCancel(shouldMigrateAndSeed)) {
|
|
793
|
+
cancel("Operation cancelled.");
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
return Boolean(shouldMigrateAndSeed);
|
|
797
|
+
}
|
|
756
798
|
async function promptForPrismaPostgres() {
|
|
757
799
|
const shouldUsePrismaPostgres = await confirm({
|
|
758
800
|
message: "Use Prisma Postgres and auto-generate DATABASE_URL with create-db?",
|
|
@@ -791,6 +833,8 @@ async function collectPrismaSetupContext(input, options = {}) {
|
|
|
791
833
|
if (!packageManager) return;
|
|
792
834
|
const shouldInstall = input.install ?? (useDefaults ? DEFAULT_INSTALL : await promptForDependencyInstall(packageManager));
|
|
793
835
|
if (shouldInstall === void 0) return;
|
|
836
|
+
const shouldMigrateAndSeed = !(shouldInstall && shouldGenerate) ? false : input.migrateAndSeed ?? (useDefaults ? DEFAULT_MIGRATE_AND_SEED : await promptForMigrateAndSeed());
|
|
837
|
+
if (shouldMigrateAndSeed === void 0) return;
|
|
794
838
|
return {
|
|
795
839
|
projectDir,
|
|
796
840
|
verbose,
|
|
@@ -800,7 +844,8 @@ async function collectPrismaSetupContext(input, options = {}) {
|
|
|
800
844
|
databaseUrl,
|
|
801
845
|
shouldUsePrismaPostgres,
|
|
802
846
|
packageManager,
|
|
803
|
-
shouldInstall
|
|
847
|
+
shouldInstall,
|
|
848
|
+
shouldMigrateAndSeed
|
|
804
849
|
};
|
|
805
850
|
}
|
|
806
851
|
function getDefaultDatabaseUrl(provider) {
|
|
@@ -1015,19 +1060,20 @@ async function generatePrismaClientForContext(context, projectDir) {
|
|
|
1015
1060
|
};
|
|
1016
1061
|
}
|
|
1017
1062
|
}
|
|
1018
|
-
function buildWarningLines(provisionWarning, generateWarning) {
|
|
1063
|
+
function buildWarningLines(provisionWarning, generateWarning, migrateAndSeedWarning) {
|
|
1019
1064
|
const warningLines = [];
|
|
1020
1065
|
if (provisionWarning) warningLines.push(`- ${provisionWarning}`);
|
|
1021
1066
|
if (generateWarning) warningLines.push(`- ${generateWarning}`);
|
|
1067
|
+
if (migrateAndSeedWarning) warningLines.push(`- ${migrateAndSeedWarning}`);
|
|
1022
1068
|
return warningLines;
|
|
1023
1069
|
}
|
|
1024
1070
|
function buildNextStepsForContext(opts) {
|
|
1025
|
-
const { context, options, didGenerateClient } = opts;
|
|
1071
|
+
const { context, options, didGenerateClient, didMigrate, didSeed } = opts;
|
|
1026
1072
|
const nextSteps = [...options.prependNextSteps ?? []];
|
|
1027
1073
|
if (!context.shouldInstall) nextSteps.push(`- ${getInstallCommand(context.packageManager)}`);
|
|
1028
1074
|
if (!didGenerateClient || !context.shouldGenerate) nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "db:generate")}`);
|
|
1029
|
-
nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "db:migrate")}`);
|
|
1030
|
-
nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "db:seed")}`);
|
|
1075
|
+
if (!didMigrate) nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "db:migrate")}`);
|
|
1076
|
+
if (!didSeed) nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "db:seed")}`);
|
|
1031
1077
|
if (options.includeDevNextStep) nextSteps.push(`- ${getRunScriptCommand(context.packageManager, "dev")}`);
|
|
1032
1078
|
return nextSteps;
|
|
1033
1079
|
}
|
|
@@ -1039,11 +1085,14 @@ async function executePrismaSetupContext(context, options = {}) {
|
|
|
1039
1085
|
if (!await installDependenciesForContext(context, projectDir)) return false;
|
|
1040
1086
|
if (!await finalizePrismaFilesForContext(context, projectDir, provisionResult)) return false;
|
|
1041
1087
|
const generateResult = await generatePrismaClientForContext(context, projectDir);
|
|
1042
|
-
const
|
|
1088
|
+
const migrateAndSeedResult = await migrateAndSeedIfRequested(context, projectDir, { didGenerateClient: generateResult.didGenerateClient });
|
|
1089
|
+
const warningLines = buildWarningLines(provisionResult.warning, generateResult.warning, migrateAndSeedResult.warning);
|
|
1043
1090
|
const nextSteps = buildNextStepsForContext({
|
|
1044
1091
|
context,
|
|
1045
1092
|
options,
|
|
1046
|
-
didGenerateClient: generateResult.didGenerateClient
|
|
1093
|
+
didGenerateClient: generateResult.didGenerateClient,
|
|
1094
|
+
didMigrate: migrateAndSeedResult.didMigrate,
|
|
1095
|
+
didSeed: migrateAndSeedResult.didSeed
|
|
1047
1096
|
});
|
|
1048
1097
|
outro(`Setup complete.${warningLines.length > 0 ? `\n\n${warningLines.join("\n")}` : ""}
|
|
1049
1098
|
|
|
@@ -1051,6 +1100,66 @@ Next steps:
|
|
|
1051
1100
|
${nextSteps.join("\n")}`);
|
|
1052
1101
|
return true;
|
|
1053
1102
|
}
|
|
1103
|
+
async function migrateAndSeedIfRequested(context, projectDir, options) {
|
|
1104
|
+
const prismaProjectDir = await resolvePrismaProjectDir(projectDir);
|
|
1105
|
+
if (!context.shouldMigrateAndSeed) return {
|
|
1106
|
+
didMigrate: false,
|
|
1107
|
+
didSeed: false
|
|
1108
|
+
};
|
|
1109
|
+
if (!options.didGenerateClient) return {
|
|
1110
|
+
didMigrate: false,
|
|
1111
|
+
didSeed: false,
|
|
1112
|
+
warning: "Skipped migrate + seed because the Prisma Client was not generated."
|
|
1113
|
+
};
|
|
1114
|
+
const migrateInvocation = getPrismaCliArgs(context.packageManager, [
|
|
1115
|
+
"migrate",
|
|
1116
|
+
"dev",
|
|
1117
|
+
"--name",
|
|
1118
|
+
"init"
|
|
1119
|
+
]);
|
|
1120
|
+
const seedInvocation = getPrismaCliArgs(context.packageManager, ["db", "seed"]);
|
|
1121
|
+
const migrateSpinner = spinner();
|
|
1122
|
+
migrateSpinner.start("Creating and applying initial migration...");
|
|
1123
|
+
let didMigrate = false;
|
|
1124
|
+
try {
|
|
1125
|
+
if (context.shouldUsePrismaPostgres) await new Promise((resolve) => setTimeout(resolve, PRISMA_POSTGRES_MIGRATION_DELAY_MS));
|
|
1126
|
+
await execa(migrateInvocation.command, migrateInvocation.args, {
|
|
1127
|
+
cwd: prismaProjectDir,
|
|
1128
|
+
stdio: context.verbose ? "inherit" : "pipe"
|
|
1129
|
+
});
|
|
1130
|
+
migrateSpinner.stop("Initial migration applied.");
|
|
1131
|
+
didMigrate = true;
|
|
1132
|
+
} catch (error) {
|
|
1133
|
+
migrateSpinner.error(`Migration failed${error instanceof Error ? `: ${error.message}` : "."}`);
|
|
1134
|
+
return {
|
|
1135
|
+
didMigrate: false,
|
|
1136
|
+
didSeed: false,
|
|
1137
|
+
warning: `Migration failed; run \`${getRunScriptCommand(context.packageManager, "db:migrate")}\` manually.`
|
|
1138
|
+
};
|
|
1139
|
+
}
|
|
1140
|
+
const seedSpinner = spinner();
|
|
1141
|
+
seedSpinner.start("Seeding database...");
|
|
1142
|
+
let didSeed = false;
|
|
1143
|
+
try {
|
|
1144
|
+
await execa(seedInvocation.command, seedInvocation.args, {
|
|
1145
|
+
cwd: prismaProjectDir,
|
|
1146
|
+
stdio: context.verbose ? "inherit" : "pipe"
|
|
1147
|
+
});
|
|
1148
|
+
seedSpinner.stop("Database seeded.");
|
|
1149
|
+
didSeed = true;
|
|
1150
|
+
} catch (error) {
|
|
1151
|
+
seedSpinner.error(`Seed failed${error instanceof Error ? `: ${error.message}` : "."}`);
|
|
1152
|
+
return {
|
|
1153
|
+
didMigrate,
|
|
1154
|
+
didSeed: false,
|
|
1155
|
+
warning: `Seed failed; run \`${getRunScriptCommand(context.packageManager, "db:seed")}\` manually.`
|
|
1156
|
+
};
|
|
1157
|
+
}
|
|
1158
|
+
return {
|
|
1159
|
+
didMigrate,
|
|
1160
|
+
didSeed
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1054
1163
|
|
|
1055
1164
|
//#endregion
|
|
1056
1165
|
//#region src/tasks/setup-addons.ts
|
|
@@ -1582,21 +1691,12 @@ async function executeCreateAddonSetupContext(params) {
|
|
|
1582
1691
|
|
|
1583
1692
|
//#endregion
|
|
1584
1693
|
//#region src/telemetry/client.ts
|
|
1585
|
-
const TELEMETRY_API_KEY = "
|
|
1694
|
+
const TELEMETRY_API_KEY = "";
|
|
1586
1695
|
const TELEMETRY_HOST = "https://us.i.posthog.com";
|
|
1587
1696
|
const TELEMETRY_CONFIG_FILE = "telemetry.json";
|
|
1588
1697
|
const UUID_V4_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
1589
|
-
function isTruthyEnvValue(value) {
|
|
1590
|
-
return [
|
|
1591
|
-
"1",
|
|
1592
|
-
"true",
|
|
1593
|
-
"yes",
|
|
1594
|
-
"on"
|
|
1595
|
-
].includes(String(value ?? "").trim().toLowerCase());
|
|
1596
|
-
}
|
|
1597
1698
|
function shouldDisableTelemetry() {
|
|
1598
|
-
|
|
1599
|
-
return process.env.CREATE_PRISMA_DISABLE_TELEMETRY !== void 0 || process.env.CREATE_PRISMA_TELEMETRY_DISABLED !== void 0 || process.env.DO_NOT_TRACK !== void 0;
|
|
1699
|
+
return true;
|
|
1600
1700
|
}
|
|
1601
1701
|
function getTelemetryConfigDir() {
|
|
1602
1702
|
if (process.platform === "darwin") return path.join(os.homedir(), "Library", "Application Support", "create-prisma");
|
|
@@ -1618,7 +1718,7 @@ async function getAnonymousId() {
|
|
|
1618
1718
|
}
|
|
1619
1719
|
function getCommonProperties() {
|
|
1620
1720
|
return {
|
|
1621
|
-
"cli-version": "0.4.1",
|
|
1721
|
+
"cli-version": "0.4.2-pr.36.76.1",
|
|
1622
1722
|
"node-version": process.version,
|
|
1623
1723
|
platform: process.platform,
|
|
1624
1724
|
arch: process.arch
|
package/dist/index.d.mts
CHANGED
|
@@ -228,6 +228,7 @@ declare const CreateCommandInputSchema: z.ZodObject<{
|
|
|
228
228
|
databaseUrl: z.ZodOptional<z.ZodString>;
|
|
229
229
|
install: z.ZodOptional<z.ZodBoolean>;
|
|
230
230
|
generate: z.ZodOptional<z.ZodBoolean>;
|
|
231
|
+
migrateAndSeed: z.ZodOptional<z.ZodBoolean>;
|
|
231
232
|
schemaPreset: z.ZodOptional<z.ZodEnum<{
|
|
232
233
|
empty: "empty";
|
|
233
234
|
basic: "basic";
|
|
@@ -274,6 +275,7 @@ declare const router: {
|
|
|
274
275
|
databaseUrl: zod.ZodOptional<zod.ZodString>;
|
|
275
276
|
install: zod.ZodOptional<zod.ZodBoolean>;
|
|
276
277
|
generate: zod.ZodOptional<zod.ZodBoolean>;
|
|
278
|
+
migrateAndSeed: zod.ZodOptional<zod.ZodBoolean>;
|
|
277
279
|
schemaPreset: zod.ZodOptional<zod.ZodEnum<{
|
|
278
280
|
empty: "empty";
|
|
279
281
|
basic: "basic";
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as DatabaseUrlSchema, i as DatabaseProviderSchema, n as CreateCommandInputSchema, o as PackageManagerSchema, r as CreateTemplateSchema, s as SchemaPresetSchema, t as runCreateCommand } from "./create-
|
|
2
|
+
import { a as DatabaseUrlSchema, i as DatabaseProviderSchema, n as CreateCommandInputSchema, o as PackageManagerSchema, r as CreateTemplateSchema, s as SchemaPresetSchema, t as runCreateCommand } from "./create-DuV1nh0P.mjs";
|
|
3
3
|
import { os } from "@orpc/server";
|
|
4
4
|
import { createCli } from "trpc-cli";
|
|
5
5
|
|
|
6
6
|
//#region src/index.ts
|
|
7
|
-
const CLI_VERSION = "0.4.1";
|
|
7
|
+
const CLI_VERSION = "0.4.2-pr.36.76.1";
|
|
8
8
|
const router = os.router({ create: os.meta({
|
|
9
9
|
description: "Create a new project with Prisma setup",
|
|
10
10
|
default: true,
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
2
4
|
import { defineConfig, env } from "prisma/config";
|
|
3
5
|
|
|
4
6
|
export default defineConfig({
|
|
5
7
|
schema: "prisma/schema.prisma",
|
|
6
8
|
migrations: {
|
|
7
9
|
path: "prisma/migrations",
|
|
8
|
-
seed: "
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
9
11
|
},
|
|
10
12
|
datasource: {
|
|
11
13
|
url: env("DATABASE_URL"),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport this.packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
5
|
{{#if (eq provider "postgresql")}}
|
|
4
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
7
|
{{/if}}
|
|
@@ -10,17 +12,17 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
10
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
13
|
{{/if}}
|
|
12
14
|
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass this.packageManager}} } from "{{sqliteAdapterPackage this.packageManager}}";
|
|
14
16
|
{{/if}}
|
|
15
17
|
{{#if (eq provider "sqlserver")}}
|
|
16
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
19
|
{{/if}}
|
|
18
20
|
|
|
21
|
+
const rawDatabaseUrl = {{#if (eq packageManager "deno")}}process.env.DATABASE_URL{{else}}import.meta.env?.DATABASE_URL ?? process.env.DATABASE_URL{{/if}};
|
|
19
22
|
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl =
|
|
21
|
-
import.meta.env?.DATABASE_URL ?? process.env.DATABASE_URL ?? "file:./dev.db";
|
|
23
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
22
24
|
{{else}}
|
|
23
|
-
const databaseUrl =
|
|
25
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
24
26
|
if (!databaseUrl) {
|
|
25
27
|
throw new Error("DATABASE_URL is required");
|
|
26
28
|
}
|
|
@@ -40,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
40
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
41
43
|
{{/if}}
|
|
42
44
|
{{#if (eq provider "sqlite")}}
|
|
43
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass this.packageManager}}({
|
|
44
46
|
url: databaseUrl,
|
|
45
47
|
});
|
|
46
48
|
{{/if}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{{#if (
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
2
2
|
import "dotenv/config";
|
|
3
3
|
{{/if}}
|
|
4
4
|
import { defineConfig, env } from "prisma/config";
|
|
@@ -7,7 +7,7 @@ export default defineConfig({
|
|
|
7
7
|
schema: "prisma/schema.prisma",
|
|
8
8
|
migrations: {
|
|
9
9
|
path: "prisma/migrations",
|
|
10
|
-
seed: "{{
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
11
11
|
},
|
|
12
12
|
datasource: {
|
|
13
13
|
url: env("DATABASE_URL"),
|
|
@@ -12,13 +12,13 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
12
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
13
13
|
{{/if}}
|
|
14
14
|
{{#if (eq provider "sqlite")}}
|
|
15
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
16
16
|
{{/if}}
|
|
17
17
|
{{#if (eq provider "sqlserver")}}
|
|
18
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
19
19
|
{{/if}}
|
|
20
20
|
|
|
21
|
-
const rawDatabaseUrl =
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
22
22
|
{{#if (eq provider "sqlite")}}
|
|
23
23
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
24
24
|
{{else}}
|
|
@@ -42,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
42
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
43
43
|
{{/if}}
|
|
44
44
|
{{#if (eq provider "sqlite")}}
|
|
45
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
46
46
|
url: databaseUrl,
|
|
47
47
|
});
|
|
48
48
|
{{/if}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{{#if (
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
2
2
|
import "dotenv/config";
|
|
3
3
|
{{/if}}
|
|
4
4
|
import { defineConfig, env } from "prisma/config";
|
|
@@ -7,7 +7,7 @@ export default defineConfig({
|
|
|
7
7
|
schema: "prisma/schema.prisma",
|
|
8
8
|
migrations: {
|
|
9
9
|
path: "prisma/migrations",
|
|
10
|
-
seed: "{{
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
11
11
|
},
|
|
12
12
|
datasource: {
|
|
13
13
|
url: env("DATABASE_URL"),
|
|
@@ -12,13 +12,13 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
12
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
13
13
|
{{/if}}
|
|
14
14
|
{{#if (eq provider "sqlite")}}
|
|
15
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
16
16
|
{{/if}}
|
|
17
17
|
{{#if (eq provider "sqlserver")}}
|
|
18
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
19
19
|
{{/if}}
|
|
20
20
|
|
|
21
|
-
const rawDatabaseUrl =
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
22
22
|
{{#if (eq provider "sqlite")}}
|
|
23
23
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
24
24
|
{{else}}
|
|
@@ -42,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
42
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
43
43
|
{{/if}}
|
|
44
44
|
{{#if (eq provider "sqlite")}}
|
|
45
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
46
46
|
url: databaseUrl,
|
|
47
47
|
});
|
|
48
48
|
{{/if}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{{#if (
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
2
2
|
import "dotenv/config";
|
|
3
3
|
{{/if}}
|
|
4
4
|
import { defineConfig, env } from "prisma/config";
|
|
@@ -7,7 +7,7 @@ export default defineConfig({
|
|
|
7
7
|
schema: "prisma/schema.prisma",
|
|
8
8
|
migrations: {
|
|
9
9
|
path: "prisma/migrations",
|
|
10
|
-
seed: "{{
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
11
11
|
},
|
|
12
12
|
datasource: {
|
|
13
13
|
url: env("DATABASE_URL"),
|
|
@@ -13,13 +13,13 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
13
13
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
14
14
|
{{/if}}
|
|
15
15
|
{{#if (eq provider "sqlite")}}
|
|
16
|
-
import {
|
|
16
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
17
17
|
{{/if}}
|
|
18
18
|
{{#if (eq provider "sqlserver")}}
|
|
19
19
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
20
20
|
{{/if}}
|
|
21
21
|
|
|
22
|
-
const rawDatabaseUrl =
|
|
22
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
23
23
|
{{#if (eq provider "sqlite")}}
|
|
24
24
|
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
25
25
|
{{else}}
|
|
@@ -43,7 +43,7 @@ const adapter = new PrismaPg({
|
|
|
43
43
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
44
44
|
{{/if}}
|
|
45
45
|
{{#if (eq provider "sqlite")}}
|
|
46
|
-
const adapter = new
|
|
46
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
47
47
|
url: databaseUrl,
|
|
48
48
|
});
|
|
49
49
|
{{/if}}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
2
4
|
import { defineConfig, env } from "prisma/config";
|
|
3
5
|
|
|
4
6
|
export default defineConfig({
|
|
5
7
|
schema: "prisma/schema.prisma",
|
|
6
8
|
migrations: {
|
|
7
9
|
path: "prisma/migrations",
|
|
8
|
-
seed: "
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
9
11
|
},
|
|
10
12
|
datasource: {
|
|
11
13
|
url: env("DATABASE_URL"),
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
{{#if (eq schemaPreset "basic")}}
|
|
2
|
-
import { prisma } from "../lib/prisma";
|
|
3
|
-
{{/if}}
|
|
4
1
|
{{#if (eq packageManager "deno")}}
|
|
5
2
|
|
|
6
3
|
export const dynamic = "force-dynamic";
|
|
@@ -8,6 +5,7 @@ export const dynamic = "force-dynamic";
|
|
|
8
5
|
|
|
9
6
|
export default async function Home() {
|
|
10
7
|
{{#if (eq schemaPreset "basic")}}
|
|
8
|
+
const { prisma } = await import("../lib/prisma");
|
|
11
9
|
const formatter = new Intl.DateTimeFormat("en", {
|
|
12
10
|
dateStyle: "medium",
|
|
13
11
|
timeStyle: "short",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
5
|
{{#if (eq provider "postgresql")}}
|
|
4
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
7
|
{{/if}}
|
|
@@ -10,16 +12,17 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
10
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
13
|
{{/if}}
|
|
12
14
|
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
14
16
|
{{/if}}
|
|
15
17
|
{{#if (eq provider "sqlserver")}}
|
|
16
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
19
|
{{/if}}
|
|
18
20
|
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
19
22
|
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl =
|
|
23
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
21
24
|
{{else}}
|
|
22
|
-
const databaseUrl =
|
|
25
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
23
26
|
if (!databaseUrl) {
|
|
24
27
|
throw new Error("DATABASE_URL is required");
|
|
25
28
|
}
|
|
@@ -39,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
39
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
43
|
{{/if}}
|
|
41
44
|
{{#if (eq provider "sqlite")}}
|
|
42
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
43
46
|
url: databaseUrl,
|
|
44
47
|
});
|
|
45
48
|
{{/if}}
|
|
@@ -2,4 +2,20 @@
|
|
|
2
2
|
export default defineNuxtConfig({
|
|
3
3
|
compatibilityDate: "2025-07-15",
|
|
4
4
|
devtools: { enabled: true },
|
|
5
|
+
typescript: {
|
|
6
|
+
tsConfig: {
|
|
7
|
+
compilerOptions: {
|
|
8
|
+
allowImportingTsExtensions: true,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
nitro: {
|
|
13
|
+
typescript: {
|
|
14
|
+
tsConfig: {
|
|
15
|
+
compilerOptions: {
|
|
16
|
+
allowImportingTsExtensions: true,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
5
21
|
});
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
2
4
|
import { defineConfig, env } from "prisma/config";
|
|
3
5
|
|
|
4
6
|
export default defineConfig({
|
|
5
7
|
schema: "prisma/schema.prisma",
|
|
6
8
|
migrations: {
|
|
7
9
|
path: "prisma/migrations",
|
|
8
|
-
seed: "
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
9
11
|
},
|
|
10
12
|
datasource: {
|
|
11
13
|
url: env("DATABASE_URL"),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
5
|
{{#if (eq provider "postgresql")}}
|
|
4
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
7
|
{{/if}}
|
|
@@ -10,16 +12,17 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
10
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
13
|
{{/if}}
|
|
12
14
|
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
14
16
|
{{/if}}
|
|
15
17
|
{{#if (eq provider "sqlserver")}}
|
|
16
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
19
|
{{/if}}
|
|
18
20
|
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
19
22
|
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl =
|
|
23
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
21
24
|
{{else}}
|
|
22
|
-
const databaseUrl =
|
|
25
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
23
26
|
if (!databaseUrl) {
|
|
24
27
|
throw new Error("DATABASE_URL is required");
|
|
25
28
|
}
|
|
@@ -39,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
39
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
43
|
{{/if}}
|
|
41
44
|
{{#if (eq provider "sqlite")}}
|
|
42
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
43
46
|
url: databaseUrl,
|
|
44
47
|
});
|
|
45
48
|
{{/if}}
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"preview": "vite preview",
|
|
13
13
|
"prepare": "svelte-kit sync || echo ''",
|
|
14
14
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
15
|
-
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
|
15
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
16
|
+
"db:generate": "svelte-kit sync && {{prismaCommand packageManager "generate"}}"
|
|
16
17
|
},
|
|
17
18
|
"devDependencies": {
|
|
18
19
|
"@sveltejs/adapter-auto": "^7.0.0",
|
|
@@ -1,53 +1,4 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import { PrismaClient } from "../src/generated/prisma/client";
|
|
3
|
-
{{#if (eq provider "postgresql")}}
|
|
4
|
-
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
|
-
{{/if}}
|
|
6
|
-
{{#if (eq provider "cockroachdb")}}
|
|
7
|
-
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
|
-
{{/if}}
|
|
9
|
-
{{#if (eq provider "mysql")}}
|
|
10
|
-
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
|
-
{{/if}}
|
|
12
|
-
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
|
|
14
|
-
{{/if}}
|
|
15
|
-
{{#if (eq provider "sqlserver")}}
|
|
16
|
-
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
|
-
{{/if}}
|
|
18
|
-
|
|
19
|
-
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl = process.env.DATABASE_URL ?? "file:./dev.db";
|
|
21
|
-
{{else}}
|
|
22
|
-
const databaseUrl = process.env.DATABASE_URL;
|
|
23
|
-
if (!databaseUrl) {
|
|
24
|
-
throw new Error("DATABASE_URL is required");
|
|
25
|
-
}
|
|
26
|
-
{{/if}}
|
|
27
|
-
|
|
28
|
-
{{#if (eq provider "postgresql")}}
|
|
29
|
-
const adapter = new PrismaPg({
|
|
30
|
-
connectionString: databaseUrl,
|
|
31
|
-
});
|
|
32
|
-
{{/if}}
|
|
33
|
-
{{#if (eq provider "cockroachdb")}}
|
|
34
|
-
const adapter = new PrismaPg({
|
|
35
|
-
connectionString: databaseUrl,
|
|
36
|
-
});
|
|
37
|
-
{{/if}}
|
|
38
|
-
{{#if (eq provider "mysql")}}
|
|
39
|
-
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
|
-
{{/if}}
|
|
41
|
-
{{#if (eq provider "sqlite")}}
|
|
42
|
-
const adapter = new PrismaBetterSqlite3({
|
|
43
|
-
url: databaseUrl,
|
|
44
|
-
});
|
|
45
|
-
{{/if}}
|
|
46
|
-
{{#if (eq provider "sqlserver")}}
|
|
47
|
-
const adapter = new PrismaMssql(databaseUrl);
|
|
48
|
-
{{/if}}
|
|
49
|
-
|
|
50
|
-
const prisma = new PrismaClient({ adapter });
|
|
1
|
+
import prisma from "../src/lib/server/prisma{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
51
2
|
|
|
52
3
|
async function main() {
|
|
53
4
|
{{#if (eq schemaPreset "basic")}}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
2
4
|
import { defineConfig, env } from "prisma/config";
|
|
3
5
|
|
|
4
6
|
export default defineConfig({
|
|
5
7
|
schema: "prisma/schema.prisma",
|
|
6
8
|
migrations: {
|
|
7
9
|
path: "prisma/migrations",
|
|
8
|
-
seed: "
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
9
11
|
},
|
|
10
12
|
datasource: {
|
|
11
13
|
url: env("DATABASE_URL"),
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PrismaClient } from "../../generated/prisma/client";
|
|
1
|
+
import { PrismaClient } from "../../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
2
|
{{#if (eq provider "postgresql")}}
|
|
4
3
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
4
|
{{/if}}
|
|
@@ -10,16 +9,17 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
10
9
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
10
|
{{/if}}
|
|
12
11
|
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import {
|
|
12
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
14
13
|
{{/if}}
|
|
15
14
|
{{#if (eq provider "sqlserver")}}
|
|
16
15
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
16
|
{{/if}}
|
|
18
17
|
|
|
18
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
19
19
|
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl =
|
|
20
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
21
21
|
{{else}}
|
|
22
|
-
const databaseUrl =
|
|
22
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
23
23
|
if (!databaseUrl) {
|
|
24
24
|
throw new Error("DATABASE_URL is required");
|
|
25
25
|
}
|
|
@@ -39,7 +39,7 @@ const adapter = new PrismaPg({
|
|
|
39
39
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
40
|
{{/if}}
|
|
41
41
|
{{#if (eq provider "sqlite")}}
|
|
42
|
-
const adapter = new
|
|
42
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
43
43
|
url: databaseUrl,
|
|
44
44
|
});
|
|
45
45
|
{{/if}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import prisma from "../src/lib/prisma.server";
|
|
1
|
+
import prisma from "../src/lib/prisma.server{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
2
2
|
|
|
3
3
|
async function main() {
|
|
4
4
|
{{#if (eq schemaPreset "basic")}}
|
|
@@ -28,10 +28,11 @@ async function main() {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
main()
|
|
31
|
+
.then(async () => {
|
|
32
|
+
await prisma.$disconnect();
|
|
33
|
+
})
|
|
31
34
|
.catch(async (error: unknown) => {
|
|
32
35
|
console.error(error);
|
|
33
|
-
process.exitCode = 1;
|
|
34
|
-
})
|
|
35
|
-
.finally(async () => {
|
|
36
36
|
await prisma.$disconnect();
|
|
37
|
+
process.exit(1);
|
|
37
38
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
2
|
+
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { defineConfig, env } from "prisma/config";
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
schema: "prisma/schema.prisma",
|
|
8
|
+
migrations: {
|
|
9
|
+
path: "prisma/migrations",
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
11
|
+
},
|
|
12
|
+
datasource: {
|
|
13
|
+
url: env("DATABASE_URL"),
|
|
14
|
+
},
|
|
15
|
+
});
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
{{#if (requiresDotenvConfigImport packageManager)}}
|
|
1
2
|
import "dotenv/config";
|
|
2
|
-
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { PrismaClient } from "../generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
3
5
|
{{#if (eq provider "postgresql")}}
|
|
4
6
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
7
|
{{/if}}
|
|
@@ -10,16 +12,17 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
10
12
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
13
|
{{/if}}
|
|
12
14
|
{{#if (eq provider "sqlite")}}
|
|
13
|
-
import {
|
|
15
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
14
16
|
{{/if}}
|
|
15
17
|
{{#if (eq provider "sqlserver")}}
|
|
16
18
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
19
|
{{/if}}
|
|
18
20
|
|
|
21
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
19
22
|
{{#if (eq provider "sqlite")}}
|
|
20
|
-
const databaseUrl =
|
|
23
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
21
24
|
{{else}}
|
|
22
|
-
const databaseUrl =
|
|
25
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
23
26
|
if (!databaseUrl) {
|
|
24
27
|
throw new Error("DATABASE_URL is required");
|
|
25
28
|
}
|
|
@@ -39,7 +42,7 @@ const adapter = new PrismaPg({
|
|
|
39
42
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
43
|
{{/if}}
|
|
41
44
|
{{#if (eq provider "sqlite")}}
|
|
42
|
-
const adapter = new
|
|
45
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
43
46
|
url: databaseUrl,
|
|
44
47
|
});
|
|
45
48
|
{{/if}}
|
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
|
+
{{#if (eq packageManager "deno")}}
|
|
7
|
+
"dev": "deno run -A --env-file=.env --watch src/index.ts",
|
|
8
|
+
"build": "deno check src/index.ts",
|
|
9
|
+
"start": "deno run -A --env-file=.env src/index.ts",
|
|
10
|
+
"typecheck": "deno check src/index.ts"
|
|
11
|
+
{{else}}
|
|
6
12
|
"dev": "tsx watch src/index.ts",
|
|
7
13
|
"build": "tsc",
|
|
8
14
|
"start": "node dist/src/index.js",
|
|
9
15
|
"typecheck": "tsc --noEmit"
|
|
16
|
+
{{/if}}
|
|
10
17
|
},
|
|
11
18
|
"dependencies": {
|
|
12
19
|
"@hono/node-server": "^1.19.9",
|
|
@@ -10,13 +10,19 @@
|
|
|
10
10
|
"packages/*"
|
|
11
11
|
],
|
|
12
12
|
"scripts": {
|
|
13
|
+
{{#if (eq packageManager "deno")}}
|
|
14
|
+
"build": "deno task --filter=@repo/db build && deno task --filter=@repo/api build",
|
|
15
|
+
"dev": "deno task --filter=@repo/api dev",
|
|
16
|
+
"typecheck": "deno task --filter=@repo/db typecheck && deno task --filter=@repo/api typecheck",
|
|
17
|
+
{{else}}
|
|
13
18
|
"build": "turbo run build",
|
|
14
19
|
"dev": "turbo run dev --filter=@repo/api",
|
|
15
20
|
"typecheck": "turbo run typecheck",
|
|
16
|
-
|
|
17
|
-
"db:
|
|
18
|
-
"db:
|
|
19
|
-
"db:
|
|
21
|
+
{{/if}}
|
|
22
|
+
"db:generate": "{{runScriptInDirectoryCommand packageManager "packages/db" "db:generate"}}",
|
|
23
|
+
"db:push": "{{runScriptInDirectoryCommand packageManager "packages/db" "db:push"}}",
|
|
24
|
+
"db:migrate": "{{runScriptInDirectoryCommand packageManager "packages/db" "db:migrate"}}",
|
|
25
|
+
"db:seed": "{{runScriptInDirectoryCommand packageManager "packages/db" "db:seed"}}"
|
|
20
26
|
},
|
|
21
27
|
"devDependencies": {
|
|
22
28
|
"turbo": "^2.5.6"
|
|
@@ -6,8 +6,13 @@
|
|
|
6
6
|
".": "./src/index.ts"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
|
+
{{#if (eq packageManager "deno")}}
|
|
10
|
+
"build": "deno check src/index.ts",
|
|
11
|
+
"typecheck": "deno check src/index.ts"
|
|
12
|
+
{{else}}
|
|
9
13
|
"build": "tsc",
|
|
10
14
|
"typecheck": "tsc --noEmit"
|
|
15
|
+
{{/if}}
|
|
11
16
|
},
|
|
12
17
|
"devDependencies": {
|
|
13
18
|
"@types/node": "^24.3.0",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{{#if (requiresPrismaConfigDotenvImport this.packageManager)}}
|
|
2
|
+
import "dotenv/config";
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { defineConfig, env } from "prisma/config";
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
schema: "prisma/schema.prisma",
|
|
8
|
+
migrations: {
|
|
9
|
+
path: "prisma/migrations",
|
|
10
|
+
seed: "{{seedCommand this.packageManager}}",
|
|
11
|
+
},
|
|
12
|
+
datasource: {
|
|
13
|
+
url: env("DATABASE_URL"),
|
|
14
|
+
},
|
|
15
|
+
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
{{#unless (eq packageManager "deno")}}
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { fileURLToPath } from "node:url";
|
|
3
4
|
import dotenv from "dotenv";
|
|
4
|
-
|
|
5
|
+
{{/unless}}
|
|
6
|
+
import { PrismaClient } from "./generated/prisma/client{{#if (eq packageManager "deno")}}.ts{{/if}}";
|
|
5
7
|
{{#if (eq provider "postgresql")}}
|
|
6
8
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
7
9
|
{{/if}}
|
|
@@ -12,19 +14,22 @@ import { PrismaPg } from "@prisma/adapter-pg";
|
|
|
12
14
|
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
13
15
|
{{/if}}
|
|
14
16
|
{{#if (eq provider "sqlite")}}
|
|
15
|
-
import {
|
|
17
|
+
import { {{sqliteAdapterClass packageManager}} } from "{{sqliteAdapterPackage packageManager}}";
|
|
16
18
|
{{/if}}
|
|
17
19
|
{{#if (eq provider "sqlserver")}}
|
|
18
20
|
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
19
21
|
{{/if}}
|
|
20
22
|
|
|
23
|
+
{{#unless (eq packageManager "deno")}}
|
|
21
24
|
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
22
25
|
dotenv.config({ path: path.resolve(moduleDir, "../.env"), quiet: true });
|
|
26
|
+
{{/unless}}
|
|
23
27
|
|
|
28
|
+
const rawDatabaseUrl = process.env.DATABASE_URL;
|
|
24
29
|
{{#if (eq provider "sqlite")}}
|
|
25
|
-
const databaseUrl =
|
|
30
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim() || "file:./dev.db";
|
|
26
31
|
{{else}}
|
|
27
|
-
const databaseUrl =
|
|
32
|
+
const databaseUrl = (rawDatabaseUrl ?? "").trim();
|
|
28
33
|
if (!databaseUrl) {
|
|
29
34
|
throw new Error("DATABASE_URL is required");
|
|
30
35
|
}
|
|
@@ -44,7 +49,7 @@ const adapter = new PrismaPg({
|
|
|
44
49
|
const adapter = new PrismaMariaDb(databaseUrl);
|
|
45
50
|
{{/if}}
|
|
46
51
|
{{#if (eq provider "sqlite")}}
|
|
47
|
-
const adapter = new
|
|
52
|
+
const adapter = new {{sqliteAdapterClass packageManager}}({
|
|
48
53
|
url: databaseUrl,
|
|
49
54
|
});
|
|
50
55
|
{{/if}}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
import { defineConfig, env } from "prisma/config";
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
schema: "prisma/schema.prisma",
|
|
6
|
-
migrations: {
|
|
7
|
-
path: "prisma/migrations",
|
|
8
|
-
seed: "tsx prisma/seed.ts",
|
|
9
|
-
},
|
|
10
|
-
datasource: {
|
|
11
|
-
url: env("DATABASE_URL"),
|
|
12
|
-
},
|
|
13
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
import { defineConfig, env } from "prisma/config";
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
schema: "prisma/schema.prisma",
|
|
6
|
-
migrations: {
|
|
7
|
-
path: "prisma/migrations",
|
|
8
|
-
seed: "tsx prisma/seed.ts",
|
|
9
|
-
},
|
|
10
|
-
datasource: {
|
|
11
|
-
url: env("DATABASE_URL"),
|
|
12
|
-
},
|
|
13
|
-
});
|