Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / onetime / index.d.ts
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;