blob: 7e6fa86851d631735681a6dc0335e87cf5d7e8b0 [file] [log] [blame] [edit]
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
}