UNPKG

app-wizard-cli

Version:

CLI pour gérer votre projet Nest/Angular

81 lines (80 loc) 2.64 kB
/** * @module services/config-service * Gère la lecture/écriture de ~/.appwizard */ import fs from 'fs-extra'; import * as path from 'path'; const CONFIG_FILE = '.appwizard'; export class ConfigService { constructor(targetDir = process.cwd()) { this.targetDir = targetDir; this.defaultConfig = { endpoints: { backendUrl: 'https://ycgusiyjqf.eu-west-3.awsapprunner.com', frontendUrl: 'https://bjmr5kcium.eu-west-3.awsapprunner.com', }, version: { backend: '1.0.0', frontend: '1.0.0', }, }; this.configPath = path.join(this.targetDir, CONFIG_FILE); } /** * Lit la config, et applique les valeurs par défaut pour * les parties manquantes (endpoints ou version). */ async getConfig() { let fileData = {}; if (await fs.pathExists(this.configPath)) { try { fileData = await fs.readJSON(this.configPath); } catch { // ignore malformed file } } const endpoints = { ...this.defaultConfig.endpoints, ...(fileData.endpoints || {}), }; const version = { ...this.defaultConfig.version, ...(fileData.version || {}), }; return { endpoints, version }; } /** * Met à jour uniquement la section `endpoints`, en * conservant la version existante (ou la valeur par défaut). */ async setEndpointsConfig(endpoints) { let fileData = {}; if (await fs.pathExists(this.configPath)) { try { fileData = await fs.readJSON(this.configPath); } catch { } } const version = fileData.version || this.defaultConfig.version; const newConfig = { endpoints, version }; await fs.writeJSON(this.configPath, newConfig, { spaces: 2 }); console.log('✅ Endpoints mis à jour dans', this.configPath); } /** * Supprime le fichier de configuration. * Utilisé pour réinitialiser la config. */ async clear() { await fs.remove(this.configPath); console.log('⚠️ Configuration supprimée.'); } /** * Réinitialise la configuration aux valeurs par défaut. * Utilisé pour réinitialiser la config. */ async resetToDefault() { await fs.writeJSON(this.configPath, this.defaultConfig, { spaces: 2 }); console.log('⚠️ Configuration réinitialisée aux valeurs par défaut.'); } }