mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
feat(cli): prisma + workers, prisma + turso, planetscale (postgres/mysql) support (#567)
This commit is contained in:
@@ -12,7 +12,8 @@ export async function setupNextAlchemyDeploy(
|
||||
if (!(await fs.pathExists(webAppDir))) return;
|
||||
|
||||
await addPackageDependency({
|
||||
devDependencies: ["alchemy", "dotenv"],
|
||||
dependencies: ["@opennextjs/cloudflare"],
|
||||
devDependencies: ["alchemy", "dotenv", "wrangler"],
|
||||
projectDir: webAppDir,
|
||||
});
|
||||
|
||||
@@ -29,4 +30,22 @@ export async function setupNextAlchemyDeploy(
|
||||
}
|
||||
await fs.writeJson(pkgPath, pkg, { spaces: 2 });
|
||||
}
|
||||
|
||||
const openNextConfigPath = path.join(webAppDir, "open-next.config.ts");
|
||||
const openNextConfigContent = `import { defineCloudflareConfig } from "@opennextjs/cloudflare";
|
||||
|
||||
export default defineCloudflareConfig({});
|
||||
`;
|
||||
|
||||
await fs.writeFile(openNextConfigPath, openNextConfigContent);
|
||||
|
||||
const gitignorePath = path.join(webAppDir, ".gitignore");
|
||||
if (await fs.pathExists(gitignorePath)) {
|
||||
const gitignoreContent = await fs.readFile(gitignorePath, "utf-8");
|
||||
if (!gitignoreContent.includes("wrangler.jsonc")) {
|
||||
await fs.appendFile(gitignorePath, "\nwrangler.jsonc\n");
|
||||
}
|
||||
} else {
|
||||
await fs.writeFile(gitignorePath, "wrangler.jsonc\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import fs from "fs-extra";
|
||||
import pc from "picocolors";
|
||||
import type { PackageManager, ProjectConfig } from "../../types";
|
||||
import { addPackageDependency } from "../../utils/add-package-deps";
|
||||
import { getPackageExecutionCommand } from "../../utils/package-runner";
|
||||
|
||||
export async function setupServerDeploy(config: ProjectConfig) {
|
||||
const { serverDeploy, webDeploy, projectDir } = config;
|
||||
@@ -64,8 +65,11 @@ async function generateCloudflareWorkerTypes({
|
||||
const s = spinner();
|
||||
try {
|
||||
s.start("Generating Cloudflare Workers types...");
|
||||
const runCmd = packageManager === "npm" ? "npm" : packageManager;
|
||||
await execa(runCmd, ["run", "cf-typegen"], { cwd: serverDir });
|
||||
const runCmd = getPackageExecutionCommand(
|
||||
packageManager,
|
||||
"wrangler types --env-interface CloudflareBindings",
|
||||
);
|
||||
await execa(runCmd, { cwd: serverDir, shell: true });
|
||||
s.stop("Cloudflare Workers types generated successfully!");
|
||||
} catch {
|
||||
s.stop(pc.yellow("Failed to generate Cloudflare Workers types"));
|
||||
|
||||
Reference in New Issue
Block a user