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
			| 
											3 years ago
										 | 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; |