39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
var config = {
|
|
port: 8080,
|
|
mode: 'prod',
|
|
options: {
|
|
api: {
|
|
domain: 'api.polarislearning.org',
|
|
secure: true
|
|
},
|
|
minify: false,
|
|
assetScrambling: false,
|
|
allowDangerousTemplateInsert: true,
|
|
filtering: true
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @param {config} userConfig
|
|
* @returns {config}
|
|
*/
|
|
export const useConfig = (userConfig) => {
|
|
config = {
|
|
...config,
|
|
...userConfig,
|
|
mode: (process.argv[2] === 'prod' || process.argv[2] === 'dev' ? process.argv[2] : (process.argv[3] === 'prod' || process.argv[3] === 'dev' ? process.argv[3] : (userConfig.mode === 'prod' || userConfig.mode === 'dev' ? userConfig.mode : 'prod'))),
|
|
port: (process.argv[2] !== 'prod' && process.argv[2] !== 'dev' && Boolean(Number(process.argv[2]))) ? process.argv[2] : (Boolean(Number(process.argv[3])) ? process.argv[3] : (Boolean(Number(userConfig.port)) ? userConfig.port : (mode === 'prod' ? 80 : 8080)))
|
|
};
|
|
|
|
Object.keys(userConfig).forEach(option => {
|
|
if (typeof config[option] === 'function') config[option] = config[option]();
|
|
});
|
|
|
|
return config;
|
|
}
|
|
|
|
/**
|
|
* @returns {config}
|
|
*/
|
|
export const getConfig = () => config;
|
|
export default useConfig; |