owner: fp.pick(['id', 'login', 'avatar_url', 'html_url', 'type'], item.owner), repository: fp.compose([ fp.assign({ owner: item.owner.id }), fp.defaults({ description: '', language: '' }), fp.omitBy(fp.isNil),
// returns new modules hash const createModule = (name, dependencyGraph, existingModules, moduleDefinitions) => { // check if module already exists const existingDependency = existingModules[name]; if (existingDependency) { return existingModules; } // create dependencies recursively const moduleDependencies = dependencyGraph[name]; const updatedDependencies = f.reduce( (accumulatedModules, name) => f.assign( accumulatedModules, createModule(name, dependencyGraph, accumulatedModules, moduleDefinitions) ), existingModules )(moduleDependencies); // create module const createdModule = moduleDefinitions[name](updatedDependencies); // return dependencies with new module return f.assign(updatedDependencies, { [name]: createdModule }); }