You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
807 B
28 lines
807 B
/** @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(); }));
|
|
|