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.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.2 KiB
						
					
					
				| declare const mimicFn: {
 | |
| 	/**
 | |
| 	Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
 | |
| 
 | |
| 	@param to - Mimicking function.
 | |
| 	@param from - Function to mimic.
 | |
| 	@returns The modified `to` function.
 | |
| 
 | |
| 	@example
 | |
| 	```
 | |
| 	import 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);
 | |
| 	//=> '🦄'
 | |
| 	```
 | |
| 	*/
 | |
| 	<
 | |
| 		ArgumentsType extends unknown[],
 | |
| 		ReturnType,
 | |
| 		FunctionType extends (...arguments: ArgumentsType) => ReturnType
 | |
| 	>(
 | |
| 		to: (...arguments: ArgumentsType) => ReturnType,
 | |
| 		from: FunctionType
 | |
| 	): FunctionType;
 | |
| 
 | |
| 	// TODO: Remove this for the next major release, refactor the whole definition to:
 | |
| 	// declare function mimicFn<
 | |
| 	//	ArgumentsType extends unknown[],
 | |
| 	//	ReturnType,
 | |
| 	//	FunctionType extends (...arguments: ArgumentsType) => ReturnType
 | |
| 	// >(
 | |
| 	//	to: (...arguments: ArgumentsType) => ReturnType,
 | |
| 	//	from: FunctionType
 | |
| 	// ): FunctionType;
 | |
| 	// export = mimicFn;
 | |
| 	default: typeof mimicFn;
 | |
| };
 | |
| 
 | |
| export = mimicFn;
 |