UNPKG

@talend/react-cmf

Version:

A framework built on top of best react libraries

54 lines (52 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mergeModulesAndApp; var _cmfModule = _interopRequireDefault(require("./cmfModule.merge")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } async function getModule(module) { const { init, ...syncModule } = module; if (init) { const asyncModule = await init(); return { ...syncModule, ...asyncModule }; } return syncModule; } async function find(options, buff = []) { if (options.modules) { // eslint-disable-next-line no-restricted-syntax for await (const current of options.modules) { if (!current.id) { throw new Error('a cmf.module must have an id'); } if (buff.some(({ id }) => current.id === id)) { // eslint-disable-next-line no-console console.warn(`cmf.bootstrap: 2 modules have the same id ${current.id}. This duplicated module will be skipped.`); } else { const module = await getModule(current); buff.push(module); await find(module, buff); } } } return buff; } /** * This function find all modules then it merge all configurations * @return {Object} the configuration for cmf.bootstrap */ async function mergeModulesAndApp(options) { const modules = await find(options); return (0, _cmfModule.default)(...modules, options); } mergeModulesAndApp.merge = _cmfModule.default; //# sourceMappingURL=cmfModule.js.map