diff options
author | Minteck <freeziv.ytb@gmail.com> | 2021-03-07 18:29:17 +0100 |
---|---|---|
committer | Minteck <freeziv.ytb@gmail.com> | 2021-03-07 18:29:17 +0100 |
commit | 0f79e708bf07721b73ea41e5d341be08e8ea4dce (patch) | |
tree | f3c63cd6a9f4ef0b26f95eec6a031600232e80c8 /node_modules/onetime/index.d.ts | |
download | electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.gz electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.bz2 electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.zip |
Initial commit
Diffstat (limited to 'node_modules/onetime/index.d.ts')
-rw-r--r-- | node_modules/onetime/index.d.ts | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/node_modules/onetime/index.d.ts b/node_modules/onetime/index.d.ts new file mode 100644 index 0000000..ea84cab --- /dev/null +++ b/node_modules/onetime/index.d.ts @@ -0,0 +1,64 @@ +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; |