respond-framework
Version:
create as fast you think
29 lines (28 loc) • 964 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.traverseModulesAsyncParallel = exports.traverseModules = exports.traverseModuleChildren = void 0;
const traverseModuleChildren = (state, callback) => {
for (const k of state.moduleKeys) {
callback(state[k], state);
traverseModuleChildren(state[k], callback);
}
};
exports.traverseModuleChildren = traverseModuleChildren;
const traverseModules = (state, callback, parent, b = '') => {
callback(state, parent, b);
for (const k of state.moduleKeys) {
traverseModules(state[k], callback, state, b ? `${b}.${k}` : k);
}
};
exports.traverseModules = traverseModules;
const traverseModulesAsyncParallel = (state, callback) => {
const promises = [];
traverseModules(state, state => {
const promise = callback(state);
promises.push(promise);
});
return Promise.all(promises);
};
exports.traverseModulesAsyncParallel = traverseModulesAsyncParallel;