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;
 | 
						|
};
 |