@bitbeater/ecma-utils 2.10.0 → 2.10.2
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/bytes.d.ts +0 -0
- package/dist/bytes.d.ts.map +0 -0
- package/dist/bytes.js +8 -11
- package/dist/bytes.js.map +1 -1
- package/dist/collection/CircularArray.d.ts +0 -0
- package/dist/collection/CircularArray.d.ts.map +0 -0
- package/dist/collection/CircularArray.js +4 -7
- package/dist/collection/CircularArray.js.map +1 -1
- package/dist/collection/EvictingDequeue.d.ts +0 -0
- package/dist/collection/EvictingDequeue.d.ts.map +0 -0
- package/dist/collection/EvictingDequeue.js +6 -23
- package/dist/collection/EvictingDequeue.js.map +1 -1
- package/dist/collection/collection.d.ts +3 -3
- package/dist/collection/collection.d.ts.map +1 -1
- package/dist/collection/collection.js +3 -22
- package/dist/collection/collection.js.map +1 -1
- package/dist/collection/collectionOperations.d.ts +0 -0
- package/dist/collection/collectionOperations.d.ts.map +0 -0
- package/dist/collection/collectionOperations.js +11 -22
- package/dist/collection/collectionOperations.js.map +1 -1
- package/dist/cons.d.ts +0 -0
- package/dist/cons.d.ts.map +0 -0
- package/dist/cons.js +3 -8
- package/dist/cons.js.map +1 -1
- package/dist/consts.d.ts +0 -0
- package/dist/consts.d.ts.map +0 -0
- package/dist/consts.js +1 -4
- package/dist/consts.js.map +1 -1
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -48
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +0 -0
- package/dist/logger.d.ts.map +0 -0
- package/dist/logger.js +8 -13
- package/dist/logger.js.map +1 -1
- package/dist/math.d.ts +0 -0
- package/dist/math.d.ts.map +0 -0
- package/dist/math.js +12 -26
- package/dist/math.js.map +1 -1
- package/dist/mime.js +3 -6
- package/dist/mime.js.map +1 -1
- package/dist/net/http/cookies.js +3 -8
- package/dist/net/http/cookies.js.map +1 -1
- package/dist/net/http/errors.js +2 -5
- package/dist/net/http/errors.js.map +1 -1
- package/dist/net/http/headers.js +2 -5
- package/dist/net/http/headers.js.map +1 -1
- package/dist/net/http/http.d.ts +12 -13
- package/dist/net/http/http.d.ts.map +1 -1
- package/dist/net/http/http.js +20 -19
- package/dist/net/http/http.js.map +1 -1
- package/dist/net/http/methods.js +2 -5
- package/dist/net/http/methods.js.map +1 -1
- package/dist/object.d.ts +0 -0
- package/dist/object.d.ts.map +0 -0
- package/dist/object.js +3 -8
- package/dist/object.js.map +1 -1
- package/dist/path/path.d.ts +1 -1
- package/dist/path/path.d.ts.map +1 -1
- package/dist/path/path.js +1 -0
- package/dist/path/path.js.map +0 -0
- package/dist/promises.d.ts +0 -0
- package/dist/promises.d.ts.map +0 -0
- package/dist/promises.js +2 -6
- package/dist/promises.js.map +1 -1
- package/dist/random.d.ts +0 -0
- package/dist/random.d.ts.map +0 -0
- package/dist/random.js +10 -19
- package/dist/random.js.map +1 -1
- package/dist/revivers.d.ts +0 -0
- package/dist/revivers.d.ts.map +0 -0
- package/dist/revivers.js +3 -8
- package/dist/revivers.js.map +1 -1
- package/dist/strings.d.ts +0 -0
- package/dist/strings.d.ts.map +0 -0
- package/dist/strings.js +9 -20
- package/dist/strings.js.map +1 -1
- package/dist/time/time.d.ts +0 -0
- package/dist/time/time.d.ts.map +0 -0
- package/dist/time/time.js +60 -74
- package/dist/time/time.js.map +1 -1
- package/dist/time/timer.d.ts +1 -1
- package/dist/time/timer.d.ts.map +1 -1
- package/dist/time/timer.js +55 -67
- package/dist/time/timer.js.map +1 -1
- package/dist/utils/task_duration_tracker.d.ts +1 -1
- package/dist/utils/task_duration_tracker.d.ts.map +1 -1
- package/dist/utils/task_duration_tracker.js +12 -15
- package/dist/utils/task_duration_tracker.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -11
- package/dist/utils/utils.js.map +1 -1
- package/package.json +6 -2
- package/dist/net/http.d.ts +0 -22
- package/dist/net/http.d.ts.map +0 -1
- package/dist/net/http.js +0 -74
- package/dist/net/http.js.map +0 -1
- package/dist/time.d.ts +0 -189
- package/dist/time.d.ts.map +0 -1
- package/dist/time.js +0 -308
- package/dist/time.js.map +0 -1
package/dist/time/time.js
CHANGED
|
@@ -1,69 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.leapMonths = exports.months = exports.december = exports.november = exports.october = exports.september = exports.august = exports.july = exports.june = exports.may = exports.april = exports.march = exports.february = exports.january = exports.leapFebruary = exports.leapYear = exports.year = exports.month = exports.solarYear = exports.week = exports.day = exports.hour = exports.minute = exports.second = exports.millis = exports.MAX_JS_DATE = void 0;
|
|
4
|
-
exports.durationToMilliSeconds = durationToMilliSeconds;
|
|
5
|
-
exports.millisecondsToDuration = millisecondsToDuration;
|
|
6
|
-
exports.durationToSeconds = durationToSeconds;
|
|
7
|
-
exports.isDurationBiggerThanInterval = isDurationBiggerThanInterval;
|
|
8
|
-
exports.splitIntervalByDuration = splitIntervalByDuration;
|
|
9
|
-
exports.multiplyDuration = multiplyDuration;
|
|
10
|
-
exports.addDurations = addDurations;
|
|
11
|
-
exports.isValidDate = isValidDate;
|
|
12
|
-
exports.toSqlDate = toSqlDate;
|
|
13
|
-
exports.intervalToDuration = intervalToDuration;
|
|
14
|
-
exports.humanizeDuration = humanizeDuration;
|
|
15
|
-
exports.MAX_JS_DATE = 8.64e15; // Sat Sep 13 275760 00:00:00 GMT+0000
|
|
1
|
+
export const MAX_JS_DATE = 8.64e15; // Sat Sep 13 275760 00:00:00 GMT+0000
|
|
16
2
|
/** in millis */
|
|
17
|
-
|
|
3
|
+
export const millis = 1;
|
|
18
4
|
/** in millis */
|
|
19
|
-
|
|
5
|
+
export const second = 1000 * millis;
|
|
20
6
|
/** in millis */
|
|
21
|
-
|
|
7
|
+
export const minute = 60 * second;
|
|
22
8
|
/** in millis */
|
|
23
|
-
|
|
9
|
+
export const hour = 60 * minute;
|
|
24
10
|
/** in millis */
|
|
25
|
-
|
|
11
|
+
export const day = 24 * hour;
|
|
26
12
|
/** in millis */
|
|
27
|
-
|
|
13
|
+
export const week = 7 * day;
|
|
28
14
|
/**
|
|
29
15
|
* In millis
|
|
30
16
|
* The average month is 365/12 = 30.42 days in a regular year and 366/12 = 30.50 days in a leap year. The Gregorian (western) solar calendar has 365.2425/12 = 30.436875 days on the average, varying between 28 and 31 days.
|
|
31
17
|
*/
|
|
32
|
-
|
|
18
|
+
export const solarYear = 365.25 * day;
|
|
33
19
|
/** in millis */
|
|
34
|
-
|
|
20
|
+
export const month = solarYear / 12;
|
|
35
21
|
/** in millis */
|
|
36
|
-
|
|
22
|
+
export const year = 365 * day;
|
|
37
23
|
/** 366 days */
|
|
38
|
-
|
|
24
|
+
export const leapYear = 366 * day;
|
|
39
25
|
/** 29 days */
|
|
40
|
-
|
|
26
|
+
export const leapFebruary = 29 * day;
|
|
41
27
|
/** in millis */
|
|
42
|
-
|
|
28
|
+
export const january = 31 * day;
|
|
43
29
|
/** in millis */
|
|
44
|
-
|
|
30
|
+
export const february = 28 * day;
|
|
45
31
|
/** in millis */
|
|
46
|
-
|
|
32
|
+
export const march = 31 * day;
|
|
47
33
|
/** in millis */
|
|
48
|
-
|
|
34
|
+
export const april = 30 * day;
|
|
49
35
|
/** in millis */
|
|
50
|
-
|
|
36
|
+
export const may = 31 * day;
|
|
51
37
|
/** in millis */
|
|
52
|
-
|
|
38
|
+
export const june = 30 * day;
|
|
53
39
|
/** in millis */
|
|
54
|
-
|
|
40
|
+
export const july = 31 * day;
|
|
55
41
|
/** in millis */
|
|
56
|
-
|
|
42
|
+
export const august = 31 * day;
|
|
57
43
|
/** in millis */
|
|
58
|
-
|
|
44
|
+
export const september = 30 * day;
|
|
59
45
|
/** in millis */
|
|
60
|
-
|
|
46
|
+
export const october = 31 * day;
|
|
61
47
|
/** in millis */
|
|
62
|
-
|
|
48
|
+
export const november = 30 * day;
|
|
63
49
|
/** in millis */
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
50
|
+
export const december = 31 * day;
|
|
51
|
+
export const months = [january, february, march, april, may, june, july, august, september, october, november, december];
|
|
52
|
+
export const leapMonths = [january, leapFebruary, march, april, may, june, july, august, september, october, november, december];
|
|
67
53
|
/**
|
|
68
54
|
* parse a duration into millisecconds
|
|
69
55
|
*
|
|
@@ -76,32 +62,32 @@ exports.leapMonths = [exports.january, exports.leapFebruary, exports.march, expo
|
|
|
76
62
|
* durationToMilliSeconds({hours:1,minutes:1,seconds:1}) // => 3_661_000
|
|
77
63
|
* ```
|
|
78
64
|
*/
|
|
79
|
-
function durationToMilliSeconds(duration) {
|
|
80
|
-
return ((duration?.years || 0) *
|
|
81
|
-
(duration?.months || 0) *
|
|
82
|
-
(duration?.weeks || 0) *
|
|
83
|
-
(duration?.days || 0) *
|
|
84
|
-
(duration?.hours || 0) *
|
|
85
|
-
(duration?.minutes || 0) *
|
|
86
|
-
(duration?.seconds || 0) *
|
|
87
|
-
(duration?.milliseconds || 0) *
|
|
65
|
+
export function durationToMilliSeconds(duration) {
|
|
66
|
+
return ((duration?.years || 0) * year +
|
|
67
|
+
(duration?.months || 0) * month +
|
|
68
|
+
(duration?.weeks || 0) * week +
|
|
69
|
+
(duration?.days || 0) * day +
|
|
70
|
+
(duration?.hours || 0) * hour +
|
|
71
|
+
(duration?.minutes || 0) * minute +
|
|
72
|
+
(duration?.seconds || 0) * second +
|
|
73
|
+
(duration?.milliseconds || 0) * millis);
|
|
88
74
|
}
|
|
89
|
-
function millisecondsToDuration(millis) {
|
|
75
|
+
export function millisecondsToDuration(millis) {
|
|
90
76
|
const duration = {};
|
|
91
|
-
duration.years = Math.floor(millis /
|
|
92
|
-
millis %=
|
|
93
|
-
duration.months = Math.floor(millis /
|
|
94
|
-
millis %=
|
|
95
|
-
duration.weeks = Math.floor(millis /
|
|
96
|
-
millis %=
|
|
97
|
-
duration.days = Math.floor(millis /
|
|
98
|
-
millis %=
|
|
99
|
-
duration.hours = Math.floor(millis /
|
|
100
|
-
millis %=
|
|
101
|
-
duration.minutes = Math.floor(millis /
|
|
102
|
-
millis %=
|
|
103
|
-
duration.seconds = Math.floor(millis /
|
|
104
|
-
millis %=
|
|
77
|
+
duration.years = Math.floor(millis / year);
|
|
78
|
+
millis %= year;
|
|
79
|
+
duration.months = Math.floor(millis / month);
|
|
80
|
+
millis %= month;
|
|
81
|
+
duration.weeks = Math.floor(millis / week);
|
|
82
|
+
millis %= week;
|
|
83
|
+
duration.days = Math.floor(millis / day);
|
|
84
|
+
millis %= day;
|
|
85
|
+
duration.hours = Math.floor(millis / hour);
|
|
86
|
+
millis %= hour;
|
|
87
|
+
duration.minutes = Math.floor(millis / minute);
|
|
88
|
+
millis %= minute;
|
|
89
|
+
duration.seconds = Math.floor(millis / second);
|
|
90
|
+
millis %= second;
|
|
105
91
|
duration.milliseconds = millis;
|
|
106
92
|
return duration;
|
|
107
93
|
}
|
|
@@ -117,13 +103,13 @@ function millisecondsToDuration(millis) {
|
|
|
117
103
|
* durationToMilliSeconds({hours:1,minutes:1,seconds:1}) // => 3_661
|
|
118
104
|
* ```
|
|
119
105
|
*/
|
|
120
|
-
function durationToSeconds(duration) {
|
|
121
|
-
return durationToMilliSeconds(duration) /
|
|
106
|
+
export function durationToSeconds(duration) {
|
|
107
|
+
return durationToMilliSeconds(duration) / second;
|
|
122
108
|
}
|
|
123
109
|
/**
|
|
124
110
|
* check if the duration is larger than the interval
|
|
125
111
|
*/
|
|
126
|
-
function isDurationBiggerThanInterval(interval, duration) {
|
|
112
|
+
export function isDurationBiggerThanInterval(interval, duration) {
|
|
127
113
|
const intervalSeconds = Math.abs(interval.end.getTime() - interval.start.getTime()) / 1000;
|
|
128
114
|
const durationSeconds = durationToSeconds(duration);
|
|
129
115
|
return durationSeconds > intervalSeconds;
|
|
@@ -150,7 +136,7 @@ function isDurationBiggerThanInterval(interval, duration) {
|
|
|
150
136
|
* // ]
|
|
151
137
|
* ```
|
|
152
138
|
*/
|
|
153
|
-
function splitIntervalByDuration(interval, duration) {
|
|
139
|
+
export function splitIntervalByDuration(interval, duration) {
|
|
154
140
|
if (!interval?.start || !interval?.end)
|
|
155
141
|
return;
|
|
156
142
|
if (isDurationBiggerThanInterval(interval, duration))
|
|
@@ -176,7 +162,7 @@ function splitIntervalByDuration(interval, duration) {
|
|
|
176
162
|
* multiplyDuration(duration:Duration,multiplier:number) // => {moths:4, days:6, hours:8}
|
|
177
163
|
* ```
|
|
178
164
|
*/
|
|
179
|
-
function multiplyDuration(duration, multiplier) {
|
|
165
|
+
export function multiplyDuration(duration, multiplier) {
|
|
180
166
|
return {
|
|
181
167
|
years: duration.years * multiplier,
|
|
182
168
|
months: duration.months * multiplier,
|
|
@@ -199,7 +185,7 @@ function multiplyDuration(duration, multiplier) {
|
|
|
199
185
|
* addDurations(duration1,duration2,duration3) // => {moths:6, days:9, hours:12}
|
|
200
186
|
* ```
|
|
201
187
|
*/
|
|
202
|
-
function addDurations(...durations) {
|
|
188
|
+
export function addDurations(...durations) {
|
|
203
189
|
const retval = {
|
|
204
190
|
years: 0,
|
|
205
191
|
months: 0,
|
|
@@ -220,7 +206,7 @@ function addDurations(...durations) {
|
|
|
220
206
|
}
|
|
221
207
|
return retval;
|
|
222
208
|
}
|
|
223
|
-
function isValidDate(value) {
|
|
209
|
+
export function isValidDate(value) {
|
|
224
210
|
return value instanceof Date && !isNaN(value.valueOf());
|
|
225
211
|
}
|
|
226
212
|
/**
|
|
@@ -233,7 +219,7 @@ function isValidDate(value) {
|
|
|
233
219
|
* toSqlDate() // => "2017-06-29 17:54:04"
|
|
234
220
|
*
|
|
235
221
|
*/
|
|
236
|
-
function toSqlDate(date) {
|
|
222
|
+
export function toSqlDate(date) {
|
|
237
223
|
return date.toISOString().slice(0, 19).replace('T', ' ');
|
|
238
224
|
}
|
|
239
225
|
/**
|
|
@@ -248,7 +234,7 @@ function toSqlDate(date) {
|
|
|
248
234
|
* // { years: 0, months: 0, weeks: 0, days: 9, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }
|
|
249
235
|
* ```
|
|
250
236
|
*/
|
|
251
|
-
function intervalToDuration(interval) {
|
|
237
|
+
export function intervalToDuration(interval) {
|
|
252
238
|
if (interval.end === undefined) {
|
|
253
239
|
throw new Error('Invalid interval, end date is missing: ' + JSON.stringify(interval));
|
|
254
240
|
}
|
|
@@ -280,7 +266,7 @@ function intervalToDuration(interval) {
|
|
|
280
266
|
* @param options
|
|
281
267
|
* @returns
|
|
282
268
|
*/
|
|
283
|
-
function humanizeDuration(inDuration, options) {
|
|
269
|
+
export function humanizeDuration(inDuration, options) {
|
|
284
270
|
let duration = { ...inDuration };
|
|
285
271
|
if (options?.reduce) {
|
|
286
272
|
duration = millisecondsToDuration(durationToMilliSeconds(duration));
|
package/dist/time/time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/time/time.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/time/time.ts"],"names":[],"mappings":"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"}
|
package/dist/time/timer.d.ts
CHANGED
package/dist/time/timer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/time/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA0B,MAAM,
|
|
1
|
+
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/time/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA0B,MAAM,WAAW,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,KAAK;;IA6ChB,OAAO,CAAC,QAAQ;IACT,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI;IA7CrD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAc;IAE/B,uCAAuC;IACvC,OAAO,CAAC,YAAY,CAAc;IAElC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAa;IAElC,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAa;IAE9B,gCAAgC;IAChC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,SAAS,CAAM;IAuBhB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC5B,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI;IASrD;;;;OAIG;IACH,KAAK,IAAI,MAAM;IA4Bf;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAcf;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAQrB;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAM1B;;;OAGG;IACH,aAAa,IAAI,MAAM;CAGvB"}
|
package/dist/time/timer.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _Timer_started, _Timer_paused, _Timer_running, _Timer_completed;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Timer = void 0;
|
|
16
|
-
const time_1 = require("./time");
|
|
1
|
+
import { durationToMilliSeconds } from './time.js';
|
|
17
2
|
/**
|
|
18
3
|
* A simple timer that can be started, paused, and resumed.
|
|
19
4
|
* @example
|
|
@@ -39,43 +24,48 @@ const time_1 = require("./time");
|
|
|
39
24
|
* }, 5000);
|
|
40
25
|
* ```
|
|
41
26
|
*/
|
|
42
|
-
class Timer {
|
|
27
|
+
export class Timer {
|
|
28
|
+
duration;
|
|
29
|
+
onComplete;
|
|
30
|
+
/**
|
|
31
|
+
* The time when the timer was started for the first time
|
|
32
|
+
*/
|
|
33
|
+
startTime = -1;
|
|
34
|
+
/** The time when the timer finished */
|
|
35
|
+
finishedTime = -1;
|
|
36
|
+
/** The time when the timer was started last time */
|
|
37
|
+
lastStartTime = 0;
|
|
38
|
+
/** The running elapsed time*/
|
|
39
|
+
elapsedMs = 0;
|
|
40
|
+
/** milliseconds to be timed */
|
|
41
|
+
durationMs = 0;
|
|
42
|
+
timeoutId;
|
|
43
|
+
/**
|
|
44
|
+
* Indicates whether the timer has been started at least once.
|
|
45
|
+
*/
|
|
46
|
+
#started = false;
|
|
47
|
+
/**
|
|
48
|
+
* Indicates whether the timer is currently paused.
|
|
49
|
+
*/
|
|
50
|
+
#paused = false;
|
|
51
|
+
/**
|
|
52
|
+
* Indicates whether the timer is running.
|
|
53
|
+
*/
|
|
54
|
+
#running = false;
|
|
55
|
+
/**
|
|
56
|
+
* Indicates whether the timer has completed.
|
|
57
|
+
*/
|
|
58
|
+
#completed = false;
|
|
59
|
+
onPause;
|
|
60
|
+
onStart;
|
|
43
61
|
constructor(duration, onComplete) {
|
|
44
62
|
this.duration = duration;
|
|
45
63
|
this.onComplete = onComplete;
|
|
46
|
-
/**
|
|
47
|
-
* The time when the timer was started for the first time
|
|
48
|
-
*/
|
|
49
|
-
this.startTime = -1;
|
|
50
|
-
/** The time when the timer finished */
|
|
51
|
-
this.finishedTime = -1;
|
|
52
|
-
/** The time when the timer was started last time */
|
|
53
|
-
this.lastStartTime = 0;
|
|
54
|
-
/** The running elapsed time*/
|
|
55
|
-
this.elapsedMs = 0;
|
|
56
|
-
/** milliseconds to be timed */
|
|
57
|
-
this.durationMs = 0;
|
|
58
|
-
/**
|
|
59
|
-
* Indicates whether the timer has been started at least once.
|
|
60
|
-
*/
|
|
61
|
-
_Timer_started.set(this, false);
|
|
62
|
-
/**
|
|
63
|
-
* Indicates whether the timer is currently paused.
|
|
64
|
-
*/
|
|
65
|
-
_Timer_paused.set(this, false);
|
|
66
|
-
/**
|
|
67
|
-
* Indicates whether the timer is running.
|
|
68
|
-
*/
|
|
69
|
-
_Timer_running.set(this, false);
|
|
70
|
-
/**
|
|
71
|
-
* Indicates whether the timer has completed.
|
|
72
|
-
*/
|
|
73
|
-
_Timer_completed.set(this, false);
|
|
74
64
|
if (typeof this.duration === 'number') {
|
|
75
65
|
this.durationMs = this.duration;
|
|
76
66
|
}
|
|
77
67
|
else {
|
|
78
|
-
this.durationMs =
|
|
68
|
+
this.durationMs = durationToMilliSeconds(this.duration);
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
71
|
/**
|
|
@@ -84,19 +74,19 @@ class Timer {
|
|
|
84
74
|
* @returns The time left in milliseconds
|
|
85
75
|
*/
|
|
86
76
|
start() {
|
|
87
|
-
if (
|
|
77
|
+
if (this.#running || this.#completed)
|
|
88
78
|
return;
|
|
89
|
-
if (!
|
|
79
|
+
if (!this.#started) {
|
|
90
80
|
this.startTime = Date.now();
|
|
91
|
-
|
|
81
|
+
this.#started = true;
|
|
92
82
|
}
|
|
93
|
-
|
|
94
|
-
|
|
83
|
+
this.#running = true;
|
|
84
|
+
this.#paused = false;
|
|
95
85
|
this.lastStartTime = Date.now();
|
|
96
86
|
const timeLeftMs = this.durationMs - this.elapsedMs;
|
|
97
87
|
this.timeoutId = setTimeout(() => {
|
|
98
|
-
|
|
99
|
-
|
|
88
|
+
this.#running = this.#paused = false;
|
|
89
|
+
this.#completed = true;
|
|
100
90
|
this.finishedTime = Date.now();
|
|
101
91
|
const totalDuration = this.finishedTime - this.startTime;
|
|
102
92
|
this.onComplete?.(totalDuration);
|
|
@@ -110,10 +100,10 @@ class Timer {
|
|
|
110
100
|
* @returns The elapsed time in milliseconds
|
|
111
101
|
*/
|
|
112
102
|
pause() {
|
|
113
|
-
if (!
|
|
103
|
+
if (!this.#running)
|
|
114
104
|
return;
|
|
115
|
-
|
|
116
|
-
|
|
105
|
+
this.#running = false;
|
|
106
|
+
this.#paused = true;
|
|
117
107
|
clearTimeout(this.timeoutId);
|
|
118
108
|
this.elapsedMs += Date.now() - this.lastStartTime;
|
|
119
109
|
this.onPause?.(this.elapsedMs);
|
|
@@ -123,25 +113,25 @@ class Timer {
|
|
|
123
113
|
* Indicates whether the timer is currently paused.
|
|
124
114
|
*/
|
|
125
115
|
get paused() {
|
|
126
|
-
return
|
|
116
|
+
return this.#paused;
|
|
127
117
|
}
|
|
128
118
|
/**
|
|
129
119
|
* Indicates whether the timer has completed.
|
|
130
120
|
*/
|
|
131
121
|
get completed() {
|
|
132
|
-
return
|
|
122
|
+
return this.#completed;
|
|
133
123
|
}
|
|
134
124
|
/**
|
|
135
125
|
* Indicates whether the timer is running.
|
|
136
126
|
*/
|
|
137
127
|
get running() {
|
|
138
|
-
return
|
|
128
|
+
return this.#running;
|
|
139
129
|
}
|
|
140
130
|
/**
|
|
141
131
|
* Indicates whether the timer has been started at least once.
|
|
142
132
|
*/
|
|
143
133
|
get started() {
|
|
144
|
-
return
|
|
134
|
+
return this.#started;
|
|
145
135
|
}
|
|
146
136
|
/**
|
|
147
137
|
* Time elapsed while timer was running in milliseconds.
|
|
@@ -149,11 +139,11 @@ class Timer {
|
|
|
149
139
|
* @return Elapsed time in milliseconds
|
|
150
140
|
*/
|
|
151
141
|
elapsedTime() {
|
|
152
|
-
if (!
|
|
142
|
+
if (!this.#started)
|
|
153
143
|
return 0;
|
|
154
|
-
if (
|
|
144
|
+
if (this.#paused)
|
|
155
145
|
return this.elapsedMs;
|
|
156
|
-
if (
|
|
146
|
+
if (this.#completed)
|
|
157
147
|
return this.durationMs;
|
|
158
148
|
return this.elapsedMs + (Date.now() - this.lastStartTime);
|
|
159
149
|
}
|
|
@@ -163,9 +153,9 @@ class Timer {
|
|
|
163
153
|
* @return Total elapsed time in milliseconds
|
|
164
154
|
*/
|
|
165
155
|
totalElapsedTime() {
|
|
166
|
-
if (!
|
|
156
|
+
if (!this.#started)
|
|
167
157
|
return 0;
|
|
168
|
-
if (
|
|
158
|
+
if (this.#completed)
|
|
169
159
|
return this.finishedTime - this.startTime;
|
|
170
160
|
return Date.now() - this.startTime;
|
|
171
161
|
}
|
|
@@ -177,6 +167,4 @@ class Timer {
|
|
|
177
167
|
return this.durationMs - this.elapsedTime();
|
|
178
168
|
}
|
|
179
169
|
}
|
|
180
|
-
exports.Timer = Timer;
|
|
181
|
-
_Timer_started = new WeakMap(), _Timer_paused = new WeakMap(), _Timer_running = new WeakMap(), _Timer_completed = new WeakMap();
|
|
182
170
|
//# sourceMappingURL=timer.js.map
|
package/dist/time/timer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/time/timer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/time/timer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Interval, Duration } from '../time/time';
|
|
1
|
+
import { Interval, Duration } from '../time/time.js';
|
|
2
2
|
/**
|
|
3
3
|
* @description A utility class to track the duration of multiple tasks and estimate completion times.
|
|
4
4
|
* - It records the start and end times of each task, calculates elapsed time, estimates remaining time,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_duration_tracker.d.ts","sourceRoot":"","sources":["../../src/utils/task_duration_tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkD,MAAM,
|
|
1
|
+
{"version":3,"file":"task_duration_tracker.d.ts","sourceRoot":"","sources":["../../src/utils/task_duration_tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkD,MAAM,iBAAiB,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,mBAAmB;IAIZ,UAAU,EAAE,MAAM;IAHrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,YAAY,CAAc;gBAEf,UAAU,EAAE,MAAM;IAErC;;;OAGG;IACH,cAAc,IAAI,QAAQ;IAK1B;;OAEG;IACH,0BAA0B,IAAI,QAAQ;IAOtC;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAK7B;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;OAGG;IACH,kBAAkB,IAAI,QAAQ;IAe9B;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI1C;;;OAGG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;OAIG;IACH,aAAa,IAAI,IAAI;CAMrB"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TaskDurationTracker = void 0;
|
|
4
|
-
const collection_1 = require("../collection/collection");
|
|
5
|
-
const time_1 = require("../time/time");
|
|
1
|
+
import { lastEl } from '../collection/collection.js';
|
|
2
|
+
import { millisecondsToDuration, durationToMilliSeconds } from '../time/time.js';
|
|
6
3
|
/**
|
|
7
4
|
* @description A utility class to track the duration of multiple tasks and estimate completion times.
|
|
8
5
|
* - It records the start and end times of each task, calculates elapsed time, estimates remaining time,
|
|
@@ -53,11 +50,12 @@ const time_1 = require("../time/time");
|
|
|
53
50
|
* @see {@link Duration}
|
|
54
51
|
* @see {@link Interval}
|
|
55
52
|
*/
|
|
56
|
-
class TaskDurationTracker {
|
|
53
|
+
export class TaskDurationTracker {
|
|
54
|
+
tasksCount;
|
|
55
|
+
intervals = [];
|
|
56
|
+
creationTime = new Date();
|
|
57
57
|
constructor(tasksCount) {
|
|
58
58
|
this.tasksCount = tasksCount;
|
|
59
|
-
this.intervals = [];
|
|
60
|
-
this.creationTime = new Date();
|
|
61
59
|
}
|
|
62
60
|
/**
|
|
63
61
|
* @description Gets the total elapsed time since the first task started.
|
|
@@ -65,7 +63,7 @@ class TaskDurationTracker {
|
|
|
65
63
|
*/
|
|
66
64
|
getElapsedTime() {
|
|
67
65
|
const milliseconds = new Date().getTime() - this.getStartTime().getTime();
|
|
68
|
-
return
|
|
66
|
+
return millisecondsToDuration(milliseconds);
|
|
69
67
|
}
|
|
70
68
|
/**
|
|
71
69
|
* @description Estimates the total time taken to complete all tasks.
|
|
@@ -73,14 +71,14 @@ class TaskDurationTracker {
|
|
|
73
71
|
getEstimatedCompletionTime() {
|
|
74
72
|
const meanTime = this.getMeanTimePerTask();
|
|
75
73
|
const remainingTasks = this.getRemainingTasks();
|
|
76
|
-
const remainingMillis =
|
|
77
|
-
return
|
|
74
|
+
const remainingMillis = durationToMilliSeconds(meanTime) * remainingTasks;
|
|
75
|
+
return millisecondsToDuration(remainingMillis);
|
|
78
76
|
}
|
|
79
77
|
/**
|
|
80
78
|
* @description Gets the expected finish time for all tasks.
|
|
81
79
|
*/
|
|
82
80
|
getExpectedFinishTime() {
|
|
83
|
-
const remainingMillis =
|
|
81
|
+
const remainingMillis = durationToMilliSeconds(this.getEstimatedCompletionTime());
|
|
84
82
|
return new Date(Date.now() + remainingMillis);
|
|
85
83
|
}
|
|
86
84
|
/**
|
|
@@ -112,7 +110,7 @@ class TaskDurationTracker {
|
|
|
112
110
|
return acc;
|
|
113
111
|
}, 0);
|
|
114
112
|
const meanMillis = totalMillis / this.intervals.length;
|
|
115
|
-
return
|
|
113
|
+
return millisecondsToDuration(Math.round(meanMillis));
|
|
116
114
|
}
|
|
117
115
|
/**
|
|
118
116
|
* @description Adds a task interval to the tracker.
|
|
@@ -135,10 +133,9 @@ class TaskDurationTracker {
|
|
|
135
133
|
*/
|
|
136
134
|
recordTaskEnd() {
|
|
137
135
|
this.intervals.push({
|
|
138
|
-
start:
|
|
136
|
+
start: lastEl(this.intervals)?.end || this.creationTime,
|
|
139
137
|
end: new Date(),
|
|
140
138
|
});
|
|
141
139
|
}
|
|
142
140
|
}
|
|
143
|
-
exports.TaskDurationTracker = TaskDurationTracker;
|
|
144
141
|
//# sourceMappingURL=task_duration_tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_duration_tracker.js","sourceRoot":"","sources":["../../src/utils/task_duration_tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task_duration_tracker.js","sourceRoot":"","sources":["../../src/utils/task_duration_tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAInE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,SAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAmBpG"}
|