UNPKG

create-node-spark

Version:
70 lines (62 loc) 2.46 kB
import { writeFile } from "../utils/fileSystem.js"; import path from "path"; export async function setupEnv(projectName, language, database) { try { const extension = language === "TypeScript" ? "ts" : "js"; // Base environment variables let envContent = `PORT=3000\n`; // Add database-specific environment variables if (database === 'MongoDB') { envContent += `MONGO_URI=mongodb+srv://<username>:<password>@cluster0.m8oca.mongodb.net/<database_name>?retryWrites=true&w=majority&appName=Cluster0\n`; } else if (database === 'MySQL') { envContent += `MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_DATABASE=your_database_name MYSQL_USER=root MYSQL_PASSWORD=your_password\n`; } else if (database === 'PostgreSQL') { envContent += `# PostgreSQL Connection String # Format: postgresql://username:password@localhost:5432/database_name DATABASE_URL="postgresql://username:password@localhost:5432/your_database_name"\n`; } const envPath = path.join(process.cwd(), ".env"); writeFile(envPath, envContent.trim(), "utf-8"); const configEnvPath = path.join(process.cwd(), "src", "config", `env.config.${extension}`); // Create environment config based on selected database let envConfigObject = ` PORT: process.env.PORT || 3000,\n`; if (database === 'MongoDB') { envConfigObject += ` MONGO_URI: process.env.MONGO_URI,\n`; } else if (database === 'MySQL') { envConfigObject += ` MYSQL_HOST: process.env.MYSQL_HOST, MYSQL_PORT: process.env.MYSQL_PORT, MYSQL_DATABASE: process.env.MYSQL_DATABASE, MYSQL_USER: process.env.MYSQL_USER, MYSQL_PASSWORD: process.env.MYSQL_PASSWORD,\n`; } else if (database === 'PostgreSQL') { envConfigObject += ` DATABASE_URL: process.env.DATABASE_URL,\n`; } const configEnvContent = language === "TypeScript" ? ` import dotenv from "dotenv"; dotenv.config(); const ENV : any = { ${envConfigObject}}; export default ENV; ` : ` import dotenv from "dotenv"; dotenv.config(); const ENV = { ${envConfigObject}}; export default ENV; `; writeFile(configEnvPath, configEnvContent.trim(), "utf-8"); } catch (error) { throw error; } } //# sourceMappingURL=setupEnv.js.map