create-better-t-stack 2.36.0 → 2.36.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/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -128,7 +128,7 @@ const dependencyVersionMap = {
|
|
|
128
128
|
"@opennextjs/cloudflare": "^1.3.0",
|
|
129
129
|
"nitro-cloudflare-dev": "^0.2.2",
|
|
130
130
|
"@sveltejs/adapter-cloudflare": "^7.2.1",
|
|
131
|
-
"@cloudflare/workers-types": "^4.
|
|
131
|
+
"@cloudflare/workers-types": "^4.20250822.0",
|
|
132
132
|
alchemy: "^0.62.1",
|
|
133
133
|
nitropack: "^2.12.4",
|
|
134
134
|
dotenv: "^17.2.1"
|
|
@@ -2990,7 +2990,8 @@ async function setupAlchemyServerDeploy(serverDir, _packageManager) {
|
|
|
2990
2990
|
"alchemy",
|
|
2991
2991
|
"wrangler",
|
|
2992
2992
|
"@types/node",
|
|
2993
|
-
"dotenv"
|
|
2993
|
+
"dotenv",
|
|
2994
|
+
"@cloudflare/workers-types"
|
|
2994
2995
|
],
|
|
2995
2996
|
projectDir: serverDir
|
|
2996
2997
|
});
|
|
@@ -5627,7 +5628,7 @@ async function getDockerStatus(database) {
|
|
|
5627
5628
|
async function displayPostInstallInstructions(config) {
|
|
5628
5629
|
const { database, relativePath, packageManager, depsInstalled, orm, addons, runtime, frontend, backend, dbSetup, webDeploy, serverDeploy } = config;
|
|
5629
5630
|
const isConvex = backend === "convex";
|
|
5630
|
-
const runCmd = packageManager === "npm" ? "npm run" : packageManager;
|
|
5631
|
+
const runCmd = packageManager === "npm" ? "npm run" : packageManager === "pnpm" ? "pnpm run" : "bun run";
|
|
5631
5632
|
const cdCmd = `cd ${relativePath}`;
|
|
5632
5633
|
const hasHuskyOrBiome = addons?.includes("husky") || addons?.includes("biome");
|
|
5633
5634
|
const databaseInstructions = !isConvex && database !== "none" ? await getDatabaseInstructions(database, orm, runCmd, runtime, dbSetup, serverDeploy) : "";
|
|
@@ -5716,21 +5717,21 @@ async function getDatabaseInstructions(database, orm, runCmd, _runtime, dbSetup,
|
|
|
5716
5717
|
instructions.push(`${pc.cyan("1.")} Login to Cloudflare: ${pc.white(`${packageManager} wrangler login`)}`);
|
|
5717
5718
|
instructions.push(`${pc.cyan("2.")} Create D1 database: ${pc.white(`${packageManager} wrangler d1 create your-database-name`)}`);
|
|
5718
5719
|
instructions.push(`${pc.cyan("3.")} Update apps/server/wrangler.jsonc with database_id and database_name`);
|
|
5719
|
-
instructions.push(`${pc.cyan("4.")} Generate migrations: ${pc.white(`cd apps/server && ${
|
|
5720
|
+
instructions.push(`${pc.cyan("4.")} Generate migrations: ${pc.white(`cd apps/server && ${runCmd} db:generate`)}`);
|
|
5720
5721
|
instructions.push(`${pc.cyan("5.")} Apply migrations locally: ${pc.white(`${packageManager} wrangler d1 migrations apply YOUR_DB_NAME --local`)}`);
|
|
5721
5722
|
instructions.push(`${pc.cyan("6.")} Apply migrations to production: ${pc.white(`${packageManager} wrangler d1 migrations apply YOUR_DB_NAME`)}`);
|
|
5722
5723
|
}
|
|
5723
|
-
if (dbSetup === "d1" && serverDeploy === "alchemy") {}
|
|
5724
|
+
if (dbSetup === "d1" && serverDeploy === "alchemy") instructions.push(`${pc.yellow("NOTE:")} D1 migrations are automatically handled by Alchemy`);
|
|
5724
5725
|
if (orm === "prisma") {
|
|
5725
5726
|
if (dbSetup === "turso") instructions.push(`${pc.yellow("NOTE:")} Turso support with Prisma is in Early Access and requires\n additional setup. Learn more at:\n https://www.prisma.io/docs/orm/overview/databases/turso`);
|
|
5726
5727
|
if (database === "mongodb" && dbSetup === "docker") instructions.push(`${pc.yellow("WARNING:")} Prisma + MongoDB + Docker combination\n may not work.`);
|
|
5727
5728
|
if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
|
|
5728
5729
|
instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
|
5729
|
-
instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
|
5730
|
+
if (!(dbSetup === "d1" && serverDeploy === "alchemy")) instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
|
5730
5731
|
} else if (orm === "drizzle") {
|
|
5731
5732
|
if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
|
|
5732
5733
|
if (dbSetup !== "d1") instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
|
5733
|
-
instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
|
5734
|
+
if (!(dbSetup === "d1" && serverDeploy === "alchemy")) instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
|
5734
5735
|
if (database === "sqlite" && dbSetup !== "d1") instructions.push(`${pc.cyan("•")} Start local DB (if needed): ${`cd apps/server && ${runCmd} db:local`}`);
|
|
5735
5736
|
} else if (orm === "mongoose") {
|
|
5736
5737
|
if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
|
|
@@ -5760,9 +5761,9 @@ function getWranglerDeployInstructions(runCmd, webDeploy, serverDeploy) {
|
|
|
5760
5761
|
}
|
|
5761
5762
|
function getAlchemyDeployInstructions(runCmd, webDeploy, serverDeploy) {
|
|
5762
5763
|
const instructions = [];
|
|
5763
|
-
if (webDeploy === "alchemy" && serverDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy web
|
|
5764
|
-
else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy server
|
|
5765
|
-
else if (webDeploy === "alchemy" && serverDeploy === "alchemy") instructions.push(`${pc.bold("Deploy
|
|
5764
|
+
if (webDeploy === "alchemy" && serverDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy web with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/web && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/web && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/web && ${runCmd} destroy`}`);
|
|
5765
|
+
else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy server with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/server && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/server && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/server && ${runCmd} destroy`}`);
|
|
5766
|
+
else if (webDeploy === "alchemy" && serverDeploy === "alchemy") instructions.push(`${pc.bold("Deploy with Alchemy:")}\n${pc.cyan("•")} Dev: ${`${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`${runCmd} destroy`}`);
|
|
5766
5767
|
return instructions.length ? `\n${instructions.join("\n")}` : "";
|
|
5767
5768
|
}
|
|
5768
5769
|
|
|
@@ -5801,13 +5802,13 @@ async function updateRootPackageJson(projectDir, options) {
|
|
|
5801
5802
|
if (options.backend === "convex") scripts["dev:setup"] = `turbo -F ${backendPackageName} dev:setup`;
|
|
5802
5803
|
if (needsDbScripts) {
|
|
5803
5804
|
scripts["db:push"] = `turbo -F ${backendPackageName} db:push`;
|
|
5804
|
-
scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
|
|
5805
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
|
|
5805
5806
|
if (options.orm === "prisma") {
|
|
5806
5807
|
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
|
5807
|
-
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
|
5808
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
|
5808
5809
|
} else if (options.orm === "drizzle") {
|
|
5809
5810
|
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
|
5810
|
-
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
|
5811
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
|
5811
5812
|
}
|
|
5812
5813
|
}
|
|
5813
5814
|
if (options.dbSetup === "docker") {
|
|
@@ -5826,13 +5827,13 @@ async function updateRootPackageJson(projectDir, options) {
|
|
|
5826
5827
|
if (options.backend === "convex") scripts["dev:setup"] = `pnpm --filter ${backendPackageName} dev:setup`;
|
|
5827
5828
|
if (needsDbScripts) {
|
|
5828
5829
|
scripts["db:push"] = `pnpm --filter ${backendPackageName} db:push`;
|
|
5829
|
-
scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
|
|
5830
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
|
|
5830
5831
|
if (options.orm === "prisma") {
|
|
5831
5832
|
scripts["db:generate"] = `pnpm --filter ${backendPackageName} db:generate`;
|
|
5832
|
-
scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
|
|
5833
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
|
|
5833
5834
|
} else if (options.orm === "drizzle") {
|
|
5834
5835
|
scripts["db:generate"] = `pnpm --filter ${backendPackageName} db:generate`;
|
|
5835
|
-
scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
|
|
5836
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
|
|
5836
5837
|
}
|
|
5837
5838
|
}
|
|
5838
5839
|
if (options.dbSetup === "docker") {
|
|
@@ -5851,13 +5852,13 @@ async function updateRootPackageJson(projectDir, options) {
|
|
|
5851
5852
|
if (options.backend === "convex") scripts["dev:setup"] = `npm run dev:setup --workspace ${backendPackageName}`;
|
|
5852
5853
|
if (needsDbScripts) {
|
|
5853
5854
|
scripts["db:push"] = `npm run db:push --workspace ${backendPackageName}`;
|
|
5854
|
-
scripts["db:studio"] = `npm run db:studio --workspace ${backendPackageName}`;
|
|
5855
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `npm run db:studio --workspace ${backendPackageName}`;
|
|
5855
5856
|
if (options.orm === "prisma") {
|
|
5856
5857
|
scripts["db:generate"] = `npm run db:generate --workspace ${backendPackageName}`;
|
|
5857
|
-
scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
|
|
5858
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
|
|
5858
5859
|
} else if (options.orm === "drizzle") {
|
|
5859
5860
|
scripts["db:generate"] = `npm run db:generate --workspace ${backendPackageName}`;
|
|
5860
|
-
scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
|
|
5861
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
|
|
5861
5862
|
}
|
|
5862
5863
|
}
|
|
5863
5864
|
if (options.dbSetup === "docker") {
|
|
@@ -5876,13 +5877,13 @@ async function updateRootPackageJson(projectDir, options) {
|
|
|
5876
5877
|
if (options.backend === "convex") scripts["dev:setup"] = `bun run --filter ${backendPackageName} dev:setup`;
|
|
5877
5878
|
if (needsDbScripts) {
|
|
5878
5879
|
scripts["db:push"] = `bun run --filter ${backendPackageName} db:push`;
|
|
5879
|
-
scripts["db:studio"] = `bun run --filter ${backendPackageName} db:studio`;
|
|
5880
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `bun run --filter ${backendPackageName} db:studio`;
|
|
5880
5881
|
if (options.orm === "prisma") {
|
|
5881
5882
|
scripts["db:generate"] = `bun run --filter ${backendPackageName} db:generate`;
|
|
5882
|
-
scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
|
|
5883
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
|
|
5883
5884
|
} else if (options.orm === "drizzle") {
|
|
5884
5885
|
scripts["db:generate"] = `bun run --filter ${backendPackageName} db:generate`;
|
|
5885
|
-
scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
|
|
5886
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
|
|
5886
5887
|
}
|
|
5887
5888
|
}
|
|
5888
5889
|
if (options.dbSetup === "docker") {
|
|
@@ -5920,14 +5921,14 @@ async function updateServerPackageJson(projectDir, options) {
|
|
|
5920
5921
|
if (options.database === "sqlite" && options.orm === "drizzle" && options.dbSetup !== "d1") scripts["db:local"] = "turso dev --db-file local.db";
|
|
5921
5922
|
if (options.orm === "prisma") {
|
|
5922
5923
|
scripts["db:push"] = "prisma db push";
|
|
5923
|
-
scripts["db:studio"] = "prisma studio";
|
|
5924
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = "prisma studio";
|
|
5924
5925
|
scripts["db:generate"] = "prisma generate";
|
|
5925
|
-
scripts["db:migrate"] = "prisma migrate dev";
|
|
5926
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = "prisma migrate dev";
|
|
5926
5927
|
} else if (options.orm === "drizzle") {
|
|
5927
5928
|
scripts["db:push"] = "drizzle-kit push";
|
|
5928
|
-
scripts["db:studio"] = "drizzle-kit studio";
|
|
5929
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = "drizzle-kit studio";
|
|
5929
5930
|
scripts["db:generate"] = "drizzle-kit generate";
|
|
5930
|
-
scripts["db:migrate"] = "drizzle-kit migrate";
|
|
5931
|
+
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = "drizzle-kit migrate";
|
|
5931
5932
|
}
|
|
5932
5933
|
}
|
|
5933
5934
|
if (options.dbSetup === "docker") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-better-t-stack",
|
|
3
|
-
"version": "2.36.
|
|
3
|
+
"version": "2.36.2",
|
|
4
4
|
"description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
{{else}}
|
|
23
23
|
"node",
|
|
24
24
|
"bun"
|
|
25
|
-
{{/if}}
|
|
25
|
+
{{/if}}{{#if (eq serverDeploy "alchemy")}},
|
|
26
|
+
"@cloudflare/workers-types"{{/if}}
|
|
26
27
|
]{{#unless (or (eq backend "convex") (eq backend "none"))}},
|
|
27
28
|
"composite": true{{/unless}},
|
|
28
29
|
"jsx": "react-jsx"{{#if (eq backend "hono")}},
|