add Turso database setup functionality to project creation

This commit is contained in:
fgrreloaded
2025-02-11 20:27:23 +05:30
parent a194cbc220
commit 8a77febd7e

View File

@@ -6,47 +6,42 @@ import { setupTurso } from "./helpers/db-setup";
import type { ProjectOptions } from "./types"; import type { ProjectOptions } from "./types";
export async function createProject(options: ProjectOptions) { export async function createProject(options: ProjectOptions) {
const spinner = ora("Creating project directory...").start(); const spinner = ora("Creating project directory...").start();
const projectDir = path.resolve(process.cwd(), options.projectName); const projectDir = path.resolve(process.cwd(), options.projectName);
try { try {
await fs.ensureDir(projectDir); await fs.ensureDir(projectDir);
spinner.succeed(); spinner.succeed();
spinner.start("Cloning template repository..."); spinner.start("Cloning template repository...");
await execa("git", [ await execa("git", [
"clone", "degit",
"--depth", "https://github.com/AmanVarshney01/Better-T-Stack.git",
"1", projectDir,
"https://github.com/AmanVarshney01/Better-T-Stack.git", ]);
projectDir, spinner.succeed();
]);
spinner.succeed();
spinner.start("Removing template .git folder...");
await fs.remove(path.join(projectDir, ".git"));
spinner.succeed();
if (options.git) { if (options.git) {
spinner.start("Initializing git repository..."); spinner.start("Initializing git repository...");
await execa("git", ["init"], { cwd: projectDir }); await execa("git", ["init"], { cwd: projectDir });
spinner.succeed(); spinner.succeed();
} }
spinner.start("Installing dependencies..."); spinner.start("Installing dependencies...");
await execa("bun", ["install"], { cwd: projectDir }); await execa("bun", ["install"], { cwd: projectDir });
spinner.succeed(); spinner.succeed();
if (options.database === "libsql") { if (options.database === "libsql") {
await setupTurso(projectDir); await setupTurso(projectDir);
} }
console.log("\n✨ Project created successfully!\n"); console.log("\n✨ Project created successfully!\n");
console.log("Next steps:"); console.log("Next steps:");
console.log(` cd ${options.projectName}`); console.log(` cd ${options.projectName}`);
console.log(" bun dev"); console.log(" bun dev");
} catch (error) { } catch (error) {
spinner.fail("Failed to create project"); spinner.fail("Failed to create project");
console.error(error); console.error(error);
process.exit(1); process.exit(1);
} }
} }