console.log(process.cwd()); const fs = require('fs'); const builder = require('./generators/generate-jsdoc'); const plant = require('./generators/generate-plantuml'); const data = require('./generators/generate-namedlist'); const tax = require('./generators/generate-tax'); const classesFront = require('./generators/generate-class'); const classesBack = require('./generators/generate-class-back'); const path = require('path'); let path1 = path.join("dist", "back"); if (!fs.existsSync(path1)) { fs.mkdirSync(path1, {recursive: true}); } // Fonction pour copier un fichier function copyFile(source, destination) { fs.mkdirSync(path.dirname(destination), {recursive: true}); fs.copyFileSync(source, destination); } function copyResources() { // Chemins source et destination const resources = [{ source: path.join(__dirname, "config", `front-${env}.json`), target: path.join(__dirname, "front", `config.json`) }, { source: path.join(__dirname, "config", `back-${env}.json`), target: path.join(__dirname, "back", `config.json`) }, { source: path.join(__dirname, "config", `front-${env}.json`), target: path.join(__dirname, "dist/front", `config.json`) }, { source: path.join(__dirname, "config", `back-${env}.json`), target: path.join(__dirname, "dist/back", `config.json`) }, { source: path.join(__dirname, "package.json"), target: path.join(__dirname, "dist", "package.json") }, { source: path.join(__dirname, "package-lock.json"), target: path.join(__dirname, "dist", "package-lock.json") }, { source: path.join(__dirname, "vite.config.js"), target: path.join(__dirname, "dist", "vite.config.js") }]; for (const resource of resources) { copyFile(resource.source, resource.target); } for (const resource of resources) { if (resource.target.endsWith("config.json")) { setConfigVersion(resource.target); } } fs.mkdirSync(path.dirname("dist/model"), {recursive: true}); fs.mkdirSync(path.dirname("dist/back"), {recursive: true}); fs.mkdirSync(path.dirname("dist/app"), {recursive: true}); fs.mkdirSync(path.dirname("dist/data"), {recursive: true}); fs.cpSync("back", "dist/back", {recursive: true}); fs.cpSync("model", "dist/model", {recursive: true}); fs.cpSync("app", "dist/app", {recursive: true}); fs.cpSync("data", "dist/data", {recursive: true}); } function updateVersion(major = false, minor = false, patch = true) { let obj; try { obj = JSON.parse(fs.readFileSync('./package.json', 'utf8')); let currentVersion = obj.version; let versions = currentVersion.split('.'); let majorVersion = versions[0]; let minorVersion = versions[1]; let patchVersion = versions[2]; if (major) { let number = Number.parseInt(majorVersion); number++; versions[0] = number; versions[1] = 0; versions[2] = 0; } else if (minor) { let number = Number.parseInt(minorVersion); number++; versions[0] = majorVersion; versions[1] = number; versions[2] = 0; } else if (patch) { let number = Number.parseInt(patchVersion); number++; versions[0] = majorVersion; versions[1] = minorVersion; versions[2] = number; } let newVersion = versions.join('.'); obj.version = newVersion; fs.writeFileSync("./package.json", JSON.stringify(obj, null, "\t"), 'utf8'); let newVar = { oldVersion: currentVersion, newVersion: newVersion }; return newVar; } catch (e) { } } function setConfigVersion(resource) { let src; try { src = JSON.parse(fs.readFileSync('./package.json', 'utf8')); let versions = src.version; target = JSON.parse(fs.readFileSync(resource, 'utf8')); target.version = versions; fs.writeFileSync(resource, JSON.stringify(target), 'utf8') } catch (e) { } } let env = "local"; let major = false; let minor = false; let patch = false; process.argv.forEach(function (val, index, array) { if (val === "-local") { env = "local" } else if (val === "-prod") { env = "prod"; } else if (val === "-patch") { patch = true; } else if (val === "-major") { major = true; } else if (val === "-minor") { minor = true; } }); if (patch||minor||major) { let updateVersion1 = updateVersion(major,minor,patch); let src = path.join(__dirname, "back", "models", "current.sql"); let tgt = path.join(__dirname, "back", "models", "sql", `version-${updateVersion1.oldVersion}-${updateVersion1.newVersion}.sql`); fs.copyFileSync(src, tgt); let writeStream = fs.createWriteStream(src); writeStream.close(); } copyResources(); builder.generateJSDocTypes('./model/DataModel.json', './types.js'); plant.generatePlantUML('./model/DataModel.json', './model.puml'); // data.generateTVA("./tva_agriculture_detaillee.csv","./data/NamedList.json"); // tax.generateTax("./tva_agriculture_detaillee.csv","./data/Tax.json"); classesFront.generateClasses('./model/DataModel.json',"./front/data/"); classesBack.generateClasses('./model/DataModel.json',"./back/data/");