function getColumnsByTableNamePrefix(tableName, columns) { const fn = fp.compose([ fp.mapKeys(fp.replace(`${tableName}_`, '')), fp.pickBy((value, key) => fp.startsWith(`${tableName}_`, key)) ]) if (columns) { return fn(columns) } return fn }
_.flow([ fp.pickBy((v, k) => v.selectByDefault), fp.keys, ])(modelFieldsConfig)
const checkMissingDependencies = (moduleDefinitions, existingModules, dependencyGraph) => { const missingDependencies = f.flow( f.mapValues( f.reject(dependencyName => moduleDefinitions[dependencyName] || existingModules[dependencyName] ) ), f.pickBy('length'), f.toPairs )(dependencyGraph); if (missingDependencies.length) { f.forEach(([name, missing]) => { console.log(`unable to find dependencies "${missing.join(', ')}" for module "${name}"`); })(missingDependencies); throw new Error('missing dependencies'); } }
const checkVoidModules = (createdModules, graphDetails) => { const voidModulesInjected = f.flow( f.pickBy(module => module == null), f.keys, f.tap(modules => { if (modules.length) { console.log(`the modules "${modules.join(', ')}" are void`); } }), f.map(moduleName => [moduleName, graphDetails.depends(moduleName)]), f.filter('1.length') )(createdModules); if (voidModulesInjected.length) { f.flow( f.forEach(([moduleName, dependents]) => { console.log(`the module "${moduleName}" has no return and can't\ be injected in the modules "${dependents.join(', ')}"`); }) )(voidModulesInjected); throw new Error('depending on void modules'); } }