wmakeev
7/3/2016 - 9:19 AM

lodash.get wrapper #tools

lodash.get wrapper #tools

let get = require('lodash.get')

const getIt = function (...args) {
  return action => {
    let value = get.apply(this, args)
    if (action && value !== void 0) {
      return action(value)
    } else {
      return value
    }
  }
}

let obj = {
  foo: 1,
  bar: {
    baz: 'some',
    biz: "200",
    boo: {
      far: 'deep'
    }
  }
}

let far = getIt(obj, 'bar.boo.far')() // 'deep'
let biz = getIt(obj, ['bar', 'biz'])(biz => parseInt(biz) / 100) // 2