You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
709 B
JavaScript

6 years ago
/*!
* collection-visit <https://github.com/jonschlinkert/collection-visit>
*
* Copyright (c) 2015, 2017, Jon Schlinkert.
* Released under the MIT License.
*/
'use strict';
var visit = require('object-visit');
var mapVisit = require('map-visit');
module.exports = function(collection, method, val) {
var result;
if (typeof val === 'string' && (method in collection)) {
var args = [].slice.call(arguments, 2);
result = collection[method].apply(collection, args);
} else if (Array.isArray(val)) {
result = mapVisit.apply(null, arguments);
} else {
result = visit.apply(null, arguments);
}
if (typeof result !== 'undefined') {
return result;
}
return collection;
};