You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
2 years ago
|
'use strict';
|
||
|
|
||
|
var path = require('path');
|
||
|
var copyProps = require('copy-props');
|
||
|
|
||
|
var toFrom = {
|
||
|
configPath: 'flags.gulpfile',
|
||
|
configBase: 'flags.gulpfile',
|
||
|
require: 'flags.require',
|
||
|
nodeFlags: 'flags.nodeFlags',
|
||
|
};
|
||
|
|
||
|
function mergeConfigToEnvFlags(env, config, cliOpts) {
|
||
|
// This must reverse because `flags.gulpfile` determines 2 different properties
|
||
|
var reverse = true;
|
||
|
return copyProps(env, config, toFrom, convert, reverse);
|
||
|
|
||
|
function convert(configInfo, envInfo) {
|
||
|
if (envInfo.keyChain === 'configBase') {
|
||
|
if (cliOpts.gulpfile === undefined) {
|
||
|
return path.dirname(configInfo.value);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (envInfo.keyChain === 'configPath') {
|
||
|
if (cliOpts.gulpfile === undefined) {
|
||
|
return configInfo.value;
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (envInfo.keyChain === 'require') {
|
||
|
return [].concat(envInfo.value, configInfo.value);
|
||
|
}
|
||
|
|
||
|
/* istanbul ignore else */
|
||
|
if (envInfo.keyChain === 'nodeFlags') {
|
||
|
return [].concat(configInfo.value || []);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = mergeConfigToEnvFlags;
|