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;
 |