69 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# mimic-fn [](https://travis-ci.org/sindresorhus/mimic-fn)
 | 
						|
 | 
						|
> Make a function mimic another one
 | 
						|
 | 
						|
Useful when you wrap a function in another function and like to preserve the original name and other properties.
 | 
						|
 | 
						|
 | 
						|
## Install
 | 
						|
 | 
						|
```
 | 
						|
$ npm install mimic-fn
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
```js
 | 
						|
const mimicFn = require('mimic-fn');
 | 
						|
 | 
						|
function foo() {}
 | 
						|
foo.unicorn = '🦄';
 | 
						|
 | 
						|
function wrapper() {
 | 
						|
	return foo() {};
 | 
						|
}
 | 
						|
 | 
						|
console.log(wrapper.name);
 | 
						|
//=> 'wrapper'
 | 
						|
 | 
						|
mimicFn(wrapper, foo);
 | 
						|
 | 
						|
console.log(wrapper.name);
 | 
						|
//=> 'foo'
 | 
						|
 | 
						|
console.log(wrapper.unicorn);
 | 
						|
//=> '🦄'
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## API
 | 
						|
 | 
						|
It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
 | 
						|
 | 
						|
### mimicFn(to, from)
 | 
						|
 | 
						|
It will modify `to` and return it.
 | 
						|
 | 
						|
#### to
 | 
						|
 | 
						|
Type: `Function`
 | 
						|
 | 
						|
Mimicking function.
 | 
						|
 | 
						|
#### from
 | 
						|
 | 
						|
Type: `Function`
 | 
						|
 | 
						|
Function to mimic.
 | 
						|
 | 
						|
 | 
						|
## Related
 | 
						|
 | 
						|
- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function
 | 
						|
 | 
						|
 | 
						|
## License
 | 
						|
 | 
						|
MIT © [Sindre Sorhus](https://sindresorhus.com)
 |