| import { path } from './path.js' |
| |
| function indexByPath(pathInput, list){ |
| const toReturn = {} |
| for (let i = 0; i < list.length; i++){ |
| const item = list[ i ] |
| toReturn[ path(pathInput, item) ] = item |
| } |
| |
| return toReturn |
| } |
| |
| export function indexBy(condition, list){ |
| if (arguments.length === 1){ |
| return _list => indexBy(condition, _list) |
| } |
| |
| if (typeof condition === 'string'){ |
| return indexByPath(condition, list) |
| } |
| |
| const toReturn = {} |
| for (let i = 0; i < list.length; i++){ |
| const item = list[ i ] |
| toReturn[ condition(item) ] = item |
| } |
| |
| return toReturn |
| } |