Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
index.js 5.64 KiB
const path = require("path");
/**
* Simple object check.
* @param item
* @returns {boolean}
*/
function isObject(item) {
return (item && typeof item === 'object' && !Array.isArray(item));
}
/**
* Permet de fusionner des objets JSON comprenant des sous-objets ou des tableaux
* @param target
* @param ...sources
* @returns Object
*/
function deepMerge(target, ...sources) {
if (!sources.length) return target;
const source = sources.shift();
if (isObject(target) && isObject(source)) {
for (const key in source) {
if (isObject(source[key])) {
if (!target[key]) Object.assign(target, {[key]: {}});
deepMerge(target[key], source[key]);
} else if (Array.isArray(target[key]) && Array.isArray(source[key])) {
for (const subKey in source[key]) {
const val = source[key][subKey];
if (-1 === target[key].indexOf(val)) {
target[key].push(val);
}
}
} else {
Object.assign(target, {[key]: source[key]});
}
}
}
return deepMerge(target, ...sources);
}
/**
* Retourne le répertoire racine d'UnicaenVue
*
* @returns String
*/
function unicaenVueDir() {
const path = require('path');
// répertoire racine d'UnicaenVue', en partant du répertoire actuel, donc src/Server
return path.resolve(__dirname, '../../');
}
/**
* Retourne le répertoire racine de l'application.
*
* @returns String
*/
function projectDir() {
// répertoire racine de l'application
// Attention : le script doit être lancé depuis le bon répertoire...
return process.cwd();
}
/**