forked from kitze/custom-react-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget-custom-config.js
38 lines (34 loc) · 1.09 KB
/
get-custom-config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var customizers = require('./customizers');
function getCustomConfig(prod) {
var prod = prod || false;
var env = env || {};
var result = Object
.keys(customizers)
.reduce(function (finalConfig, customizerKey) {
var customizer = customizers[customizerKey];
if (customizer.prod === false && prod === true) {
return finalConfig;
}
var envValue = process.env['REACT_APP_' + customizerKey];
if (env && envValue && envValue !== 'false') {
if (customizer.toArray) {
var getCustomizer = (prod ? customizer.getProd : customizer.getDev) || customizer.getDev;
finalConfig[customizer.toArray].push(getCustomizer());
}
if (customizer.fileRegex) {
finalConfig.excludedFilesRegex.push(customizer.fileRegex);
}
finalConfig.values[customizerKey] = customizer.config || true;
}
return finalConfig;
}, {
presets: [],
babelPlugins: [],
plugins: [],
loaders: [],
values: {},
excludedFilesRegex: []
});
return result;
}
module.exports = getCustomConfig;