@peerbit/time 2.2.0 → 2.3.0-e209d2e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +1,26 @@
1
1
  export declare const debounceFixedInterval: <T extends (...args: any[]) => any | Promise<any>>(fn: T, delay: number | (() => number), options?: {
2
- onError?: (error: Error) => void;
2
+ onError?(error: Error): void;
3
3
  leading?: boolean;
4
4
  }) => {
5
- call: (...args: Parameters<T>) => Promise<void>;
6
- close: () => void;
7
- flush: () => Promise<void>;
5
+ call(...args: Parameters<T>): Promise<void>;
6
+ close(): void;
7
+ flush(): Promise<void>;
8
8
  };
9
9
  export declare const debounceAccumulator: <K, T, V>(fn: (args: V) => any, create: () => {
10
- delete: (key: K) => void;
11
- add: (value: T) => void;
12
- size: () => number;
10
+ delete(key: K): void;
11
+ add(value: T): void;
12
+ size(): number;
13
13
  value: V;
14
- has: (key: K) => boolean;
14
+ has(key: K): boolean;
15
15
  }, delay: number | (() => number), options?: {
16
16
  leading?: boolean;
17
17
  }) => {
18
- add: (value: T) => Promise<void>;
19
- delete: (key: K) => void;
20
- size: () => number;
21
- has: (key: K) => boolean;
22
- invoke: () => Promise<void>;
23
- close: () => void;
24
- flush: () => Promise<void>;
18
+ add(value: T): Promise<void>;
19
+ delete(key: K): void;
20
+ size(): number;
21
+ has(key: K): boolean;
22
+ invoke(): Promise<void>;
23
+ close(): void;
24
+ flush(): Promise<void>;
25
25
  };
26
26
  //# sourceMappingURL=aggregators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregators.d.ts","sourceRoot":"","sources":["../../src/aggregators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GACjC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAEhD,IAAI,CAAC,EACL,OAAO,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC9B,UAAU;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/D;IACF,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAuJ3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1C,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,EACpB,QAAQ,MAAM;IACb,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IACzB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CACzB,EACD,OAAO,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC9B,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;iBAajB,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKhB,CAAC;;eAIJ,CAAC;kBAGM,OAAO,CAAC,IAAI,CAAC;iBAMpB,IAAI;iBAMJ,OAAO,CAAC,IAAI,CAAC;CAEzB,CAAC"}
