Add D1 Database (#335)

This commit is contained in:
Aman Varshney
2025-06-20 09:17:32 +05:30
committed by GitHub
parent 846d70583e
commit 0c5dd2efee
14 changed files with 214 additions and 15 deletions

View File

@@ -5,6 +5,7 @@ import fs from "fs-extra";
import pc from "picocolors";
import type { ProjectConfig } from "../../types";
import { addPackageDependency } from "../../utils/add-package-deps";
import { setupCloudflareD1 } from "../database-providers/d1-setup";
import { setupMongoDBAtlas } from "../database-providers/mongodb-atlas-setup";
import { setupNeonPostgres } from "../database-providers/neon-setup";
import { setupPrismaPostgres } from "../database-providers/prisma-postgres-setup";
@@ -69,6 +70,8 @@ export async function setupDatabase(config: ProjectConfig): Promise<void> {
if (database === "sqlite" && dbSetup === "turso") {
await setupTurso(config);
} else if (database === "sqlite" && dbSetup === "d1") {
await setupCloudflareD1(config);
} else if (database === "postgres") {
if (orm === "prisma" && dbSetup === "prisma-postgres") {
await setupPrismaPostgres(config);

View File

@@ -1,5 +1,8 @@
import path from "node:path";
import { spinner } from "@clack/prompts";
import { execa } from "execa";
import fs from "fs-extra";
import pc from "picocolors";
import type { Backend, ProjectConfig } from "../../types";
import { addPackageDependency } from "../../utils/add-package-deps";
@@ -25,6 +28,43 @@ export async function setupRuntime(config: ProjectConfig): Promise<void> {
}
}
export async function generateCloudflareWorkerTypes(
config: ProjectConfig,
): Promise<void> {
if (config.runtime !== "workers") {
return;
}
const serverDir = path.join(config.projectDir, "apps/server");
if (!(await fs.pathExists(serverDir))) {
return;
}
const s = spinner();
try {
s.start("Generating Cloudflare Workers types...");
const runCmd =
config.packageManager === "npm" ? "npm" : config.packageManager;
await execa(runCmd, ["run", "cf-typegen"], {
cwd: serverDir,
});
s.stop("Cloudflare Workers types generated successfully!");
} catch {
s.stop(pc.yellow("Failed to generate Cloudflare Workers types"));
const managerCmd =
config.packageManager === "npm"
? "npm run"
: `${config.packageManager} run`;
console.warn(
`Note: You can manually run 'cd apps/server && ${managerCmd} cf-typegen' in the project directory later`,
);
}
}
async function setupBunRuntime(
serverDir: string,
_backend: Backend,