choo-shortcache
Version:
choo nanocomponent cache shortcut
36 lines (28 loc) • 608 B
JavaScript
module.exports = plucker
function plucker(path, object) {
return arguments.length >= 2
? pluck(path)(object)
: pluck(path)
}
function pluck(path) {
path = typeof path === 'string'
? String(path).trim().split('.')
: path
if (path.length < 2) {
path = path[0]
return pluckSingle
} else {
var l = path.length
return pluckPath
}
function pluckSingle(object) {
return object[path]
}
function pluckPath(object) {
for (var i = 0; i < l; i++) {
if (typeof object === 'undefined') break
object = object[path[i]]
}
return object
}
}