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.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							747 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							747 B
						
					
					
				'use strict'; | 
						|
 | 
						|
var each = require('array-each'); | 
						|
var slice = require('array-slice'); | 
						|
var forOwn = require('for-own'); | 
						|
var isObject = require('isobject'); | 
						|
 | 
						|
/** | 
						|
 * Extends the `target` object with properties of one or | 
						|
 * more additional `objects` | 
						|
 * | 
						|
 * @name .defaults | 
						|
 * @param  {Object} `target` The target object. Pass an empty object to shallow clone. | 
						|
 * @param  {Object} `objects` | 
						|
 * @return {Object} | 
						|
 * @api public | 
						|
 */ | 
						|
 | 
						|
module.exports = function defaults(target, objects) { | 
						|
  if (target == null) { | 
						|
    return {}; | 
						|
  } | 
						|
 | 
						|
  each(slice(arguments, 1), function(obj) { | 
						|
    if (isObject(obj)) { | 
						|
      forOwn(obj, function(val, key) { | 
						|
        if (target[key] == null) { | 
						|
          target[key] = val; | 
						|
        } | 
						|
      }); | 
						|
    } | 
						|
  }); | 
						|
 | 
						|
  return target; | 
						|
};
 | 
						|
 |