151 lines
4.8 KiB
JavaScript
151 lines
4.8 KiB
JavaScript
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/"); |