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.
		
		
		
		
		
			
		
			
				
					
					
						
							65 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							65 lines
						
					
					
						
							1.2 KiB
						
					
					
				declare namespace onetime {
 | 
						|
	interface Options {
 | 
						|
		/**
 | 
						|
		Throw an error when called more than once.
 | 
						|
 | 
						|
		@default false
 | 
						|
		*/
 | 
						|
		throw?: boolean;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
declare const onetime: {
 | 
						|
	/**
 | 
						|
	Ensure a function is only called once. When called multiple times it will return the return value from the first call.
 | 
						|
 | 
						|
	@param fn - Function that should only be called once.
 | 
						|
	@returns A function that only calls `fn` once.
 | 
						|
 | 
						|
	@example
 | 
						|
	```
 | 
						|
	import onetime = require('onetime');
 | 
						|
 | 
						|
	let i = 0;
 | 
						|
 | 
						|
	const foo = onetime(() => ++i);
 | 
						|
 | 
						|
	foo(); //=> 1
 | 
						|
	foo(); //=> 1
 | 
						|
	foo(); //=> 1
 | 
						|
 | 
						|
	onetime.callCount(foo); //=> 3
 | 
						|
	```
 | 
						|
	*/
 | 
						|
	<ArgumentsType extends unknown[], ReturnType>(
 | 
						|
		fn: (...arguments: ArgumentsType) => ReturnType,
 | 
						|
		options?: onetime.Options
 | 
						|
	): (...arguments: ArgumentsType) => ReturnType;
 | 
						|
 | 
						|
	/**
 | 
						|
	Get the number of times `fn` has been called.
 | 
						|
 | 
						|
	@param fn - Function to get call count from.
 | 
						|
	@returns A number representing how many times `fn` has been called.
 | 
						|
 | 
						|
	@example
 | 
						|
	```
 | 
						|
	import onetime = require('onetime');
 | 
						|
 | 
						|
	const foo = onetime(() => {});
 | 
						|
	foo();
 | 
						|
	foo();
 | 
						|
	foo();
 | 
						|
 | 
						|
	console.log(onetime.callCount(foo));
 | 
						|
	//=> 3
 | 
						|
	```
 | 
						|
	*/
 | 
						|
	callCount(fn: (...arguments: any[]) => unknown): number;
 | 
						|
 | 
						|
	// TODO: Remove this for the next major release
 | 
						|
	default: typeof onetime;
 | 
						|
};
 | 
						|
 | 
						|
export = onetime;
 |