56 lines
		
	
	
		
			930 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			930 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # merge-descriptors
 | ||
|  | 
 | ||
|  | > Merge objects using their property descriptors
 | ||
|  | 
 | ||
|  | ## Install
 | ||
|  | 
 | ||
|  | ```sh | ||
|  | npm install merge-descriptors | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Usage
 | ||
|  | 
 | ||
|  | ```js | ||
|  | import mergeDescriptors from 'merge-descriptors'; | ||
|  | 
 | ||
|  | const thing = { | ||
|  | 	get name() { | ||
|  | 		return 'John' | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | const animal = {}; | ||
|  | 
 | ||
|  | mergeDescriptors(animal, thing); | ||
|  | 
 | ||
|  | console.log(animal.name); | ||
|  | //=> 'John' | ||
|  | ``` | ||
|  | 
 | ||
|  | ## API
 | ||
|  | 
 | ||
|  | ### merge(destination, source, overwrite?)
 | ||
|  | 
 | ||
|  | Merges "own" properties from a source to a destination object, including non-enumerable and accessor-defined properties. It retains original values and descriptors, ensuring the destination receives a complete and accurate copy of the source's properties. | ||
|  | 
 | ||
|  | Returns the modified destination object. | ||
|  | 
 | ||
|  | #### destination
 | ||
|  | 
 | ||
|  | Type: `object` | ||
|  | 
 | ||
|  | The object to receive properties. | ||
|  | 
 | ||
|  | #### source
 | ||
|  | 
 | ||
|  | Type: `object` | ||
|  | 
 | ||
|  | The object providing properties. | ||
|  | 
 | ||
|  | #### overwrite
 | ||
|  | 
 | ||
|  | Type: `boolean`\ | ||
|  | Default: `true` | ||
|  | 
 | ||
|  | A boolean to control overwriting of existing properties. |