simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

index.d.ts (1259B)


      1 declare namespace onetime {
      2 	interface Options {
      3 		/**
      4 		Throw an error when called more than once.
      5 
      6 		@default false
      7 		*/
      8 		throw?: boolean;
      9 	}
     10 }
     11 
     12 declare const onetime: {
     13 	/**
     14 	Ensure a function is only called once. When called multiple times it will return the return value from the first call.
     15 
     16 	@param fn - Function that should only be called once.
     17 	@returns A function that only calls `fn` once.
     18 
     19 	@example
     20 	```
     21 	import onetime = require('onetime');
     22 
     23 	let i = 0;
     24 
     25 	const foo = onetime(() => ++i);
     26 
     27 	foo(); //=> 1
     28 	foo(); //=> 1
     29 	foo(); //=> 1
     30 
     31 	onetime.callCount(foo); //=> 3
     32 	```
     33 	*/
     34 	<ArgumentsType extends unknown[], ReturnType>(
     35 		fn: (...arguments: ArgumentsType) => ReturnType,
     36 		options?: onetime.Options
     37 	): (...arguments: ArgumentsType) => ReturnType;
     38 
     39 	/**
     40 	Get the number of times `fn` has been called.
     41 
     42 	@param fn - Function to get call count from.
     43 	@returns A number representing how many times `fn` has been called.
     44 
     45 	@example
     46 	```
     47 	import onetime = require('onetime');
     48 
     49 	const foo = onetime(() => {});
     50 	foo();
     51 	foo();
     52 	foo();
     53 
     54 	console.log(onetime.callCount(foo));
     55 	//=> 3
     56 	```
     57 	*/
     58 	callCount(fn: (...arguments: any[]) => unknown): number;
     59 
     60 	// TODO: Remove this for the next major release
     61 	default: typeof onetime;
     62 };
     63 
     64 export = onetime;