UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with dif

65 lines (49 loc) 1.26 kB
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;