resources/frontend/compiler/index.js
const fs = require('fs'),
path = require('path'),
isObject = require('lodash/isObject'),
merge = require('lodash/merge');
module.exports = () => {
console.log('Reading modules config file...');
const p = path.join(__dirname, '..', 'etc', 'modules.config.json');
if (!fs.existsSync(path.join(__dirname, '..', 'generated'))) {
fs.mkdirSync(path.join(__dirname, '..', 'generated'));
}
if (!fs.existsSync(p)) {
console.error('modules.config.json was not found in [etc] folder');
return undefined;
}
let moduleList = require(p);
let fdArray = ['export default ['];
if (fs.existsSync(path.join(__dirname, '..', 'etc', `modules.${process.env.NODE_ENV}.json`))) {
moduleList = merge(
moduleList,
require(path.join(__dirname, '..', 'etc', `modules.${process.env.NODE_ENV}.json`)),
);
}
if (fs.existsSync(path.join(__dirname, '..', 'etc', 'modules.local.json'))) {
moduleList = merge(moduleList, require(path.join(__dirname, '..', 'etc', 'modules.local.json')));
}
Object.keys(moduleList).forEach(moduleName => {
if (isObject(moduleList[moduleName])) {
const moduleConfig = moduleList[moduleName];
if (
moduleConfig.type === 'package' &&
(Object.prototype.hasOwnProperty.call(moduleConfig, 'enabled') ? moduleConfig.enabled : true)
) {
fdArray.push(` () => require('${moduleConfig.ref}'),`);
console.log(`${moduleName} => added package as static require dependency`);
}
}
});
fdArray.push('];');
fs.writeFileSync(path.join(__dirname, '..', 'generated', 'module.require.js'), fdArray.join('\n'));
console.log('Finished...');
};