UNPKG

804 BJavaScriptView Raw
1import apply from './_apply';
2import arrayMap from './_arrayMap';
3import baseFlatten from './_baseFlatten';
4import baseIteratee from './_baseIteratee';
5import isFlattenableIteratee from './_isFlattenableIteratee';
6import rest from './rest';
7
8/**
9 * Creates a function like `_.over`.
10 *
11 * @private
12 * @param {Function} arrayFunc The function to iterate over iteratees.
13 * @returns {Function} Returns the new invoker function.
14 */
15function createOver(arrayFunc) {
16 return rest(function(iteratees) {
17 iteratees = arrayMap(baseFlatten(iteratees, 1, isFlattenableIteratee), baseIteratee);
18 return rest(function(args) {
19 var thisArg = this;
20 return arrayFunc(iteratees, function(iteratee) {
21 return apply(iteratee, thisArg, args);
22 });
23 });
24 });
25}
26
27export default createOver;