foop
Version:
interfaces that describe their intentions.
39 lines (35 loc) • 3.45 kB
JavaScript
var bind = require('../fp/bind')
var flip2 = require('../fp/flip2')
var curry = require('../fp/curry')
var dotSet = require('../dot/set')
var dotGet = require('../dot/get')
var dotHas = require('../dot/has')
var dotDelete = require('../dot/delete')
var set = curry(2, flip2(dotSet))
var get = curry(2, flip2(dotGet))
var has = curry(2, flip2(dotHas))
var del = curry(2, flip2(dotDelete))
var thisBind = flip2(bind)
/**
* @name bindMethod
* @since 5.0.0-beta.6
* @memberOf flipped
*
* @param {Object} thisArg context
* @param {Primitive} method method name
* @return {Function}
*
* @see fp/bind
* @see fp/flip2
* @see fp/curry
* @see dot/get
*
* @example
* const eh = {oh() {console.log(this)}}
* eh.oh = bindMethod(eh, 'oh')
*/
module.exports = function (thisArg, method) {
var fn = get(thisArg, method)
return thisBind(thisArg, fn)
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZE1ldGhvZC5qcyIsInNvdXJjZXMiOlsiYmluZE1ldGhvZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBiaW5kID0gcmVxdWlyZSgnLi4vZnAvYmluZCcpXG5jb25zdCBmbGlwMiA9IHJlcXVpcmUoJy4uL2ZwL2ZsaXAyJylcbmNvbnN0IGN1cnJ5ID0gcmVxdWlyZSgnLi4vZnAvY3VycnknKVxuY29uc3QgZG90U2V0ID0gcmVxdWlyZSgnLi4vZG90L3NldCcpXG5jb25zdCBkb3RHZXQgPSByZXF1aXJlKCcuLi9kb3QvZ2V0JylcbmNvbnN0IGRvdEhhcyA9IHJlcXVpcmUoJy4uL2RvdC9oYXMnKVxuY29uc3QgZG90RGVsZXRlID0gcmVxdWlyZSgnLi4vZG90L2RlbGV0ZScpXG5cbmNvbnN0IHNldCA9IGN1cnJ5KDIsIGZsaXAyKGRvdFNldCkpXG5jb25zdCBnZXQgPSBjdXJyeSgyLCBmbGlwMihkb3RHZXQpKVxuY29uc3QgaGFzID0gY3VycnkoMiwgZmxpcDIoZG90SGFzKSlcbmNvbnN0IGRlbCA9IGN1cnJ5KDIsIGZsaXAyKGRvdERlbGV0ZSkpXG5cbmNvbnN0IHRoaXNCaW5kID0gZmxpcDIoYmluZClcblxuLyoqXG4gKiBAbmFtZSBiaW5kTWV0aG9kXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgZmxpcHBlZFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSB0aGlzQXJnIGNvbnRleHRcbiAqIEBwYXJhbSB7UHJpbWl0aXZlfSBtZXRob2QgbWV0aG9kIG5hbWVcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICpcbiAqIEBzZWUgZnAvYmluZFxuICogQHNlZSBmcC9mbGlwMlxuICogQHNlZSBmcC9jdXJyeVxuICogQHNlZSBkb3QvZ2V0XG4gKlxuICogQGV4YW1wbGVcbiAqICAgIGNvbnN0IGVoID0ge29oKCkge2NvbnNvbGUubG9nKHRoaXMpfX1cbiAqICAgIGVoLm9oID0gYmluZE1ldGhvZChlaCwgJ29oJylcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAodGhpc0FyZywgbWV0aG9kKSA9PiB7XG4gIGNvbnN0IGZuID0gZ2V0KHRoaXNBcmcsIG1ldGhvZClcbiAgcmV0dXJuIHRoaXNCaW5kKHRoaXNBcmcsIGZuKVxufVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ2xDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFDcENBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUNwQ0EsR0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDcENBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNwQ0EsR0FBSyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDOztBQUUxQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzs7QUFFdENBLEdBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQjVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBQSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQUFBRztFQUNwQ0EsR0FBSyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztFQUMvQixPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQzdCOyJ9