index.d.ts
 1  declare const mimicFn: {
 2  	/**
 3  	Make a function mimic another one. It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
 4  
 5  	@param to - Mimicking function.
 6  	@param from - Function to mimic.
 7  	@returns The modified `to` function.
 8  
 9  	@example
10  	```
11  	import mimicFn = require('mimic-fn');
12  
13  	function foo() {}
14  	foo.unicorn = '🦄';
15  
16  	function wrapper() {
17  		return foo();
18  	}
19  
20  	console.log(wrapper.name);
21  	//=> 'wrapper'
22  
23  	mimicFn(wrapper, foo);
24  
25  	console.log(wrapper.name);
26  	//=> 'foo'
27  
28  	console.log(wrapper.unicorn);
29  	//=> '🦄'
30  	```
31  	*/
32  	<
33  		ArgumentsType extends unknown[],
34  		ReturnType,
35  		FunctionType extends (...arguments: ArgumentsType) => ReturnType
36  	>(
37  		to: (...arguments: ArgumentsType) => ReturnType,
38  		from: FunctionType
39  	): FunctionType;
40  
41  	// TODO: Remove this for the next major release, refactor the whole definition to:
42  	// declare function mimicFn<
43  	//	ArgumentsType extends unknown[],
44  	//	ReturnType,
45  	//	FunctionType extends (...arguments: ArgumentsType) => ReturnType
46  	// >(
47  	//	to: (...arguments: ArgumentsType) => ReturnType,
48  	//	from: FunctionType
49  	// ): FunctionType;
50  	// export = mimicFn;
51  	default: typeof mimicFn;
52  };
53  
54  export = mimicFn;