1
+ {"version":3,"file":"aggregators.d.ts","sourceRoot":"","sources":["../../src/aggregators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GACjC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAEhD,IAAI,CAAC,EACL,OAAO,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC9B,UAAU;IAAE,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3D;IACF,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAqJvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1C,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,EACpB,QAAQ,MAAM;IACb,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;CACrB,EACD,OAAO,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAC9B,UAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7B;IACF,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,MAAM,CAAC;IACf,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IACrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAgCvB,CAAC"}
@@ -8,17 +8,17 @@ export const debounceFixedInterval = (fn, delay, options) => {
8
8
  let timeout = null;
9
9
  let lastArgs = null;
10
10
  let lastThis;
11
- let pendingCall = false; // there is queued work for the *next* run
12
- let isRunning = false; // fn is executing right now
13
- let waitingResolvers = []; // resolve when *a* run completes
11
+ let pendingCall = false;
12
+ let isRunning = false;
13
+ let waitingResolvers = [];
14
14
  let lastInvokeTime = null;
15
15
  let forceNextImmediate = false;
16
- // Completed run counter + precise run waiters
17
16
  let completedRuns = 0;
18
17
  let runWaiters = [];
19
18
  const resolveRunWaiters = () => {
20
- if (runWaiters.length === 0)
19
+ if (runWaiters.length === 0) {
21
20
  return;
21
+ }
22
22
  const remaining = [];
23
23
  for (const w of runWaiters) {
24
24
  if (completedRuns >= w.target) {
@@ -31,18 +31,21 @@ export const debounceFixedInterval = (fn, delay, options) => {
31
31
  runWaiters = remaining;
32
32
  };
33
33
  const waitForRun = (target) => new Promise((resolve) => {
34
- if (completedRuns >= target)
35
- return resolve();
34
+ if (completedRuns >= target) {
35
+ resolve();
36
+ return;
37
+ }
36
38
  runWaiters.push({ target, resolve });
37
39
  });
38
40
  const invoke = async () => {
39
41
  timeout = null;
40
- if (!lastArgs)
41
- return; // nothing to invoke
42
+ if (!lastArgs) {
43
+ return;
44
+ }
42
45
  const args = lastArgs;
43
46
  const ctx = lastThis;
44
- lastArgs = null; // consume current args
45
- pendingCall = false; // this run is for those args
47
+ lastArgs = null;
48
+ pendingCall = false;
46
49
  isRunning = true;
47
50
  try {
48
51
  await Promise.resolve(fn.apply(ctx, args));
@@ -53,15 +56,13 @@ export const debounceFixedInterval = (fn, delay, options) => {
53
56
  finally {
54
57
  isRunning = false;
55
58
  lastInvokeTime = Date.now();
56
- // Resolve all call() promises queued for this completed run
57
59
  const resolvers = waitingResolvers;
58
60
  waitingResolvers = [];
59
- for (const r of resolvers)
61
+ for (const r of resolvers) {
60
62
  r();
61
- // Mark completion and resolve any run-target waiters that are due
63
+ }
62
64
  completedRuns++;
63
65
  resolveRunWaiters();
64
- // If new calls arrived during this run, schedule the next one
65
66
  if (pendingCall) {
66
67
  if (forceNextImmediate) {
67
68
  forceNextImmediate = false;
@@ -75,12 +76,10 @@ export const debounceFixedInterval = (fn, delay, options) => {
75
76
  }
76
77
  }
77
78
  };
78
- // Use a normal function to preserve `this` from the call site
79
79
  function debounced(...args) {
80
80
  lastArgs = args;
81
81
  lastThis = this;
82
82
  pendingCall = true;
83
- // Resolve after the next completed run
84
83
  const p = new Promise((resolve) => {
85
84
  waitingResolvers.push(resolve);
86
85
  });
@@ -88,7 +87,7 @@ export const debounceFixedInterval = (fn, delay, options) => {
88
87
  if (!isRunning && !timeout) {
89
88
  if (leading) {
90
89
  if (lastInvokeTime === null || now - lastInvokeTime >= delayFn()) {
91
- invoke();
90
+ void invoke();
92
91
  }
93
92
  else {
94
93
  const remaining = delayFn() - (now - lastInvokeTime);
@@ -103,30 +102,24 @@ export const debounceFixedInterval = (fn, delay, options) => {
103
102
  }
104
103
  const flush = () => {
105
104
  if (isRunning) {
106
- // If there are pending args, ensure a trailing run and make it immediate
107
- const hadPendingArgs = !!lastArgs;
105
+ const hadPendingArgs = Boolean(lastArgs);
108
106
  if (hadPendingArgs) {
109
107
  pendingCall = true;
110
108
  forceNextImmediate = true;
111
109
  }
112
- // Wait for the current run (+1) and, if needed, the immediate trailing run (+1)
113
110
  const target = completedRuns + 1 + (hadPendingArgs ? 1 : 0);
114
111
  return waitForRun(target);
115
112
  }
116
- // Not running
117
113
  if (timeout) {
118
114
  clearTimeout(timeout);
119
115
  timeout = null;
120
116
  }
121
117
  if (lastArgs) {
122
- const target = completedRuns + 1; // we'll trigger a run now
123
- invoke();
118
+ const target = completedRuns + 1;
119
+ void invoke();
124
120
  return waitForRun(target);
125
121
  }
126
- else {
127
- // nothing to flush
128
- return Promise.resolve();
129
- }
122
+ return Promise.resolve();
130
123
  };
131
124
  const close = () => {
132
125
  if (timeout !== null) {
@@ -135,7 +128,6 @@ export const debounceFixedInterval = (fn, delay, options) => {
135
128
  }
136
129
  isRunning = false;
137
130
  forceNextImmediate = false;
138
- // no auto-resolving of pending promises on close()
139
131
  };
140
132
  return { call: debounced, close, flush };
141
133
  };
@@ -150,7 +142,6 @@ export const debounceAccumulator = (fn, create, delay, options) => {
150
142
  return {
151
143
  add: (value) => {
152
144
  accumulator.add(value);
153
- // resolves when the batch (which includes this value) runs
154
145
  return deb.call();
155
146
  },
156
147
  delete: (key) => {
@@ -158,17 +149,14 @@ export const debounceAccumulator = (fn, create, delay, options) => {
158
149
  },
159
150
  size: () => accumulator.size(),
160
151
  has: (key) => accumulator.has(key),
161
- // Run immediately, and **cancel** any pending scheduled run to avoid a trailing empty run.
162
152
  invoke: async () => {
163
- deb.close(); // cancel any pending timeout
153
+ deb.close();
164
154
  await innerInvoke();
165
155
  },
166
- // Cancel pending schedule AND reset accumulator so size() === 0 afterward.
167
156
  close: () => {
168
157
  deb.close();
169
158
  accumulator = create();
170
159
  },
171
- // If you exposed flush() before, keep passing it through:
172
160
  flush: () => deb.flush?.() ?? Promise.resolve(),
173
161
  };
174
162
  };
@@ -1 +1 @@
1
- {"version":3,"file":"aggregators.js","sourceRoot":"","sources":["../../src/aggregators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregators.js","sourceRoot":"","sources":["../../src/aggregators.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.browser.d.ts","sourceRoot":"","sources":["../../src/hrtime.browser.ts"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;yBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kBAiB/C,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAFhD,CAAC;AAOF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"hrtime.browser.d.ts","sourceRoot":"","sources":["../../src/hrtime.browser.ts"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;yBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;kBAmB/C,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CAJhD,CAAC;AASF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.browser.js","sourceRoot":"","sources":["../../src/hrtime.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBE;AAEF,MAAM,MAAM,GAAG,CAAC,iBAAoC,EAAoB,EAAE;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAC9C,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAEpD,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACzC,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,WAAW,IAAI,GAAG,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,CAAC,MAAM,GAAG,CAAC,IAAuB,EAAU,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"hrtime.browser.js","sourceRoot":"","sources":["../../src/hrtime.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBE;AAEF,MAAM,MAAM,GAAG,CAAC,iBAAoC,EAAoB,EAAE;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAC9C,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAEpD,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACzC,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,WAAW,IAAI,GAAG,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,CAAC,MAAM,GAAG,CAAC,IAAuB,EAAU,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.d.ts","sourceRoot":"","sources":["../../src/hrtime.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM,eAAiB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"hrtime.d.ts","sourceRoot":"","sources":["../../src/hrtime.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM,eAAiB,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.js","sourceRoot":"","sources":["../../src/hrtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"hrtime.js","sourceRoot":"","sources":["../../src/hrtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IAKpB,QAAQ,CAAC,GAAG;IAJxB,OAAO,CAAC,MAAM,CAAS;IAEvB,KAAK,SAAK;gBAEW,GAAG,SAAK;IAI7B,GAAG,CAAC,MAAM,EAAE,MAAM;CAWlB"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IAKpB,QAAQ,CAAC,GAAG;IAJxB,OAAO,CAAC,MAAM,CAAS;IAEvB,KAAK,SAAK;gBAEW,GAAG,SAAK;IAI7B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAWzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,UAAW,SAAQ,KAAK;CAAG;AACxC,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,EAAE,UAAU;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,kBAYzE,CAAC;AASF,eAAO,MAAM,OAAO,GAAU,CAAC,EAC9B,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,UAAS;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACqB,KAC5C,OAAO,CAAC,CAAC,GAAG,SAAS,CAiCvB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,CAAC,EACtC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,UAAS;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACoB,KAC3C,OAAO,CAAC,CAAC,CAyCX,CAAC"}
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,eAAO,MAAM,KAAK,GACjB,IAAI,MAAM,EACV,UAAU;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAChC,OAAO,CAAC,IAAI,CAYd,CAAC;AAWF,eAAO,MAAM,OAAO,GAAU,CAAC,EAC9B,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,UAAS;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACqB,KAC5C,OAAO,CAAC,CAAC,GAAG,SAAS,CAgCvB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,CAAC,EACtC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,UAAS;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACoB,KAC3C,OAAO,CAAC,CAAC,CAwCX,CAAC"}
package/dist/src/wait.js CHANGED
@@ -4,10 +4,10 @@ export class AbortError extends Error {
4
4
  }
5
5
  export const delay = async (ms, options) => {
6
6
  return new Promise((resolve, reject) => {
7
- function handleAbort() {
7
+ const handleAbort = () => {
8
8
  clearTimeout(timer);
9
9
  reject(new AbortError());
10
- }
10
+ };
11
11
  options?.signal?.addEventListener("abort", handleAbort);
12
12
  const timer = setTimeout(() => {
13
13
  options?.signal?.removeEventListener("abort", handleAbort);
@@ -16,12 +16,12 @@ export const delay = async (ms, options) => {
16
16
  });
17
17
  };
18
18
  const createTimeoutError = (options) => new TimeoutError(options?.timeoutMessage
19
- ? "Timed out: " + options?.timeoutMessage
19
+ ? "Timed out: " + options.timeoutMessage
20
20
  : "Timed out");
21
21
  export const waitFor = async (fn, options = { timeout: 10 * 1000, delayInterval: 100 }) => {
22
- const delayInterval = options.delayInterval || 100;
23
- const timeout = options.timeout || 10 * 1000;
24
- const startTime = Number(new Date());
22
+ const delayInterval = options.delayInterval ?? 100;
23
+ const timeout = options.timeout ?? 10 * 1000;
24
+ const startTime = Date.now();
25
25
  let stop = false;
26
26
  let aborted = false;
27
27
  const handleAbort = () => {
@@ -34,7 +34,7 @@ export const waitFor = async (fn, options = { timeout: 10 * 1000, delayInterval:
34
34
  handleAbort();
35
35
  }
36
36
  // eslint-disable-next-line no-unmodified-loop-condition
37
- while (!stop && Number(new Date()) - startTime < timeout) {
37
+ while (!stop && Date.now() - startTime < timeout) {
38
38
  const result = await fn();
39
39
  if (result) {
40
40
  options.signal?.removeEventListener("abort", handleAbort);
@@ -45,14 +45,12 @@ export const waitFor = async (fn, options = { timeout: 10 * 1000, delayInterval:
45
45
  if (aborted) {
46
46
  throw new AbortError();
47
47
  }
48
- else {
49
- throw createTimeoutError(options);
50
- }
48
+ throw createTimeoutError(options);
51
49
  };
52
50
  export const waitForResolved = async (fn, options = { timeout: 10 * 1000, delayInterval: 50 }) => {
53
- const delayInterval = options.delayInterval || 50;
54
- const timeout = options.timeout || 10 * 1000;
55
- const startTime = Number(new Date());
51
+ const delayInterval = options.delayInterval ?? 50;
52
+ const timeout = options.timeout ?? 10 * 1000;
53
+ const startTime = Date.now();
56
54
  let stop = false;
57
55
  let lastError;
58
56
  let aborted = false;
@@ -66,25 +64,23 @@ export const waitForResolved = async (fn, options = { timeout: 10 * 1000, delayI
66
64
  handleAbort();
67
65
  }
68
66
  // eslint-disable-next-line no-unmodified-loop-condition
69
- while (!stop && Number(new Date()) - startTime < timeout) {
67
+ while (!stop && Date.now() - startTime < timeout) {
70
68
  try {
71
69
  const result = await fn();
72
70
  options.signal?.removeEventListener("abort", handleAbort);
73
71
  return result;
74
72
  }
75
73
  catch (error) {
76
- if (!(error instanceof AbortError)) {
77
- lastError = error;
78
- }
79
- else {
74
+ if (error instanceof AbortError) {
80
75
  throw error;
81
76
  }
77
+ lastError = error;
82
78
  }
83
79
  await delay(delayInterval, options);
84
80
  }
85
81
  if (aborted) {
86
82
  throw new AbortError();
87
83
  }
88
- throw lastError || createTimeoutError(options);
84
+ throw lastError ?? createTimeoutError(options);
89
85
  };
90
86
  //# sourceMappingURL=wait.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,OAAkC,EAAE,EAAE;IAC7E,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,SAAS,WAAW;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,OAAO,EAAE,CAAC;QACX,CAAC,EAAE,EAAE,CAAC,CAAC;IACR,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAoC,EAAE,EAAE,CACnE,IAAI,YAAY,CACf,OAAO,EAAE,cAAc;IACtB,CAAC,CAAC,aAAa,GAAG,OAAO,EAAE,cAAc;IACzC,CAAC,CAAC,WAAW,CACd,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC3B,EAAwB,EACxB,UAKI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EACrB,EAAE;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9B,WAAW,EAAE,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QACf,CAAC;QAED,MAAM,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACP,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EACnC,EAAwB,EACxB,UAKI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,EAChC,EAAE;IACf,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,SAA4B,CAAC;IAEjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9B,WAAW,EAAE,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;gBACpC,SAAS,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACP,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QACD,MAAM,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,SAAS,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,62 +1,63 @@
1
1
  {
2
- "name": "@peerbit/time",
3
- "version": "2.2.0",
4
- "description": "Utility functions for time",
5
- "type": "module",
6
- "sideEffects": false,
7
- "types": "./dist/src/index.d.ts",
8
- "typesVersions": {
9
- "*": {
10
- "*": [
11
- "*",
12
- "dist/*",
13
- "dist/src/*",
14
- "dist/src/*/index"
15
- ],
16
- "src/*": [
17
- "*",
18
- "dist/*",
19
- "dist/src/*",
20
- "dist/src/*/index"
21
- ]
22
- }
23
- },
24
- "files": [
25
- "src",
26
- "dist",
27
- "!dist/test",
28
- "!**/*.tsbuildinfo"
29
- ],
30
- "exports": {
31
- ".": {
32
- "types": "./dist/src/index.d.ts",
33
- "import": "./dist/src/index.js"
34
- }
35
- },
36
- "eslintConfig": {
37
- "extends": "peerbit",
38
- "parserOptions": {
39
- "project": true,
40
- "sourceType": "module"
41
- },
42
- "ignorePatterns": [
43
- "!.aegir.js",
44
- "test/ts-use",
45
- "*.d.ts"
46
- ]
47
- },
48
- "browser": {
49
- "./dist/src/hrtime.js": "./dist/src/hrtime.browser.js"
50
- },
51
- "publishConfig": {
52
- "access": "public"
53
- },
54
- "scripts": {
55
- "clean": "aegir clean",
56
- "build": "aegir build --no-bundle",
57
- "test": "aegir test",
58
- "lint": "aegir lint"
59
- },
60
- "author": "dao.xyz",
61
- "license": "MIT"
62
- }
2
+ "name": "@peerbit/time",
3
+ "version": "2.3.0-e209d2e",
4
+ "description": "Utility functions for time",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/test",
28
+ "!**/*.tsbuildinfo"
29
+ ],
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/src/index.d.ts",
33
+ "import": "./dist/src/index.js"
34
+ }
35
+ },
36
+ "eslintConfig": {
37
+ "extends": "peerbit",
38
+ "parserOptions": {
39
+ "project": true,
40
+ "sourceType": "module"
41
+ },
42
+ "ignorePatterns": [
43
+ "!.aegir.js",
44
+ "test/ts-use",
45
+ "test/**",
46
+ "*.d.ts"
47
+ ]
48
+ },
49
+ "browser": {
50
+ "./dist/src/hrtime.js": "./dist/src/hrtime.browser.js"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "author": "dao.xyz",
56
+ "license": "MIT",
57
+ "scripts": {
58
+ "clean": "aegir clean",
59
+ "build": "aegir build --no-bundle",
60
+ "test": "aegir test",
61
+ "lint": "aegir lint"
62
+ }
63
+ }
@@ -3,16 +3,16 @@ export const debounceFixedInterval = <
3
3
  >(
4
4
  fn: T,
5
5
  delay: number | (() => number),
6
- options?: { onError?: (error: Error) => void; leading?: boolean },
6
+ options?: { onError?(error: Error): void; leading?: boolean },
7
7
  ): {
8
- call: (...args: Parameters<T>) => Promise<void>;
9
- close: () => void;
10
- flush: () => Promise<void>;
8
+ call(...args: Parameters<T>): Promise<void>;
9
+ close(): void;
10
+ flush(): Promise<void>;
11
11
  } => {
12
12
  const delayFn: () => number = typeof delay === "number" ? () => delay : delay;
13
13
  const onError =
14
14
  options?.onError ??
15
- ((e: Error) => {
15
+ ((e: Error): void => {
16
16
  throw e;
17
17
  });
18
18
  const leading = options?.leading ?? true;
@@ -20,19 +20,20 @@ export const debounceFixedInterval = <
20
20
  let timeout: ReturnType<typeof setTimeout> | null = null;
21
21
  let lastArgs: any[] | null = null;
22
22
  let lastThis: any;
23
- let pendingCall = false; // there is queued work for the *next* run
24
- let isRunning = false; // fn is executing right now
25
- let waitingResolvers: Array<() => void> = []; // resolve when *a* run completes
23
+ let pendingCall = false;
24
+ let isRunning = false;
25
+ let waitingResolvers: Array<() => void> = [];
26
26
  let lastInvokeTime: number | null = null;
27
27
  let forceNextImmediate = false;
28
28
 
29
- // Completed run counter + precise run waiters
30
29
  let completedRuns = 0;
31
- type RunWaiter = { target: number; resolve: () => void };
30
+ type RunWaiter = { target: number; resolve(): void };
32
31
  let runWaiters: RunWaiter[] = [];
33
32
 
34
- const resolveRunWaiters = () => {
35
- if (runWaiters.length === 0) return;
33
+ const resolveRunWaiters = (): void => {
34
+ if (runWaiters.length === 0) {
35
+ return;
36
+ }
36
37
  const remaining: RunWaiter[] = [];
37
38
  for (const w of runWaiters) {
38
39
  if (completedRuns >= w.target) {
@@ -44,20 +45,25 @@ export const debounceFixedInterval = <
44
45
  runWaiters = remaining;
45
46
  };
46
47
 
47
- const waitForRun = (target: number) =>
48
+ const waitForRun = (target: number): Promise<void> =>
48
49
  new Promise<void>((resolve) => {
49
- if (completedRuns >= target) return resolve();
50
+ if (completedRuns >= target) {
51
+ resolve();
52
+ return;
53
+ }
50
54
  runWaiters.push({ target, resolve });
51
55
  });
52
56
 
53
- const invoke = async () => {
57
+ const invoke = async (): Promise<void> => {
54
58
  timeout = null;
55
- if (!lastArgs) return; // nothing to invoke
59
+ if (!lastArgs) {
60
+ return;
61
+ }
56
62
 
57
63
  const args = lastArgs;
58
64
  const ctx = lastThis;
59
- lastArgs = null; // consume current args
60
- pendingCall = false; // this run is for those args
65
+ lastArgs = null;
66
+ pendingCall = false;
61
67
  isRunning = true;
62
68
 
63
69
  try {
@@ -68,16 +74,15 @@ export const debounceFixedInterval = <
68
74
  isRunning = false;
69
75
  lastInvokeTime = Date.now();
70
76
 
71
- // Resolve all call() promises queued for this completed run
72
77
  const resolvers = waitingResolvers;
73
78
  waitingResolvers = [];
74
- for (const r of resolvers) r();
79
+ for (const r of resolvers) {
80
+ r();
81
+ }
75
82
 
76
- // Mark completion and resolve any run-target waiters that are due
77
83
  completedRuns++;
78
84
  resolveRunWaiters();
79
85
 
80
- // If new calls arrived during this run, schedule the next one
81
86
  if (pendingCall) {
82
87
  if (forceNextImmediate) {
83
88
  forceNextImmediate = false;
@@ -91,13 +96,11 @@ export const debounceFixedInterval = <
91
96
  }
92
97
  };
93
98
 
94
- // Use a normal function to preserve `this` from the call site
95
99
  function debounced(this: any, ...args: Parameters<T>): Promise<void> {
96
100
  lastArgs = args;
97
101
  lastThis = this;
98
102
  pendingCall = true;
99
103
 
100
- // Resolve after the next completed run
101
104
  const p = new Promise<void>((resolve) => {
102
105
  waitingResolvers.push(resolve);
103
106
  });
@@ -106,7 +109,7 @@ export const debounceFixedInterval = <
106
109
  if (!isRunning && !timeout) {
107
110
  if (leading) {
108
111
  if (lastInvokeTime === null || now - lastInvokeTime >= delayFn()) {
109
- invoke();
112
+ void invoke();
110
113
  } else {
111
114
  const remaining = delayFn() - (now - lastInvokeTime);
112
115
  timeout = setTimeout(invoke, remaining);
@@ -120,41 +123,36 @@ export const debounceFixedInterval = <
120
123
 
121
124
  const flush = (): Promise<void> => {
122
125
  if (isRunning) {
123
- // If there are pending args, ensure a trailing run and make it immediate
124
- const hadPendingArgs = !!lastArgs;
126
+ const hadPendingArgs = Boolean(lastArgs);
125
127
  if (hadPendingArgs) {
126
128
  pendingCall = true;
127
129
  forceNextImmediate = true;
128
130
  }
129
- // Wait for the current run (+1) and, if needed, the immediate trailing run (+1)
130
131
  const target = completedRuns + 1 + (hadPendingArgs ? 1 : 0);
131
132
  return waitForRun(target);
132
133
  }
133
134
 
134
- // Not running
135
135
  if (timeout) {
136
136
  clearTimeout(timeout);
137
137
  timeout = null;
138
138
  }
139
139
 
140
140
  if (lastArgs) {
141
- const target = completedRuns + 1; // we'll trigger a run now
142
- invoke();
141
+ const target = completedRuns + 1;
142
+ void invoke();
143
143
  return waitForRun(target);
144
- } else {
145
- // nothing to flush
146
- return Promise.resolve();
147
144
  }
145
+
146
+ return Promise.resolve();
148
147
  };
149
148
 
150
- const close = () => {
149
+ const close = (): void => {
151
150
  if (timeout !== null) {
152
151
  clearTimeout(timeout);
153
152
  timeout = null;
154
153
  }
155
154
  isRunning = false;
156
155
  forceNextImmediate = false;
157
- // no auto-resolving of pending promises on close()
158
156
  };
159
157
 
160
158
  return { call: debounced, close, flush };
@@ -163,18 +161,26 @@ export const debounceFixedInterval = <
163
161
  export const debounceAccumulator = <K, T, V>(
164
162
  fn: (args: V) => any,
165
163
  create: () => {
166
- delete: (key: K) => void;
167
- add: (value: T) => void;
168
- size: () => number;
164
+ delete(key: K): void;
165
+ add(value: T): void;
166
+ size(): number;
169
167
  value: V;
170
- has: (key: K) => boolean;
168
+ has(key: K): boolean;
171
169
  },
172
170
  delay: number | (() => number),
173
171
  options?: { leading?: boolean },
174
- ) => {
172
+ ): {
173
+ add(value: T): Promise<void>;
174
+ delete(key: K): void;
175
+ size(): number;
176
+ has(key: K): boolean;
177
+ invoke(): Promise<void>;
178
+ close(): void;
179
+ flush(): Promise<void>;
180
+ } => {
175
181
  let accumulator = create();
176
182
 
177
- const innerInvoke = async () => {
183
+ const innerInvoke = async (): Promise<void> => {
178
184
  const toSend = accumulator.value;
179
185
  accumulator = create();
180
186
  await fn(toSend);
@@ -185,28 +191,21 @@ export const debounceAccumulator = <K, T, V>(
185
191
  return {
186
192
  add: (value: T): Promise<void> => {
187
193
  accumulator.add(value);
188
- // resolves when the batch (which includes this value) runs
189
194
  return deb.call();
190
195
  },
191
- delete: (key: K) => {
196
+ delete: (key: K): void => {
192
197
  accumulator.delete(key);
193
198
  },
194
- size: () => accumulator.size(),
195
- has: (key: K) => accumulator.has(key),
196
-
197
- // Run immediately, and **cancel** any pending scheduled run to avoid a trailing empty run.
199
+ size: (): number => accumulator.size(),
200
+ has: (key: K): boolean => accumulator.has(key),
198
201
  invoke: async (): Promise<void> => {
199
- deb.close(); // cancel any pending timeout
202
+ deb.close();
200
203
  await innerInvoke();
201
204
  },
202
-
203
- // Cancel pending schedule AND reset accumulator so size() === 0 afterward.
204
205
  close: (): void => {
205
206
  deb.close();
206
207
  accumulator = create();
207
208
  },
208
-
209
- // If you exposed flush() before, keep passing it through:
210
209
  flush: (): Promise<void> => deb.flush?.() ?? Promise.resolve(),
211
210
  };
212
211
  };
@@ -41,7 +41,9 @@ const hrtime = (previousTimestamp?: [number, number]): [number, number] => {
41
41
  }
42
42
  return [seconds, nanoseconds];
43
43
  };
44
+
44
45
  const NS_PER_SEC = 1e9;
46
+
45
47
  hrtime.bigint = (time?: [number, number]): bigint => {
46
48
  const diff = hrtime(time);
47
49
  return BigInt(diff[0] * NS_PER_SEC + diff[1]);
package/src/hrtime.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  const hrtime = process.hrtime;
2
+
2
3
  export { hrtime };
package/src/metrics.ts CHANGED
@@ -9,7 +9,7 @@ export class MovingAverageTracker {
9
9
  this.lastTS = hrtime.bigint();
10
10
  }
11
11
 
12
- add(number: number) {
12
+ add(number: number): void {
13
13
  const now = hrtime.bigint();
14
14
  let diff = Number(now - this.lastTS);
15
15
  if (diff <= 0) {
package/src/wait.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  export class TimeoutError extends Error {}
2
2
 
3
3
  export class AbortError extends Error {}
4
- export const delay = async (ms: number, options?: { signal?: AbortSignal }) => {
4
+
5
+ export const delay = async (
6
+ ms: number,
7
+ options?: { signal?: AbortSignal },
8
+ ): Promise<void> => {
5
9
  return new Promise<void>((resolve, reject) => {
6
- function handleAbort() {
10
+ const handleAbort = (): void => {
7
11
  clearTimeout(timer);
8
12
  reject(new AbortError());
9
- }
13
+ };
10
14
  options?.signal?.addEventListener("abort", handleAbort);
11
15
  const timer = setTimeout(() => {
12
16
  options?.signal?.removeEventListener("abort", handleAbort);
@@ -15,10 +19,12 @@ export const delay = async (ms: number, options?: { signal?: AbortSignal }) => {
15
19
  });
16
20
  };
17
21
 
18
- const createTimeoutError = (options: { timeoutMessage?: string }) =>
22
+ const createTimeoutError = (options: {
23
+ timeoutMessage?: string;
24
+ }): TimeoutError =>
19
25
  new TimeoutError(
20
26
  options?.timeoutMessage
21
- ? "Timed out: " + options?.timeoutMessage
27
+ ? "Timed out: " + options.timeoutMessage
22
28
  : "Timed out",
23
29
  );
24
30
 
@@ -31,13 +37,13 @@ export const waitFor = async <T>(
31
37
  timeoutMessage?: string;
32
38
  } = { timeout: 10 * 1000, delayInterval: 100 },
33
39
  ): Promise<T | undefined> => {
34
- const delayInterval = options.delayInterval || 100;
35
- const timeout = options.timeout || 10 * 1000;
36
- const startTime = Number(new Date());
40
+ const delayInterval = options.delayInterval ?? 100;
41
+ const timeout = options.timeout ?? 10 * 1000;
42
+ const startTime = Date.now();
37
43
  let stop = false;
38
44
 
39
45
  let aborted = false;
40
- const handleAbort = () => {
46
+ const handleAbort = (): void => {
41
47
  stop = true;
42
48
  aborted = true;
43
49
  options.signal?.removeEventListener("abort", handleAbort);
@@ -49,7 +55,7 @@ export const waitFor = async <T>(
49
55
  }
50
56
 
51
57
  // eslint-disable-next-line no-unmodified-loop-condition
52
- while (!stop && Number(new Date()) - startTime < timeout) {
58
+ while (!stop && Date.now() - startTime < timeout) {
53
59
  const result = await fn();
54
60
  if (result) {
55
61
  options.signal?.removeEventListener("abort", handleAbort);
@@ -60,9 +66,8 @@ export const waitFor = async <T>(
60
66
  }
61
67
  if (aborted) {
62
68
  throw new AbortError();
63
- } else {
64
- throw createTimeoutError(options);
65
69
  }
70
+ throw createTimeoutError(options);
66
71
  };
67
72
 
68
73
  export const waitForResolved = async <T>(
@@ -74,15 +79,15 @@ export const waitForResolved = async <T>(
74
79
  timeoutMessage?: string;
75
80
  } = { timeout: 10 * 1000, delayInterval: 50 },
76
81
  ): Promise<T> => {
77
- const delayInterval = options.delayInterval || 50;
78
- const timeout = options.timeout || 10 * 1000;
82
+ const delayInterval = options.delayInterval ?? 50;
83
+ const timeout = options.timeout ?? 10 * 1000;
79
84
 
80
- const startTime = Number(new Date());
85
+ const startTime = Date.now();
81
86
  let stop = false;
82
87
  let lastError: Error | undefined;
83
88
 
84
89
  let aborted = false;
85
- const handleAbort = () => {
90
+ const handleAbort = (): void => {
86
91
  stop = true;
87
92
  aborted = true;
88
93
  options.signal?.removeEventListener("abort", handleAbort);
@@ -94,17 +99,16 @@ export const waitForResolved = async <T>(
94
99
  }
95
100
 
96
101
  // eslint-disable-next-line no-unmodified-loop-condition
97
- while (!stop && Number(new Date()) - startTime < timeout) {
102
+ while (!stop && Date.now() - startTime < timeout) {
98
103
  try {
99
104
  const result = await fn();
100
105
  options.signal?.removeEventListener("abort", handleAbort);
101
106
  return result;
102
107
  } catch (error: any) {
103
- if (!(error instanceof AbortError)) {
104
- lastError = error;
105
- } else {
108
+ if (error instanceof AbortError) {
106
109
  throw error;
107
110
  }
111
+ lastError = error;
108
112
  }
109
113
  await delay(delayInterval, options);
110
114
  }
@@ -113,5 +117,5 @@ export const waitForResolved = async <T>(
113
117
  throw new AbortError();
114
118
  }
115
119
 
116
- throw lastError || createTimeoutError(options);
120
+ throw lastError ?? createTimeoutError(options);
117
121
  };