1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | Object.defineProperty(exports, "__esModule", { value: true });
|
19 | exports.getRelativeTimeout = exports.getDeadlineTimeoutString = exports.minDeadline = void 0;
|
20 | function minDeadline(...deadlineList) {
|
21 | let minValue = Infinity;
|
22 | for (const deadline of deadlineList) {
|
23 | const deadlineMsecs = deadline instanceof Date ? deadline.getTime() : deadline;
|
24 | if (deadlineMsecs < minValue) {
|
25 | minValue = deadlineMsecs;
|
26 | }
|
27 | }
|
28 | return minValue;
|
29 | }
|
30 | exports.minDeadline = minDeadline;
|
31 | const units = [
|
32 | ['m', 1],
|
33 | ['S', 1000],
|
34 | ['M', 60 * 1000],
|
35 | ['H', 60 * 60 * 1000],
|
36 | ];
|
37 | function getDeadlineTimeoutString(deadline) {
|
38 | const now = new Date().getTime();
|
39 | if (deadline instanceof Date) {
|
40 | deadline = deadline.getTime();
|
41 | }
|
42 | const timeoutMs = Math.max(deadline - now, 0);
|
43 | for (const [unit, factor] of units) {
|
44 | const amount = timeoutMs / factor;
|
45 | if (amount < 1e8) {
|
46 | return String(Math.ceil(amount)) + unit;
|
47 | }
|
48 | }
|
49 | throw new Error('Deadline is too far in the future');
|
50 | }
|
51 | exports.getDeadlineTimeoutString = getDeadlineTimeoutString;
|
52 | function getRelativeTimeout(deadline) {
|
53 | const deadlineMs = deadline instanceof Date ? deadline.getTime() : deadline;
|
54 | const now = new Date().getTime();
|
55 | return deadlineMs - now;
|
56 | }
|
57 | exports.getRelativeTimeout = getRelativeTimeout;
|
58 |
|
\ | No newline at end of file |