| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- "use strict";
 
- var objUtils = require("./util/object");
 
- function getOptions(options, defaults)
 
- {
 
- 	if ( objUtils.isPlainObject(options) )
 
- 	{
 
- 		var newOptions = {};
 
- 		
 
- 		for (var i in defaults)
 
- 		{
 
- 			if ( defaults.hasOwnProperty(i) )
 
- 			{
 
- 				if (options[i] !== undefined)
 
- 				{
 
- 					newOptions[i] = mergeOption(options[i], defaults[i]);
 
- 				}
 
- 				else
 
- 				{
 
- 					newOptions[i] = defaults[i];
 
- 				}
 
- 			}
 
- 		}
 
- 		
 
- 		return newOptions;
 
- 	}
 
- 	else
 
- 	{
 
- 		return defaults;
 
- 	}
 
- }
 
- function mergeOption(newValues, defaultValues)
 
- {
 
- 	if (defaultValues instanceof Object && newValues instanceof Object)
 
- 	{
 
- 		if (defaultValues instanceof Array && newValues instanceof Array)
 
- 		{
 
- 			return defaultValues.concat(newValues);
 
- 		}
 
- 		else
 
- 		{
 
- 			return objUtils.shallowMerge(newValues, defaultValues);
 
- 		}
 
- 	}
 
- 	
 
- 	return newValues;
 
- }
 
- module.exports = getOptions;
 
 
  |