@vulcan-sql/core
Version:
Core package of VulcanSQL
41 lines • 1.76 kB
JavaScript
;
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