UNPKG

dry-node

Version:

Initialiseur de structure Node Express typée et modulaire

50 lines (42 loc) 2.19 kB
#!/usr/bin/env node const chalk = require("chalk"); const path = require("path"); const fs = require("fs"); const fsExtra = require("fs-extra"); console.log(chalk.cyan("\n🚀 Initialisation du dossier applications...\n")); try { const sourceAppContent = path.join(__dirname, "..", "dry-init", "applications"); const targetAppRoot = path.join(process.cwd(), "dry-init", "applications"); const packagePath = path.join(process.cwd(), "package.json"); // 1. Créer le dossier dry-init/applications/ si absent if (!fs.existsSync(targetAppRoot)) { fs.mkdirSync(targetAppRoot, { recursive: true }); console.log(chalk.green("✅ Dossier dry-init/applications/ créé")); } else { console.log(chalk.yellow("ℹ️ Dossier dry-init/applications/ déjà présent")); } // 2. Copier le contenu de node_modules vers dry-init/applications/ if (!fs.existsSync(sourceAppContent)) { console.error(chalk.red("❌ Le dossier source dry-init/applications est introuvable dans le module.")); process.exit(1); } fsExtra.copySync(sourceAppContent, targetAppRoot, { overwrite: true }); console.log(chalk.green("✅ Contenu copié dans dry-init/applications/")); // 3. Injecter le script dry dans package.json if (fs.existsSync(packagePath)) { const pkg = JSON.parse(fs.readFileSync(packagePath, "utf8")); pkg.scripts = pkg.scripts || {}; if (!pkg.scripts["dry"]) { pkg.scripts["dry"] = "node node_modules/dry-node/dry-init/dry-init-api.js"; fs.writeFileSync(packagePath, JSON.stringify(pkg, null, 2), "utf8"); console.log(chalk.green("✅ Script npm run dry injecté dans package.json")); } else { console.log(chalk.yellow("ℹ️ Script dry déjà présent dans package.json")); } } else { console.warn(chalk.red("⚠️ Aucun package.json trouvé. Impossible d’injecter le script dry.")); } console.log(chalk.green("\n✅ Initialisation terminée avec succès !")); } catch (error) { console.error(chalk.red("❌ Erreur Dry Init :"), error); }