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.
		
		
		
		
			
				
					31 lines
				
				709 B
			
		
		
			
		
	
	
					31 lines
				
				709 B
			| 
								 
											4 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;
							 | 
						||
| 
								 | 
							
								};
							 |