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.
		
		
		
		
		
			
		
			
				
					40 lines
				
				771 B
			
		
		
			
		
	
	
					40 lines
				
				771 B
			| 
								 
											3 years ago
										 
									 | 
							
								# defaults
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								> A simple one level options merge utility
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Install
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm install defaults
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const defaults = require('defaults');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const handle = (options, fn) => {
							 | 
						||
| 
								 | 
							
									options = defaults(options, {
							 | 
						||
| 
								 | 
							
										timeout: 100
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setTimeout(() => {
							 | 
						||
| 
								 | 
							
										fn(options);
							 | 
						||
| 
								 | 
							
									}, options.timeout);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								handle({timeout: 1000}, () => {
							 | 
						||
| 
								 | 
							
									// We're here 1000 ms later
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								handle({timeout: 10000}, () => {
							 | 
						||
| 
								 | 
							
									// We're here 10s later
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Summary
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								this module exports a function that takes 2 arguments: `options` and `defaults`.  When called, it overrides all of `undefined` properties in `options` with the clones of properties defined in `defaults`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Sidecases: if called with a falsy `options` value, options will be initialized to a new object before being merged onto.
							 |