Files
2024-01-24 20:28:13 +00:00

38 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
}
};
/**
* @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;