fp.flow([ fp.filter((v, k) => isValidField(v)), fp.uniq, fp.map(replaceSelectAliases), fp.flatten, ])
F.compose( x => x.length > 0, F.filter(x => x.status === 'in-progress'), F.propOr([], 'jobs') )
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'); } }
fp.mapValues(fp.map(1)), fp.groupBy(_.head), fp.filter(([k, v]) => Post.isEditablePostField(k)), fp.flatten, fp.map(_.toPairs), fp.map(flattenObject), fp.filter(Boolean), fp.map('update') )(i) update: _.pickBy(i.update, (v) => v.length > 1) })) .filter(isUpdatesNonEmpty); _.first) })) .filter(isUpdatesNonEmpty);