UNPKG

@vulcan-sql/core

Version:
41 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergedModules = exports.defaultImport = void 0; const tslib_1 = require("tslib"); /** * dynamic import default module. * @param foldersOrFiles The folders / files * @returns default module */ const defaultImport = (...foldersOrFiles) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const modules = []; for (const folderOrFile of foldersOrFiles) { const module = yield Promise.resolve().then(() => require(folderOrFile)); // if module default is undefined, then set the all export context to default const imported = module.default ? module.default : module; modules.push(imported); } return modules; }); exports.defaultImport = defaultImport; /** * merged multiple properties of each modules to the one module object * @param modules: multiple module objects which include properties e.g: [{ module1Property1: [] }, { module2Property1: [] }] * @returns the merged properties in one module object */ const mergedModules = (modules) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const module = modules.reduce((merged, current) => { for (const extension of Object.keys(current)) { // if current extension property has been existed in merged module, concat it. if (extension in merged) merged[extension] = [...merged[extension], ...current[extension]]; // if extension not in merged module, add new extension property else merged[extension] = current[extension]; } return merged; }, {}); return module; }); exports.mergedModules = mergedModules; //# sourceMappingURL=module.js.map