@zajno/common 3.0.3 → 3.0.4
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/async/misc.d.ts +2 -1
- package/async/misc.d.ts.map +1 -1
- package/async/misc.js.map +1 -1
- package/functions/throttle.d.ts +6 -5
- package/functions/throttle.d.ts.map +1 -1
- package/functions/throttle.js +22 -3
- package/functions/throttle.js.map +1 -1
- package/package.json +1 -1
package/async/misc.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export declare function OptAwait<T>(cb: () => (T | Promise<T>), doAwait: boolean): Promise<T>;
|
|
2
2
|
export declare function chainPromises(...promises: (() => Promise<void>)[]): Promise<void>;
|
|
3
|
-
export
|
|
3
|
+
export type ManualPromise<T> = {
|
|
4
4
|
promise: Promise<T>;
|
|
5
5
|
resolve: (res: T) => void;
|
|
6
6
|
reject: (err: Error) => void;
|
|
7
7
|
};
|
|
8
|
+
export declare function createManualPromise<T = void>(): ManualPromise<T>;
|
|
8
9
|
//# sourceMappingURL=misc.d.ts.map
|
package/async/misc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/async/misc.ts"],"names":[],"mappings":"AACA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1F;AAED,wBAAsB,aAAa,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,iBAKvE;AAED,
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/async/misc.ts"],"names":[],"mappings":"AACA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1F;AAED,wBAAsB,aAAa,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,iBAKvE;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAahE"}
|
package/async/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/async/misc.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/async/misc.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAQD,MAAM,UAAU,mBAAmB;IAC/B,IAAI,OAAO,GAAqB,IAAI,CAAC;IACrC,IAAI,MAAM,GAAyB,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,OAAO;QACP,MAAM;KACT,CAAC;AACN,CAAC"}
|
package/functions/throttle.d.ts
CHANGED
|
@@ -8,14 +8,15 @@ export declare class ThrottleAction<T = any> {
|
|
|
8
8
|
clear(): void;
|
|
9
9
|
tryRun(cb: () => T | Promise<T>, restartTimeout?: boolean): void;
|
|
10
10
|
forceRun: () => Promise<T>;
|
|
11
|
-
getPromise(): Promise<void>;
|
|
11
|
+
getPromise(): Promise<void> | Promise<T>;
|
|
12
12
|
}
|
|
13
|
-
export declare class ThrottleProcessor<TSubject> {
|
|
14
|
-
readonly process: (objs: TSubject[]) => Promise<
|
|
13
|
+
export declare class ThrottleProcessor<TSubject, TResult = any> {
|
|
14
|
+
readonly process: (objs: TSubject[]) => Promise<TResult>;
|
|
15
15
|
private readonly _queue;
|
|
16
16
|
private readonly _action;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
private _promise;
|
|
18
|
+
constructor(process: (objs: TSubject[]) => Promise<TResult>, timeout?: number);
|
|
19
|
+
push(data: TSubject): Promise<TResult>;
|
|
19
20
|
private _process;
|
|
20
21
|
clear(): void;
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG;IAQZ,OAAO;IAN1B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAA+B;gBAE9B,OAAO,SAAO;IAEjC,KAAK;IAML,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,UAAQ;IAWvD,QAAQ,mBAqBN;IAEF,UAAU;CAWb;AAED,qBAAa,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG;IAOtC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;IALpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD,OAAO,CAAC,QAAQ,CAAgC;gBAE3B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,SAAO;IAQpF,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtC,OAAO,CAAC,QAAQ,CAgBd;IAEF,KAAK;CAKR"}
|
package/functions/throttle.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createManualPromise } from '../async/misc';
|
|
1
2
|
import logger from '../logger';
|
|
2
3
|
export class ThrottleAction {
|
|
3
4
|
constructor(timeout = 1000) {
|
|
@@ -13,16 +14,18 @@ export class ThrottleAction {
|
|
|
13
14
|
logger.warn('THROTTLE LOCKED');
|
|
14
15
|
}
|
|
15
16
|
else if (cb) {
|
|
17
|
+
let result = undefined;
|
|
16
18
|
try {
|
|
17
19
|
this._locked = true;
|
|
18
|
-
|
|
20
|
+
result = await cb();
|
|
21
|
+
return result;
|
|
19
22
|
}
|
|
20
23
|
finally {
|
|
21
24
|
this._locked = false;
|
|
22
25
|
const resolvers = this._resolvers.slice();
|
|
23
26
|
this._resolvers.length = 0;
|
|
24
27
|
// logger.log('getPromise: resolving', resolvers.length);
|
|
25
|
-
resolvers.forEach(r => r());
|
|
28
|
+
resolvers.forEach(r => r(result));
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
};
|
|
@@ -59,13 +62,23 @@ export class ThrottleProcessor {
|
|
|
59
62
|
this.process = process;
|
|
60
63
|
this._queue = [];
|
|
61
64
|
this._action = null;
|
|
65
|
+
this._promise = null;
|
|
62
66
|
this._process = async () => {
|
|
63
67
|
if (!this._queue.length) {
|
|
64
68
|
return;
|
|
65
69
|
}
|
|
66
70
|
const objs = this._queue.slice();
|
|
67
71
|
this._queue.length = 0;
|
|
68
|
-
|
|
72
|
+
try {
|
|
73
|
+
const res = await this.process(objs);
|
|
74
|
+
this._promise.resolve(res);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
this._promise.reject(err);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
this._promise = null;
|
|
81
|
+
}
|
|
69
82
|
};
|
|
70
83
|
if (!process) {
|
|
71
84
|
throw new Error('Arg0 expected: process');
|
|
@@ -74,10 +87,16 @@ export class ThrottleProcessor {
|
|
|
74
87
|
}
|
|
75
88
|
push(data) {
|
|
76
89
|
this._queue.push(data);
|
|
90
|
+
if (!this._promise) {
|
|
91
|
+
this._promise = createManualPromise();
|
|
92
|
+
}
|
|
77
93
|
this._action.tryRun(this._process, true);
|
|
94
|
+
return this._promise.promise;
|
|
78
95
|
}
|
|
79
96
|
clear() {
|
|
80
97
|
this._action.clear();
|
|
98
|
+
this._promise?.resolve(undefined);
|
|
99
|
+
this._promise = null;
|
|
81
100
|
}
|
|
82
101
|
}
|
|
83
102
|
//# sourceMappingURL=throttle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,OAAO,cAAc;IAQvB,YAAmB,UAAU,IAAI;QAAd,YAAO,GAAP,OAAO,CAAO;QANzB,gBAAW,GAAQ,IAAI,CAAC;QACxB,iBAAY,GAA2B,IAAI,CAAC;QAC5C,YAAO,GAAG,KAAK,CAAC;QAEhB,eAAU,
|
|
1
|
+
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"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"}
|