Bones/node_modules/when/lib/liftAll.js

29 lines
807 B
JavaScript
Raw Normal View History

2017-05-17 13:45:25 -04:00
/** @license MIT License (c) copyright 2010-2014 original author or authors */
/** @author Brian Cavalier */
/** @author John Hann */
(function(define) { 'use strict';
define(function() {
return function liftAll(liftOne, combine, dst, src) {
if(typeof combine === 'undefined') {
combine = defaultCombine;
}
return Object.keys(src).reduce(function(dst, key) {
var f = src[key];
return typeof f === 'function' ? combine(dst, liftOne(f), key) : dst;
}, typeof dst === 'undefined' ? defaultDst(src) : dst);
};
function defaultCombine(o, f, k) {
o[k] = f;
return o;
}
function defaultDst(src) {
return typeof src === 'function' ? src.bind() : Object.create(src);
}
});
}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); }));