2022-01-13 13:00:31 +00:00
|
|
|
/*******************************
|
|
|
|
Set-up
|
|
|
|
*******************************/
|
|
|
|
|
2023-08-17 09:47:40 +00:00
|
|
|
const
|
|
|
|
// npm dependencies
|
|
|
|
extend = require('extend'),
|
|
|
|
fs = require('fs'),
|
|
|
|
path = require('path'),
|
|
|
|
requireDotFile = require('require-dot-file'),
|
|
|
|
|
|
|
|
// semantic.json defaults
|
|
|
|
defaults = require('./defaults'),
|
|
|
|
config = require('./project/config')
|
|
|
|
;
|
2022-01-13 13:00:31 +00:00
|
|
|
|
2023-08-17 09:47:40 +00:00
|
|
|
let
|
|
|
|
// Final config object
|
|
|
|
gulpConfig = {},
|
2022-01-13 13:00:31 +00:00
|
|
|
|
2023-08-17 09:47:40 +00:00
|
|
|
// semantic.json settings
|
|
|
|
userConfig
|
2022-01-13 13:00:31 +00:00
|
|
|
;
|
|
|
|
|
|
|
|
/*******************************
|
|
|
|
User Config
|
|
|
|
*******************************/
|
|
|
|
|
|
|
|
try {
|
2023-08-17 09:47:40 +00:00
|
|
|
// looks for config file across all parent directories
|
|
|
|
userConfig = requireDotFile('semantic.json', process.cwd());
|
|
|
|
if (userConfig.valueOf() === false) {
|
|
|
|
console.error('No semantic.json config found');
|
|
|
|
}
|
|
|
|
} catch (error) {
|
|
|
|
if (error.code === 'MODULE_NOT_FOUND') {
|
|
|
|
console.error('require-dot-file module not found');
|
|
|
|
}
|
2022-01-13 13:00:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// extend user config with defaults
|
2023-08-17 09:47:40 +00:00
|
|
|
gulpConfig = !userConfig
|
|
|
|
? extend(true, {}, defaults)
|
|
|
|
: extend(false, {}, defaults, userConfig);
|
2022-01-13 13:00:31 +00:00
|
|
|
|
|
|
|
/*******************************
|
|
|
|
Add Derived Values
|
|
|
|
*******************************/
|
|
|
|
|
|
|
|
// adds calculated values
|
|
|
|
config.addDerivedValues(gulpConfig);
|
|
|
|
|
|
|
|
/*******************************
|
|
|
|
Export
|
|
|
|
*******************************/
|
|
|
|
|
|
|
|
module.exports = gulpConfig;
|