31 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			709 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /*! | ||
|  |  * 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; | ||
|  | }; |