@zajno/common 2.0.1 → 2.0.3
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/coverage/clover.xml +6 -6
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/__tests__/helpers/expect.ts.html +1 -1
- package/coverage/lcov-report/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/async/index.html +1 -1
- package/coverage/lcov-report/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/dates/format.ts.html +1 -1
- package/coverage/lcov-report/dates/index.html +1 -1
- package/coverage/lcov-report/dates/index.ts.html +1 -1
- package/coverage/lcov-report/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/dates/period.ts.html +1 -1
- package/coverage/lcov-report/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/dates/types.ts.html +1 -1
- package/coverage/lcov-report/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/fields/index.html +1 -1
- package/coverage/lcov-report/fields/update.ts.html +1 -1
- package/coverage/lcov-report/functions/index.html +1 -1
- package/coverage/lcov-report/functions/safeCall.ts.html +1 -1
- package/coverage/lcov-report/index.html +5 -5
- package/coverage/lcov-report/lazy/index.html +1 -1
- package/coverage/lcov-report/lazy/promise.ts.html +1 -1
- package/coverage/lcov-report/lazy/singleton.ts.html +1 -1
- package/coverage/lcov-report/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/logger/console.ts.html +1 -1
- package/coverage/lcov-report/logger/index.html +5 -5
- package/coverage/lcov-report/logger/index.ts.html +4 -4
- package/coverage/lcov-report/logger/named.ts.html +1 -1
- package/coverage/lcov-report/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/math/calc.ts.html +1 -1
- package/coverage/lcov-report/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/math/index.html +1 -1
- package/coverage/lcov-report/math/index.ts.html +1 -1
- package/coverage/lcov-report/observing/event.ts.html +1 -1
- package/coverage/lcov-report/observing/index.html +1 -1
- package/coverage/lcov-report/structures/helpers/enum.ts.html +1 -1
- package/coverage/lcov-report/structures/helpers/index.html +1 -1
- package/coverage/lcov-report/structures/index.html +1 -1
- package/coverage/lcov-report/structures/queue/index.html +1 -1
- package/coverage/lcov-report/structures/queue/parallel.ts.html +1 -1
- package/coverage/lcov-report/structures/queue/tasks.ts.html +1 -1
- package/coverage/lcov-report/structures/tempoCache.ts.html +1 -1
- package/coverage/lcov-report/types/comparator.ts.html +1 -1
- package/coverage/lcov-report/types/getter.ts.html +1 -1
- package/coverage/lcov-report/types/index.html +1 -1
- package/coverage/lcov-report/types/index.ts.html +1 -1
- package/coverage/lcov-report/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/validation/index.html +1 -1
- package/coverage/lcov-report/validation/index.ts.html +1 -1
- package/coverage/lcov-report/validation/types.ts.html +1 -1
- package/coverage/lcov-report/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/validation/wrappers.ts.html +1 -1
- package/coverage/lcov.info +15 -17
- package/lib/async/misc.d.ts +6 -1
- package/lib/async/misc.d.ts.map +1 -1
- package/lib/async/misc.js +17 -3
- package/lib/async/misc.js.map +1 -1
- package/lib/logger/index.d.ts.map +1 -1
- package/lib/logger/index.js +1 -1
- package/lib/logger/index.js.map +1 -1
- package/lib/observing/progressTracker.d.ts +4 -0
- package/lib/observing/progressTracker.d.ts.map +1 -1
- package/lib/observing/progressTracker.js +8 -3
- package/lib/observing/progressTracker.js.map +1 -1
- package/package.json +1 -1
- package/src/async/misc.ts +16 -1
- package/src/logger/index.ts +1 -1
- package/src/observing/progressTracker.ts +9 -3
package/src/async/misc.ts
CHANGED
|
@@ -3,9 +3,24 @@ export async function OptAwait<T>(cb: () => (T | Promise<T>), doAwait: boolean):
|
|
|
3
3
|
return cb && (doAwait ? (await cb()) : cb());
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
export async function
|
|
6
|
+
export async function chainPromises(...promises: (() => Promise<void>)[]) {
|
|
7
7
|
|
|
8
8
|
const applyAsync = (acc: Promise<void>, val: () => Promise<void>) => acc.then(val);
|
|
9
9
|
|
|
10
10
|
return promises.reduce(applyAsync, Promise.resolve());
|
|
11
11
|
}
|
|
12
|
+
|
|
13
|
+
export function createManualPromise<T = void>() {
|
|
14
|
+
let resolve: (res: T) => void = null;
|
|
15
|
+
let reject: (err: Error) => void = null;
|
|
16
|
+
const promise = new Promise<T>((_resolve, _reject) => {
|
|
17
|
+
resolve = _resolve;
|
|
18
|
+
reject = _reject;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
promise,
|
|
23
|
+
resolve,
|
|
24
|
+
reject,
|
|
25
|
+
};
|
|
26
|
+
}
|
package/src/logger/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { ILogger, LoggerFunction, ConsoleLogger, batchLoggers };
|
|
|
11
11
|
// TBD Introduce more logger types ?
|
|
12
12
|
export type LoggerTypes = 'console';
|
|
13
13
|
|
|
14
|
-
let Mode: LoggerTypes | false | Getter<ILogger> =
|
|
14
|
+
let Mode: LoggerTypes | false | Getter<ILogger> = false;
|
|
15
15
|
|
|
16
16
|
const proxies: ProxyLogger[] = [];
|
|
17
17
|
|
|
@@ -12,6 +12,8 @@ export class ProgressTracker {
|
|
|
12
12
|
private _completed = 0;
|
|
13
13
|
private _total = 0;
|
|
14
14
|
|
|
15
|
+
private _currentProgress: number = 0;
|
|
16
|
+
|
|
15
17
|
private readonly _deltas: number[] = [];
|
|
16
18
|
|
|
17
19
|
private readonly _changed = new Event<{ completed: number, total: number, currentProgress: number, totalElapsedMs: number, totalEstimatedMs: number }>();
|
|
@@ -19,6 +21,9 @@ export class ProgressTracker {
|
|
|
19
21
|
constructor(readonly log: boolean | ILogger = true) { }
|
|
20
22
|
|
|
21
23
|
public get changed() { return this._changed.expose(); }
|
|
24
|
+
public get total() { return this._total; }
|
|
25
|
+
public get completed() { return this._completed; }
|
|
26
|
+
public get current() { return this._currentProgress; }
|
|
22
27
|
|
|
23
28
|
private get logger() {
|
|
24
29
|
return this.log === true
|
|
@@ -45,6 +50,7 @@ export class ProgressTracker {
|
|
|
45
50
|
const elapsedDelta = Date.now() - this._lastTimestamp;
|
|
46
51
|
const completedDelta = completed - (this._lastCompleted || 0);
|
|
47
52
|
this._lastCompleted = completed;
|
|
53
|
+
this._completed = completed;
|
|
48
54
|
const timePerCompleted = completedDelta > 0 ? (elapsedDelta / completedDelta) : 0;
|
|
49
55
|
|
|
50
56
|
this._deltas.push(timePerCompleted);
|
|
@@ -52,7 +58,7 @@ export class ProgressTracker {
|
|
|
52
58
|
this._deltas.shift();
|
|
53
59
|
}
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
this._currentProgress = Math.floor(completed / (total || 100) * 100);
|
|
56
62
|
const itemsLeft = total - completed;
|
|
57
63
|
const leftProgressTime = itemsLeft * (MathHelpers.arrayAverage(this._deltas, true) || 1000);
|
|
58
64
|
|
|
@@ -64,13 +70,13 @@ export class ProgressTracker {
|
|
|
64
70
|
const totalElapsed = msToString(totalElapsedMs);
|
|
65
71
|
const totalEstimated = msToString(leftProgressTime);
|
|
66
72
|
|
|
67
|
-
this.logger.log(`Progress: ${completed}/${total} ${totalElapsed}/${totalEstimated} => ${
|
|
73
|
+
this.logger.log(`Progress: ${completed}/${total} ${totalElapsed}/${totalEstimated} => ${this._currentProgress}%`);
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
this._changed.trigger({
|
|
71
77
|
completed,
|
|
72
78
|
total,
|
|
73
|
-
currentProgress,
|
|
79
|
+
currentProgress: this._currentProgress,
|
|
74
80
|
totalElapsedMs,
|
|
75
81
|
totalEstimatedMs: leftProgressTime,
|
|
76
82
|
});
|