34 lines
		
	
	
		
			806 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			806 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*!
 | |
|  * object-visit <https://github.com/jonschlinkert/object-visit>
 | |
|  *
 | |
|  * Copyright (c) 2015, 2017, Jon Schlinkert.
 | |
|  * Released under the MIT License.
 | |
|  */
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| var isObject = require('isobject');
 | |
| 
 | |
| module.exports = function visit(thisArg, method, target, val) {
 | |
|   if (!isObject(thisArg) && typeof thisArg !== 'function') {
 | |
|     throw new Error('object-visit expects `thisArg` to be an object.');
 | |
|   }
 | |
| 
 | |
|   if (typeof method !== 'string') {
 | |
|     throw new Error('object-visit expects `method` name to be a string');
 | |
|   }
 | |
| 
 | |
|   if (typeof thisArg[method] !== 'function') {
 | |
|     return thisArg;
 | |
|   }
 | |
| 
 | |
|   var args = [].slice.call(arguments, 3);
 | |
|   target = target || {};
 | |
| 
 | |
|   for (var key in target) {
 | |
|     var arr = [key, target[key]].concat(args);
 | |
|     thisArg[method].apply(thisArg, arr);
 | |
|   }
 | |
|   return thisArg;
 | |
| };
 |