@develia/commons 0.4.16 → 0.4.18
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.
- package/dist/cjs/array.js +22 -2
- package/dist/cjs/array.js.map +1 -1
- package/dist/cjs/async-pool-executor.js +26 -11
- package/dist/cjs/async-pool-executor.js.map +1 -1
- package/dist/cjs/browser/form-utilities.js +35 -34
- package/dist/cjs/browser/form-utilities.js.map +1 -1
- package/dist/cjs/browser/geo-location.js +1 -1
- package/dist/cjs/browser/geo-location.js.map +1 -1
- package/dist/cjs/browser/native-bridge.js +3 -1
- package/dist/cjs/browser/native-bridge.js.map +1 -1
- package/dist/cjs/cancellable-promise.js +34 -13
- package/dist/cjs/cancellable-promise.js.map +1 -1
- package/dist/cjs/clean-url-search-params.js +26 -3
- package/dist/cjs/clean-url-search-params.js.map +1 -1
- package/dist/cjs/collections/cache-dictionary.js +3 -3
- package/dist/cjs/collections/cache-dictionary.js.map +1 -1
- package/dist/cjs/collections/default-map.js.map +1 -1
- package/dist/cjs/collections/default-weak-map.js.map +1 -1
- package/dist/cjs/collections/from.js +3 -3
- package/dist/cjs/collections/from.js.map +1 -1
- package/dist/cjs/collections/index.js.map +1 -1
- package/dist/cjs/draft.js +46 -11
- package/dist/cjs/draft.js.map +1 -1
- package/dist/cjs/event-bus.js +1 -1
- package/dist/cjs/event-bus.js.map +1 -1
- package/dist/cjs/functions.js +348 -0
- package/dist/cjs/functions.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/key-value-pair.js.map +1 -1
- package/dist/cjs/lazy.js.map +1 -1
- package/dist/cjs/math.js +3 -0
- package/dist/cjs/math.js.map +1 -1
- package/dist/cjs/order.js.map +1 -1
- package/dist/cjs/parse.js +10 -1
- package/dist/cjs/parse.js.map +1 -1
- package/dist/cjs/patch.js.map +1 -1
- package/dist/cjs/stopwatch.js.map +1 -1
- package/dist/cjs/string.js +8 -5
- package/dist/cjs/string.js.map +1 -1
- package/dist/cjs/timer.js +1 -1
- package/dist/cjs/timer.js.map +1 -1
- package/dist/cjs/timespan.js +21 -8
- package/dist/cjs/timespan.js.map +1 -1
- package/dist/cjs/type-code.js.map +1 -1
- package/dist/cjs/type.js +20 -19
- package/dist/cjs/type.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utilities.js +175 -39
- package/dist/cjs/utilities.js.map +1 -1
- package/dist/esm/array.js +21 -2
- package/dist/esm/array.js.map +1 -1
- package/dist/esm/async-pool-executor.js +26 -11
- package/dist/esm/async-pool-executor.js.map +1 -1
- package/dist/esm/browser/form-utilities.js +35 -34
- package/dist/esm/browser/form-utilities.js.map +1 -1
- package/dist/esm/browser/geo-location.js +1 -1
- package/dist/esm/browser/geo-location.js.map +1 -1
- package/dist/esm/browser/native-bridge.js +3 -1
- package/dist/esm/browser/native-bridge.js.map +1 -1
- package/dist/esm/cancellable-promise.js +34 -13
- package/dist/esm/cancellable-promise.js.map +1 -1
- package/dist/esm/clean-url-search-params.js +26 -3
- package/dist/esm/clean-url-search-params.js.map +1 -1
- package/dist/esm/collections/cache-dictionary.js +3 -3
- package/dist/esm/collections/cache-dictionary.js.map +1 -1
- package/dist/esm/collections/default-map.js.map +1 -1
- package/dist/esm/collections/default-weak-map.js.map +1 -1
- package/dist/esm/collections/from.js +3 -3
- package/dist/esm/collections/from.js.map +1 -1
- package/dist/esm/collections/index.js.map +1 -1
- package/dist/esm/draft.js +46 -11
- package/dist/esm/draft.js.map +1 -1
- package/dist/esm/event-bus.js +1 -1
- package/dist/esm/event-bus.js.map +1 -1
- package/dist/esm/functions.js +336 -0
- package/dist/esm/functions.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/key-value-pair.js.map +1 -1
- package/dist/esm/lazy.js.map +1 -1
- package/dist/esm/math.js +3 -0
- package/dist/esm/math.js.map +1 -1
- package/dist/esm/order.js.map +1 -1
- package/dist/esm/parse.js +10 -1
- package/dist/esm/parse.js.map +1 -1
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/stopwatch.js.map +1 -1
- package/dist/esm/string.js +8 -5
- package/dist/esm/string.js.map +1 -1
- package/dist/esm/timer.js +1 -1
- package/dist/esm/timer.js.map +1 -1
- package/dist/esm/timespan.js +21 -8
- package/dist/esm/timespan.js.map +1 -1
- package/dist/esm/type-code.js.map +1 -1
- package/dist/esm/type.js +20 -19
- package/dist/esm/type.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utilities.js +174 -39
- package/dist/esm/utilities.js.map +1 -1
- package/dist/types/array.d.ts +20 -0
- package/dist/types/array.d.ts.map +1 -1
- package/dist/types/async-pool-executor.d.ts +2 -2
- package/dist/types/async-pool-executor.d.ts.map +1 -1
- package/dist/types/browser/form-utilities.d.ts.map +1 -1
- package/dist/types/browser/native-bridge.d.ts.map +1 -1
- package/dist/types/cancellable-promise.d.ts.map +1 -1
- package/dist/types/clean-url-search-params.d.ts +3 -1
- package/dist/types/clean-url-search-params.d.ts.map +1 -1
- package/dist/types/collections/from.d.ts +1 -1
- package/dist/types/draft.d.ts.map +1 -1
- package/dist/types/functions.d.ts +231 -0
- package/dist/types/functions.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math.d.ts.map +1 -1
- package/dist/types/parse.d.ts.map +1 -1
- package/dist/types/string.d.ts.map +1 -1
- package/dist/types/timer.d.ts +1 -1
- package/dist/types/timespan.d.ts.map +1 -1
- package/dist/types/type.d.ts +2 -0
- package/dist/types/type.d.ts.map +1 -1
- package/dist/types/types.d.ts +1 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utilities.d.ts +21 -3
- package/dist/types/utilities.d.ts.map +1 -1
- package/dist/web/array.js +21 -2
- package/dist/web/array.js.map +1 -1
- package/dist/web/async-pool-executor.js +26 -11
- package/dist/web/async-pool-executor.js.map +1 -1
- package/dist/web/browser/form-utilities.js +35 -34
- package/dist/web/browser/form-utilities.js.map +1 -1
- package/dist/web/browser/geo-location.js +1 -1
- package/dist/web/browser/geo-location.js.map +1 -1
- package/dist/web/browser/native-bridge.js +3 -1
- package/dist/web/browser/native-bridge.js.map +1 -1
- package/dist/web/cancellable-promise.js +34 -13
- package/dist/web/cancellable-promise.js.map +1 -1
- package/dist/web/clean-url-search-params.js +26 -3
- package/dist/web/clean-url-search-params.js.map +1 -1
- package/dist/web/collections/cache-dictionary.js +3 -3
- package/dist/web/collections/cache-dictionary.js.map +1 -1
- package/dist/web/collections/default-map.js.map +1 -1
- package/dist/web/collections/default-weak-map.js.map +1 -1
- package/dist/web/collections/from.js +3 -3
- package/dist/web/collections/from.js.map +1 -1
- package/dist/web/collections/index.js.map +1 -1
- package/dist/web/draft.js +46 -11
- package/dist/web/draft.js.map +1 -1
- package/dist/web/event-bus.js +1 -1
- package/dist/web/event-bus.js.map +1 -1
- package/dist/web/functions.js +336 -0
- package/dist/web/functions.js.map +1 -0
- package/dist/web/index.js +1 -0
- package/dist/web/index.js.map +1 -1
- package/dist/web/key-value-pair.js.map +1 -1
- package/dist/web/lazy.js.map +1 -1
- package/dist/web/math.js +3 -0
- package/dist/web/math.js.map +1 -1
- package/dist/web/order.js.map +1 -1
- package/dist/web/parse.js +10 -1
- package/dist/web/parse.js.map +1 -1
- package/dist/web/patch.js.map +1 -1
- package/dist/web/stopwatch.js.map +1 -1
- package/dist/web/string.js +8 -5
- package/dist/web/string.js.map +1 -1
- package/dist/web/timer.js +1 -1
- package/dist/web/timer.js.map +1 -1
- package/dist/web/timespan.js +21 -8
- package/dist/web/timespan.js.map +1 -1
- package/dist/web/type-code.js.map +1 -1
- package/dist/web/type.js +20 -19
- package/dist/web/type.js.map +1 -1
- package/dist/web/types.js.map +1 -1
- package/dist/web/utilities.js +174 -39
- package/dist/web/utilities.js.map +1 -1
- package/package.json +66 -60
- package/src/array.ts +116 -84
- package/src/async-pool-executor.ts +107 -85
- package/src/browser/form-utilities.ts +32 -31
- package/src/browser/geo-location.ts +113 -113
- package/src/browser/native-bridge.ts +118 -116
- package/src/cancellable-promise.ts +102 -76
- package/src/clean-url-search-params.ts +36 -11
- package/src/collections/cache-dictionary.ts +115 -115
- package/src/collections/default-map.ts +48 -48
- package/src/collections/default-weak-map.ts +51 -51
- package/src/collections/from.ts +859 -859
- package/src/collections/index.ts +3 -3
- package/src/draft.ts +55 -16
- package/src/event-bus.ts +83 -83
- package/src/functions.ts +496 -0
- package/src/index.ts +1 -0
- package/src/key-value-pair.ts +24 -24
- package/src/lazy.ts +32 -32
- package/src/math.ts +33 -30
- package/src/order.ts +5 -5
- package/src/parse.ts +251 -240
- package/src/patch.ts +79 -79
- package/src/stopwatch.ts +43 -43
- package/src/string.ts +8 -5
- package/src/timer.ts +67 -67
- package/src/timespan.ts +412 -398
- package/src/type-code.ts +15 -15
- package/src/type.ts +372 -371
- package/src/types.ts +30 -30
- package/src/utilities.ts +653 -480
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
type AnyFunction = (this: any, ...args: any[]) => any;
|
|
2
|
+
/** Options that control when a debounced function is executed. */
|
|
3
|
+
export interface DebounceOptions {
|
|
4
|
+
/** Execute on the first call in a debounce window. Defaults to false. */
|
|
5
|
+
leading?: boolean;
|
|
6
|
+
/** Execute after the debounce window using the latest arguments. Defaults to true. */
|
|
7
|
+
trailing?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Options that control when a throttled function is executed. */
|
|
10
|
+
export interface ThrottleOptions {
|
|
11
|
+
/** Execute immediately on the first call in a throttle window. Defaults to true. */
|
|
12
|
+
leading?: boolean;
|
|
13
|
+
/** Execute once more at the end of the throttle window using the latest arguments. Defaults to true. */
|
|
14
|
+
trailing?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A delayed function returned by {@link debounce} or {@link throttle}.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const saveLater = debounce(save, 250);
|
|
22
|
+
* saveLater();
|
|
23
|
+
*
|
|
24
|
+
* if (saveLater.pending()) {
|
|
25
|
+
* saveLater.flush();
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export type DeferredFunction<F extends AnyFunction> = ((this: ThisParameterType<F>, ...args: Parameters<F>) => ReturnType<F> | undefined) & {
|
|
30
|
+
/** Cancel the scheduled call and forget the latest arguments. */
|
|
31
|
+
cancel(): void;
|
|
32
|
+
/** Execute the scheduled trailing call immediately, when one exists. */
|
|
33
|
+
flush(): ReturnType<F> | undefined;
|
|
34
|
+
/** Return true while a trailing call is scheduled. */
|
|
35
|
+
pending(): boolean;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* A memoized function with helpers for inspecting and invalidating its cache.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const getUser = memoize((id: string) => fetchUser(id));
|
|
43
|
+
*
|
|
44
|
+
* getUser("42");
|
|
45
|
+
* getUser.has("42"); // true
|
|
46
|
+
* getUser.delete("42");
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export type MemoizedFunction<F extends AnyFunction, K> = ((this: ThisParameterType<F>, ...args: Parameters<F>) => ReturnType<F>) & {
|
|
50
|
+
/** The backing cache used by the memoized function. */
|
|
51
|
+
readonly cache: Map<K, ReturnType<F>>;
|
|
52
|
+
/** Remove every cached value. */
|
|
53
|
+
clear(): void;
|
|
54
|
+
/** Remove the cached value for the key resolved from the provided arguments. */
|
|
55
|
+
delete(...args: Parameters<F>): boolean;
|
|
56
|
+
/** Return true when a cached value exists for the key resolved from the provided arguments. */
|
|
57
|
+
has(...args: Parameters<F>): boolean;
|
|
58
|
+
};
|
|
59
|
+
type Unary<T, R> = (arg: T) => R;
|
|
60
|
+
/**
|
|
61
|
+
* Return the received value unchanged.
|
|
62
|
+
* Useful as a default mapper, placeholder callback, or neutral transform in a pipeline.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* identity(5); // 5
|
|
67
|
+
*
|
|
68
|
+
* const value = {name: "commons"};
|
|
69
|
+
* identity(value) === value; // true
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function identity<T>(value: T): T;
|
|
73
|
+
/**
|
|
74
|
+
* Create a function that always returns the same value.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* const getAnswer = constant(42);
|
|
79
|
+
*
|
|
80
|
+
* getAnswer(); // 42
|
|
81
|
+
* getAnswer(); // 42
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function constant<T>(value: T): () => T;
|
|
85
|
+
/**
|
|
86
|
+
* Do nothing and return undefined.
|
|
87
|
+
* Useful as a safe default callback.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* const onComplete = options.onComplete ?? noop;
|
|
92
|
+
* onComplete();
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function noop(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Create a function that can be executed only once.
|
|
98
|
+
* Later calls return the result from the first execution without calling the original function again.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* const initialize = once(() => ({connected: true}));
|
|
103
|
+
*
|
|
104
|
+
* const first = initialize();
|
|
105
|
+
* const second = initialize();
|
|
106
|
+
* first === second; // true
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function once<F extends AnyFunction>(fn: F): F;
|
|
110
|
+
/**
|
|
111
|
+
* Cache the result of a function and reuse it for calls with the same resolved key.
|
|
112
|
+
* By default, the first argument is used as the cache key.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* const double = memoize((value: number) => value * 2);
|
|
117
|
+
*
|
|
118
|
+
* double(4); // 8, computed
|
|
119
|
+
* double(4); // 8, read from cache
|
|
120
|
+
* double.has(4); // true
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* const sum = memoize(
|
|
126
|
+
* (left: number, right: number) => left + right,
|
|
127
|
+
* (left, right) => `${left}:${right}`,
|
|
128
|
+
* );
|
|
129
|
+
*
|
|
130
|
+
* sum(2, 3); // 5
|
|
131
|
+
* sum.delete(2, 3); // true
|
|
132
|
+
* sum.clear();
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare function memoize<F extends AnyFunction, K = Parameters<F>[0]>(fn: F, resolver?: (...args: Parameters<F>) => K, cache?: Map<K, ReturnType<F>>): MemoizedFunction<F, K>;
|
|
136
|
+
/**
|
|
137
|
+
* Delay a function until no calls have been made for the configured wait time.
|
|
138
|
+
* The latest arguments and this-context are used for the trailing execution.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* const search = debounce((query: string) => {
|
|
143
|
+
* console.log(query);
|
|
144
|
+
* }, 300);
|
|
145
|
+
*
|
|
146
|
+
* search("com");
|
|
147
|
+
* search("commons"); // only this value is printed after 300 ms
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* const track = debounce(sendAnalytics, 1000, {leading: true, trailing: false});
|
|
153
|
+
*
|
|
154
|
+
* track("open"); // executed immediately
|
|
155
|
+
* track.cancel(); // cancel the pending debounce window
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare function debounce<F extends AnyFunction>(fn: F, wait: number, options?: DebounceOptions): DeferredFunction<F>;
|
|
159
|
+
/**
|
|
160
|
+
* Limit how often a function can run during a time window.
|
|
161
|
+
* Calls made while the function is throttled can optionally be replayed once at the end with the latest arguments.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* const onScroll = throttle(() => {
|
|
166
|
+
* console.log(window.scrollY);
|
|
167
|
+
* }, 100);
|
|
168
|
+
*
|
|
169
|
+
* window.addEventListener("scroll", onScroll);
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```ts
|
|
174
|
+
* const refresh = throttle(loadData, 500, {leading: false});
|
|
175
|
+
*
|
|
176
|
+
* refresh(); // scheduled instead of executed immediately
|
|
177
|
+
* refresh.flush(); // execute the scheduled call now
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
export declare function throttle<F extends AnyFunction>(fn: F, wait: number, options?: ThrottleOptions): DeferredFunction<F>;
|
|
181
|
+
/**
|
|
182
|
+
* Create a function with one or more arguments already provided.
|
|
183
|
+
* Later arguments are appended after the preset arguments.
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```ts
|
|
187
|
+
* const sum = (a: number, b: number, c: number) => a + b + c;
|
|
188
|
+
* const addFive = partial(sum, 2, 3);
|
|
189
|
+
*
|
|
190
|
+
* addFive(4); // 9
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
export declare function partial<F extends AnyFunction>(fn: F, ...presetArgs: unknown[]): (...laterArgs: unknown[]) => ReturnType<F>;
|
|
194
|
+
/**
|
|
195
|
+
* Compose unary functions from left to right.
|
|
196
|
+
* The first function receives the original arguments, and each next function receives the previous result.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```ts
|
|
200
|
+
* const transform = pipe(
|
|
201
|
+
* (value: number) => value + 1,
|
|
202
|
+
* (value: number) => value * 2,
|
|
203
|
+
* );
|
|
204
|
+
*
|
|
205
|
+
* transform(2); // 6
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export declare function pipe<A, B>(ab: Unary<A, B>): Unary<A, B>;
|
|
209
|
+
export declare function pipe<A, B, C>(ab: Unary<A, B>, bc: Unary<B, C>): Unary<A, C>;
|
|
210
|
+
export declare function pipe<A, B, C, D>(ab: Unary<A, B>, bc: Unary<B, C>, cd: Unary<C, D>): Unary<A, D>;
|
|
211
|
+
export declare function pipe<A, B, C, D, E>(ab: Unary<A, B>, bc: Unary<B, C>, cd: Unary<C, D>, de: Unary<D, E>): Unary<A, E>;
|
|
212
|
+
/**
|
|
213
|
+
* Compose unary functions from right to left.
|
|
214
|
+
* The rightmost function receives the original arguments, and each function to its left receives the previous result.
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* ```ts
|
|
218
|
+
* const transform = compose(
|
|
219
|
+
* (value: number) => value + 1,
|
|
220
|
+
* (value: number) => value * 2,
|
|
221
|
+
* );
|
|
222
|
+
*
|
|
223
|
+
* transform(2); // 5
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function compose<A, B>(ab: Unary<A, B>): Unary<A, B>;
|
|
227
|
+
export declare function compose<A, B, C>(bc: Unary<B, C>, ab: Unary<A, B>): Unary<A, C>;
|
|
228
|
+
export declare function compose<A, B, C, D>(cd: Unary<C, D>, bc: Unary<B, C>, ab: Unary<A, B>): Unary<A, D>;
|
|
229
|
+
export declare function compose<A, B, C, D, E>(de: Unary<D, E>, cd: Unary<C, D>, bc: Unary<B, C>, ab: Unary<A, B>): Unary<A, E>;
|
|
230
|
+
export {};
|
|
231
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './types.js';
|
|
|
2
2
|
export { default as Type } from './type.js';
|
|
3
3
|
export { default as TypeCode } from './type-code.js';
|
|
4
4
|
export * from './utilities.js';
|
|
5
|
+
export * from './functions.js';
|
|
5
6
|
export * from './string.js';
|
|
6
7
|
export * from './math.js';
|
|
7
8
|
export { default as CancellablePromise } from "./cancellable-promise.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAC7E,mBAAmB;AACnB,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAKxF,mBAAmB;AACnB,cAAc,YAAY,CAAC;AAC3B,mBAAmB;AACnB,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAC7E,mBAAmB;AACnB,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAKxF,mBAAmB;AACnB,cAAc,YAAY,CAAC;AAC3B,mBAAmB;AACnB,cAAc,wBAAwB,CAAC"}
|
package/dist/types/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/math.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/math.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKpG;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/parse.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/parse.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA0BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,GAAE,mBAAwB,GAClC,MAAM,GAAG,IAAI,CAiBf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,GAAE,mBAAwB,GAClC,MAAM,GAAG,IAAI,CAwBf;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EACnD,OAAO,GAAE,mBAAwB,GAClC,OAAO,GAAG,IAAI,CAsBhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAGD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAGD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAgB/D;AA0BD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
package/dist/types/timer.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export default class Timer {
|
|
|
7
7
|
private _intervalId;
|
|
8
8
|
/**
|
|
9
9
|
* @param callback Callback
|
|
10
|
-
* @param interval
|
|
10
|
+
* @param interval Milliseconds between calls
|
|
11
11
|
*/
|
|
12
12
|
constructor(callback: () => void, interval: number);
|
|
13
13
|
get running(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timespan.d.ts","sourceRoot":"","sources":["../../src/timespan.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAClB,YAAY,EAAE,MAAM,CAAC;IAE5B,OAAO;IAKP;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,KAAK,IAAI,MAAM;IAIf;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,MAAM;IAIf;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ;IAIvD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAI7C;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAI7C;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIzC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAIvC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIzC;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ;IAI/C;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAIrC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAIrC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIjC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAI/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAIjC;;;;OAIG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ;IAIpD;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAI1C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAI1C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAItC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAIpC;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAItC;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAI9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAInC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIvB;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ;IAInE;;;;;OAKG;IACH,MAAM,CAAC,MAAM,GAAE,MAAmB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"timespan.d.ts","sourceRoot":"","sources":["../../src/timespan.ts"],"names":[],"mappings":"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"}
|
package/dist/types/type.d.ts
CHANGED
|
@@ -78,6 +78,8 @@ export default class Type<T = unknown> {
|
|
|
78
78
|
getMemberNames(): ReadonlyArray<string>;
|
|
79
79
|
hasMethod(name: string): boolean;
|
|
80
80
|
hasProperty(name: string): boolean;
|
|
81
|
+
private _getPrototypeMemberNames;
|
|
82
|
+
private _getOwnPrototypeDescriptor;
|
|
81
83
|
getStaticMemberNames(): ReadonlyArray<string>;
|
|
82
84
|
toString(): string;
|
|
83
85
|
[Symbol.toPrimitive](hint: string): string | number;
|
package/dist/types/type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO;IAMjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAM1D,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,OAAO,gBAAiF;IAC/G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,IAAI,aAAqE;IAChG,gBAAuB,SAAS,kBAAyF;IACzH,gBAAuB,MAAM,eAAwE;IACrG,gBAAuB,QAAQ,iBAAkF;IACjH,gBAAuB,KAAK,kBAAuE;IAMnG,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,cAAc,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO;IAcP;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IA8BxD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC,IAAW,WAAW,IAAI,OAAO,CAQhC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,OAAO,IAAI,OAAO,CAG5B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,OAAO,IAAI,OAAO,CAO5B;IAED,IAAW,QAAQ,IAAI,MAAM,CAK5B;IAMD,IAAW,QAAQ,IAAI,IAAI,GAAG,SAAS,CAUtC;IAEM,mBAAmB,IAAI,aAAa,CAAC,IAAI,CAAC;IAY1C,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAYrC,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIvC,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAUnC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO;IAMjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAM1D,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,OAAO,gBAAiF;IAC/G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,IAAI,aAAqE;IAChG,gBAAuB,SAAS,kBAAyF;IACzH,gBAAuB,MAAM,eAAwE;IACrG,gBAAuB,QAAQ,iBAAkF;IACjH,gBAAuB,KAAK,kBAAuE;IAMnG,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,cAAc,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO;IAcP;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IA8BxD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC,IAAW,WAAW,IAAI,OAAO,CAQhC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,OAAO,IAAI,OAAO,CAG5B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,OAAO,IAAI,OAAO,CAO5B;IAED,IAAW,QAAQ,IAAI,MAAM,CAK5B;IAMD,IAAW,QAAQ,IAAI,IAAI,GAAG,SAAS,CAUtC;IAEM,mBAAmB,IAAI,aAAa,CAAC,IAAI,CAAC;IAY1C,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAYrC,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIvC,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAUnC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAMvC,gBAAgB,IAAI,aAAa,CAAC,MAAM,CAAC;IAMzC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAIvC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKhC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKzC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,0BAA0B;IAK3B,oBAAoB,IAAI,aAAa,CAAC,MAAM,CAAC;IAc7C,QAAQ,IAAI,MAAM;IAKlB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAU1D,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;IAMD,OAAO,CAAC,MAAM,CAAC,YAAY;CAoB9B"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type Supplier<T> = () => T;
|
|
|
5
5
|
export type Nullable<T> = T | null;
|
|
6
6
|
export type Optional<T> = T | undefined;
|
|
7
7
|
export type Nullish = null | undefined;
|
|
8
|
-
export type Resolvable<T> = Promise<T> | Supplier<T>;
|
|
8
|
+
export type Resolvable<T> = T | Promise<T> | Supplier<T>;
|
|
9
9
|
export type UnaryFunction<T, R> = (arg: T) => R;
|
|
10
10
|
export type BinaryFunction<T1, T2, R> = (arg1: T1, arg2: T2) => R;
|
|
11
11
|
export type TernaryFunction<T1, T2, T3, R> = (arg1: T1, arg2: T2, arg3: T3) => R;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAEjF,MAAM,MAAM,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAChD,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,KACP,CAAC,CAAC;AAEP,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import KeyValuePair from "./key-value-pair.js";
|
|
2
|
-
import type { Resolvable } from "./types.js";
|
|
2
|
+
import type { Resolvable, Constructor } from "./types.js";
|
|
3
3
|
import Type from "./type.js";
|
|
4
4
|
export declare function lazy<T extends object>(factory: () => T): T;
|
|
5
5
|
/**
|
|
@@ -60,9 +60,10 @@ export declare function isFunction(value: any): value is Function;
|
|
|
60
60
|
*
|
|
61
61
|
* @param a - First value.
|
|
62
62
|
* @param b - Second value.
|
|
63
|
+
* @param includeInherited - Whether inherited enumerable properties are compared. Defaults to `true`.
|
|
63
64
|
* @returns `true` if `a` and `b` are structurally equal.
|
|
64
65
|
*/
|
|
65
|
-
export declare function deepEqual(a: unknown, b: unknown): boolean;
|
|
66
|
+
export declare function deepEqual(a: unknown, b: unknown, includeInherited?: boolean): boolean;
|
|
66
67
|
/**
|
|
67
68
|
* Submits an HTML form programmatically using the specified HTTP method (default is POST),
|
|
68
69
|
* without using AJAX. Supports nested objects and arrays using bracket notation (e.g., `user[name]`, `tags[]`).
|
|
@@ -102,7 +103,7 @@ export declare function isUndefined(value: any): value is undefined;
|
|
|
102
103
|
*
|
|
103
104
|
* @return {boolean} - True if the value is defined, false otherwise.
|
|
104
105
|
*/
|
|
105
|
-
export declare function isDefined(value:
|
|
106
|
+
export declare function isDefined<T>(value: T): value is Exclude<T, undefined>;
|
|
106
107
|
/**
|
|
107
108
|
* Checks if a given value is null.
|
|
108
109
|
*
|
|
@@ -197,4 +198,21 @@ export declare function deepClone<T>(value: T): T;
|
|
|
197
198
|
* @deprecated use Type.of(...)
|
|
198
199
|
*/
|
|
199
200
|
export declare function getType(value: any): Type;
|
|
201
|
+
/**
|
|
202
|
+
* Patches a method onto a class prototype.
|
|
203
|
+
*
|
|
204
|
+
* This function allows adding new methods to existing classes (monkey-patching).
|
|
205
|
+
* If the method name already exists on the prototype, a warning is issued
|
|
206
|
+
* and the method is not overwritten.
|
|
207
|
+
*
|
|
208
|
+
* If `method` is a function, its name is extracted (if not provided) and
|
|
209
|
+
* it is wrapped to pass the instance (`this`) as the first argument.
|
|
210
|
+
*
|
|
211
|
+
* @template T - The type of the class constructor.
|
|
212
|
+
* @param {T} target - The class constructor whose prototype will be patched.
|
|
213
|
+
* @param {any} method - The implementation or value to patch.
|
|
214
|
+
* @param {string | symbol} [name] - Optional name for the method. If not provided and method is a function, method.name is used.
|
|
215
|
+
* @returns {boolean} Returns `true` if the method was successfully added, or `false` if it already existed.
|
|
216
|
+
*/
|
|
217
|
+
export declare function monkeyPatch<T extends Constructor>(target: T, method: any, name?: string | symbol): boolean;
|
|
200
218
|
//# sourceMappingURL=utilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"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"}
|
package/dist/web/array.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { monkeyPatch } from "./utilities.js";
|
|
1
2
|
/**
|
|
2
3
|
* Removes all given values from the provided array and returns the number of removed elements.
|
|
3
4
|
* The operation mutates the original array.
|
|
@@ -9,8 +10,8 @@
|
|
|
9
10
|
export function pull(array, ...items) {
|
|
10
11
|
let output = 0;
|
|
11
12
|
for (const item of items) {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
let index;
|
|
14
|
+
while ((index = array.findIndex(val => Object.is(val, item))) !== -1) {
|
|
14
15
|
array.splice(index, 1);
|
|
15
16
|
output++;
|
|
16
17
|
}
|
|
@@ -76,4 +77,22 @@ export function pushIfAbsent(array, element) {
|
|
|
76
77
|
}
|
|
77
78
|
return false;
|
|
78
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Patches the Array prototype with the methods defined in this module:
|
|
82
|
+
* - pull
|
|
83
|
+
* - chunk
|
|
84
|
+
* - clear
|
|
85
|
+
* - remove
|
|
86
|
+
* - pushIfAbsent
|
|
87
|
+
*
|
|
88
|
+
* Each method is added only if it doesn't already exist on Array.prototype.
|
|
89
|
+
*/
|
|
90
|
+
export function patchArray() {
|
|
91
|
+
const target = Array;
|
|
92
|
+
monkeyPatch(target, pull);
|
|
93
|
+
monkeyPatch(target, chunk);
|
|
94
|
+
monkeyPatch(target, clear);
|
|
95
|
+
monkeyPatch(target, remove);
|
|
96
|
+
monkeyPatch(target, pushIfAbsent);
|
|
97
|
+
}
|
|
79
98
|
//# sourceMappingURL=array.js.map
|
package/dist/web/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAa3C;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAI,KAAe,EAAE,GAAG,KAAe;IAEvD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAI,KAAe,EAAE,IAAY;IAClD,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAI,KAAe;IACpC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAI,KAAe,EAAC,SAAuB;IAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACxC,CAAC;aAAM,CAAC;YACJ,CAAC,EAAE,CAAC;QACR,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAI,KAAe,EAAE,OAAU;IACvD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,MAAM,GAAG,KAA2C,CAAC;IAE3D,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import type {Constructor, Predicate} from \"./types.js\";\nimport {monkeyPatch} from \"./utilities.js\";\n\ndeclare global {\n interface Array<T> {\n pull(...items: Array<T>): number;\n chunk(size: number): Array<Array<T>>;\n clear(): void;\n remove(predicate: Predicate<T>): Array<T>;\n pushIfAbsent(element: T): boolean;\n }\n}\n\n\n/**\n * Removes all given values from the provided array and returns the number of removed elements.\n * The operation mutates the original array.\n * @template T\n * @param {Array<T>} array - The array to modify by removing specified items.\n * @param {...T} items - The values to remove from the array.\n * @return {number} The number of elements removed from the array.\n */\nexport function pull<T>(array: Array<T>, ...items: Array<T>): number {\n\n let output = 0;\n for (const item of items) {\n let index;\n while ((index = array.findIndex(val => Object.is(val, item))) !== -1) {\n array.splice(index, 1);\n output++;\n }\n }\n return output;\n}\n\n/**\n * Splits an array into chunks of a given size.\n * @template T\n * @param {Array<T>} array - The array to split.\n * @param {number} size - The size of each chunk.\n * @return {Array<Array<T>>} The array of chunks.\n */\nexport function chunk<T>(array: Array<T>, size: number): Array<Array<T>> {\n if (size <= 0) throw new Error(\"Size must be greater than 0\");\n const result: Array<Array<T>> = [];\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size));\n }\n return result;\n}\n\n/**\n * Removes all elements from the array, mutating it.\n * @template T\n * @param {Array<T>} array - The array to clear.\n */\nexport function clear<T>(array: Array<T>): void {\n array.length = 0;\n}\n\n/**\n * Removes all elements from the array that satisfy the predicate.\n * The operation mutates the original array.\n * @template T\n * @return {Array<T>} An array of removed elements.\n */\nexport function remove<T>(array: Array<T>,predicate: Predicate<T>): Array<T> {\n const removed: Array<T> = [];\n let i = 0;\n\n while (i < array.length) {\n if (predicate(array[i])) {\n removed.push(array[i]);\n array.splice(i, 1); // muta el array\n } else {\n i++;\n }\n }\n\n return removed;\n}\n\n/**\n * Adds an element to the array if it's not already present.\n * The operation mutates the original array.\n * @template T\n * @param {Array<T>} array - The array to modify.\n * @param {T} element - The element to add if absent.\n * @return {boolean} True if the element was added, false otherwise.\n */\nexport function pushIfAbsent<T>(array: Array<T>, element: T): boolean {\n if (!array.includes(element)) {\n array.push(element);\n return true;\n }\n return false;\n}\n\n/**\n * Patches the Array prototype with the methods defined in this module:\n * - pull\n * - chunk\n * - clear\n * - remove\n * - pushIfAbsent\n *\n * Each method is added only if it doesn't already exist on Array.prototype.\n */\nexport function patchArray(): void {\n const target = Array as unknown as Constructor<Array<any>>;\n\n monkeyPatch(target, pull);\n monkeyPatch(target, chunk);\n monkeyPatch(target, clear);\n monkeyPatch(target, remove);\n monkeyPatch(target, pushIfAbsent);\n}"]}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { delay } from "./utilities.js";
|
|
2
|
+
function normalizeMaxConcurrency(value) {
|
|
3
|
+
if (!Number.isInteger(value) || value < 1) {
|
|
4
|
+
throw new RangeError("maxConcurrency must be a positive integer");
|
|
5
|
+
}
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
function normalizeCheckInterval(value) {
|
|
9
|
+
return Number.isFinite(value) ? Math.max(0, value) : 0;
|
|
10
|
+
}
|
|
2
11
|
export default class AsyncPoolExecutor {
|
|
3
12
|
get maxConcurrency() {
|
|
4
13
|
return this._maxConcurrency;
|
|
5
14
|
}
|
|
6
15
|
set maxConcurrency(value) {
|
|
7
|
-
this._maxConcurrency = value;
|
|
16
|
+
this._maxConcurrency = normalizeMaxConcurrency(value);
|
|
8
17
|
}
|
|
9
18
|
/**
|
|
10
19
|
* @param {number} maxConcurrency - The maximum number of concurrent tasks allowed.
|
|
@@ -12,8 +21,8 @@ export default class AsyncPoolExecutor {
|
|
|
12
21
|
*/
|
|
13
22
|
constructor(maxConcurrency, checkInterval = 50) {
|
|
14
23
|
this._taskQueue = [];
|
|
15
|
-
this._maxConcurrency = maxConcurrency;
|
|
16
|
-
this._checkIntervalMs = checkInterval;
|
|
24
|
+
this._maxConcurrency = normalizeMaxConcurrency(maxConcurrency);
|
|
25
|
+
this._checkIntervalMs = normalizeCheckInterval(checkInterval);
|
|
17
26
|
this._activeTasks = 0;
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
@@ -22,20 +31,25 @@ export default class AsyncPoolExecutor {
|
|
|
22
31
|
* @param {Supplier<T>} task - The deferred task to be executed asynchronously.
|
|
23
32
|
*/
|
|
24
33
|
submit(task) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.
|
|
34
|
+
const promise = new Promise((resolve, reject) => {
|
|
35
|
+
this._taskQueue.push({ task, resolve, reject });
|
|
36
|
+
});
|
|
37
|
+
if (this._process != null)
|
|
38
|
+
return promise;
|
|
39
|
+
this._process = setTimeout(async () => {
|
|
29
40
|
while (this._taskQueue.length > 0) {
|
|
30
41
|
while (this._activeTasks >= this._maxConcurrency) {
|
|
31
42
|
await delay(this._checkIntervalMs);
|
|
32
43
|
}
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
44
|
+
const queuedTask = this._taskQueue.shift();
|
|
45
|
+
if (queuedTask) {
|
|
35
46
|
this._activeTasks++;
|
|
36
47
|
setTimeout(async () => {
|
|
37
48
|
try {
|
|
38
|
-
await task();
|
|
49
|
+
queuedTask.resolve(await queuedTask.task());
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
queuedTask.reject(error);
|
|
39
53
|
}
|
|
40
54
|
finally {
|
|
41
55
|
this._activeTasks--;
|
|
@@ -43,8 +57,9 @@ export default class AsyncPoolExecutor {
|
|
|
43
57
|
});
|
|
44
58
|
}
|
|
45
59
|
}
|
|
46
|
-
this.
|
|
60
|
+
this._process = null;
|
|
47
61
|
}, 0);
|
|
62
|
+
return promise;
|
|
48
63
|
}
|
|
49
64
|
/**
|
|
50
65
|
* Waits until all tasks (both queued and active) are completed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-pool-executor.js","sourceRoot":"","sources":["../../src/async-pool-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"async-pool-executor.js","sourceRoot":"","sources":["../../src/async-pool-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAQrC,SAAS,uBAAuB,CAAC,KAAa;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAGlC,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAI,cAAc,CAAC,KAAa;QAC5B,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAE1D,CAAC;IAQD;;;OAGG;IACH,YAAY,cAAsB,EAAE,gBAAwB,EAAE;QAPtD,eAAU,GAA2B,EAAE,CAAC;QAQ5C,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAI,IAA8B;QAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YACrB,OAAO,OAAO,CAAC;QAEnB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAElC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAEhC,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC/C,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,UAAU,CAAC,KAAK,IAAI,EAAE;wBAClB,IAAI,CAAC;4BACD,UAAU,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;wBAChD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACb,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC7B,CAAC;gCAAS,CAAC;4BACP,IAAI,CAAC,YAAY,EAAE,CAAC;wBACxB,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YAGL,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,OAAO,CAAC;IAGnB,CAAC;IAGD;;;;;OAKG;IACI,KAAK,CAAC,QAAQ;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;CACJ","sourcesContent":["import type {Supplier} from \"./types.js\";\nimport {delay} from \"./utilities.js\";\n\ntype QueuedTask<T> = {\n task: Supplier<T | Promise<T>>;\n resolve: (value: T) => void;\n reject: (reason?: any) => void;\n};\n\nfunction normalizeMaxConcurrency(value: number): number {\n if (!Number.isInteger(value) || value < 1) {\n throw new RangeError(\"maxConcurrency must be a positive integer\");\n }\n return value;\n}\n\nfunction normalizeCheckInterval(value: number): number {\n return Number.isFinite(value) ? Math.max(0, value) : 0;\n}\n\nexport default class AsyncPoolExecutor {\n private _checkIntervalMs: number;\n\n get maxConcurrency(): number {\n return this._maxConcurrency;\n }\n\n set maxConcurrency(value: number) {\n this._maxConcurrency = normalizeMaxConcurrency(value);\n\n }\n\n private _process: any;\n private _maxConcurrency: number;\n private _activeTasks: number;\n private _taskQueue: Array<QueuedTask<any>> = [];\n\n\n /**\n * @param {number} maxConcurrency - The maximum number of concurrent tasks allowed.\n * @param {number} [checkInterval=50] - The interval, in milliseconds, to check for capacity to run new tasks. Defaults to 50 ms.\n */\n constructor(maxConcurrency: number, checkInterval: number = 50) {\n this._maxConcurrency = normalizeMaxConcurrency(maxConcurrency);\n this._checkIntervalMs = normalizeCheckInterval(checkInterval);\n this._activeTasks = 0;\n }\n\n /**\n * Submits a deferred task to a queue for asynchronous execution and returns a Promise resolving to its result.\n * @template T\n * @param {Supplier<T>} task - The deferred task to be executed asynchronously.\n */\n public submit<T>(task: Supplier<T | Promise<T>>): Promise<T> {\n const promise = new Promise<T>((resolve, reject) => {\n this._taskQueue.push({task, resolve, reject});\n });\n\n if (this._process != null)\n return promise;\n\n this._process = setTimeout(async () => {\n\n while (this._taskQueue.length > 0) {\n\n while (this._activeTasks >= this._maxConcurrency) {\n await delay(this._checkIntervalMs);\n }\n\n const queuedTask = this._taskQueue.shift();\n if (queuedTask) {\n this._activeTasks++;\n setTimeout(async () => {\n try {\n queuedTask.resolve(await queuedTask.task());\n } catch (error) {\n queuedTask.reject(error);\n } finally {\n this._activeTasks--;\n }\n });\n }\n\n\n }\n\n this._process = null;\n }, 0);\n\n return promise;\n\n\n }\n\n\n /**\n * Waits until all tasks (both queued and active) are completed.\n * This method resolves only when there are no pending tasks.\n *\n * @return {Promise<void>} A promise that resolves when all tasks are complete.\n */\n public async shutdown(): Promise<void> {\n while (this._taskQueue.length > 0 || this._activeTasks > 0) {\n await delay(this._checkIntervalMs);\n }\n }\n}\n"]}
|