@zajno/common 2.2.13 → 2.2.15
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/dates/convert.d.ts +1 -5
- package/dates/convert.d.ts.map +1 -1
- package/dates/convert.js +2 -46
- package/dates/convert.js.map +1 -1
- package/dates/datex.d.ts +9 -0
- package/dates/datex.d.ts.map +1 -1
- package/dates/datex.js +31 -7
- package/dates/datex.js.map +1 -1
- package/dates/decompose.d.ts +5 -0
- package/dates/decompose.d.ts.map +1 -0
- package/dates/decompose.js +44 -0
- package/dates/decompose.js.map +1 -0
- package/dates/format.d.ts.map +1 -1
- package/dates/format.js +2 -1
- package/dates/format.js.map +1 -1
- package/dates/index.d.ts +1 -0
- package/dates/index.d.ts.map +1 -1
- package/dates/index.js +1 -0
- package/dates/index.js.map +1 -1
- package/dates/shift.d.ts +0 -9
- package/dates/shift.d.ts.map +1 -1
- package/dates/shift.js +3 -26
- package/dates/shift.js.map +1 -1
- package/dates/types.d.ts +8 -4
- package/dates/types.d.ts.map +1 -1
- package/dates/types.js +45 -27
- package/dates/types.js.map +1 -1
- package/lazy/promise.d.ts.map +1 -1
- package/lazy/promise.js +4 -1
- package/lazy/promise.js.map +1 -1
- package/package.json +1 -1
- package/structures/promiseExtended.d.ts +63 -0
- package/structures/promiseExtended.d.ts.map +1 -0
- package/structures/promiseExtended.js +128 -0
- package/structures/promiseExtended.js.map +1 -0
package/dates/convert.d.ts
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Granularity } from './types';
|
|
2
2
|
type DateFields<T> = {
|
|
3
3
|
[P in keyof T]: T[P] extends Date ? P : never;
|
|
4
4
|
}[keyof T];
|
|
5
5
|
export declare function ensureDates<T>(obj: T, ...fields: DateFields<T>[]): void;
|
|
6
6
|
export declare function isNetworkDay(n: number): boolean;
|
|
7
7
|
export declare function isNetworkDate(d: Date): boolean;
|
|
8
|
-
export declare function convert(amount: number, g: ConstantGranularity, to: ConstantGranularity): number;
|
|
9
8
|
export declare function unix(d: Date | number): number;
|
|
10
9
|
export declare function unixDayIndex(d: Date | number): number;
|
|
11
10
|
export declare function dateFromUnixDayIndex(d: number): Date;
|
|
12
|
-
export declare function decompose(date: number | Date, local: boolean, ...grans: (Granularity & DecomposeGranularity)[]): Partial<Record<DecomposeGranularity, number>>;
|
|
13
|
-
type DecomposeGranularity = 'week' | 'day' | 'hour' | 'minute' | 'second';
|
|
14
|
-
export declare function decomposeMs<K extends Granularity & DecomposeGranularity>(ms: number, ...grans: K[]): Record<K, number>;
|
|
15
11
|
export declare function decomposeDate<K extends Granularity>(d: Date, local: boolean, ...grans: K[]): Record<K, number>;
|
|
16
12
|
export declare function splitDatesByDay(dates: number[]): number[][];
|
|
17
13
|
export declare function getDiscreteDiff(d1: number | Date, d2: number | Date, granularity: Granularity, local?: boolean, absolute?: boolean): number;
|
package/dates/convert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,KAAK,UAAU,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CAChD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAShE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,WAA8B;AACpE,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,WAAyC;AAE9E,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,UAEpC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,UAE5C;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,QAE7C;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAO9G;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAiC3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,UAAQ,EAAE,QAAQ,UAAO,UAkC7H;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CA2B5E"}
|
package/dates/convert.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDaysStreak = exports.getDiscreteDiff = exports.splitDatesByDay = exports.decomposeDate = exports.
|
|
3
|
+
exports.getDaysStreak = exports.getDiscreteDiff = exports.splitDatesByDay = exports.decomposeDate = exports.dateFromUnixDayIndex = exports.unixDayIndex = exports.unix = exports.isNetworkDate = exports.isNetworkDay = exports.ensureDates = void 0;
|
|
4
4
|
const datex_1 = require("./datex");
|
|
5
5
|
const parse_1 = require("./parse");
|
|
6
6
|
const shift_1 = require("./shift");
|
|
@@ -20,12 +20,6 @@ function isNetworkDay(n) { return n >= 1 && n <= 5; }
|
|
|
20
20
|
exports.isNetworkDay = isNetworkDay;
|
|
21
21
|
function isNetworkDate(d) { return isNetworkDay(d.getUTCDay()); }
|
|
22
22
|
exports.isNetworkDate = isNetworkDate;
|
|
23
|
-
function convert(amount, g, to) {
|
|
24
|
-
const ms = amount * types_1.ConstantGranularity.toMs(g);
|
|
25
|
-
const toMs = types_1.ConstantGranularity.toMs(to);
|
|
26
|
-
return ms / toMs;
|
|
27
|
-
}
|
|
28
|
-
exports.convert = convert;
|
|
29
23
|
function unix(d) {
|
|
30
24
|
return Math.floor((0, parse_1.getTime)(d) / 1000);
|
|
31
25
|
}
|
|
@@ -38,44 +32,6 @@ function dateFromUnixDayIndex(d) {
|
|
|
38
32
|
return new Date(d * 1000 * 3600 * 24);
|
|
39
33
|
}
|
|
40
34
|
exports.dateFromUnixDayIndex = dateFromUnixDayIndex;
|
|
41
|
-
function decompose(date, local, ...grans) {
|
|
42
|
-
const dd = (0, parse_1.getDate)(date);
|
|
43
|
-
const offset = local ? dd.getTimezoneOffset() * 60000 : 0;
|
|
44
|
-
const ms = dd.getTime() + offset;
|
|
45
|
-
return decomposeMs(ms, ...grans);
|
|
46
|
-
}
|
|
47
|
-
exports.decompose = decompose;
|
|
48
|
-
function decomposeMs(ms, ...grans) {
|
|
49
|
-
const res = {};
|
|
50
|
-
// absolute values
|
|
51
|
-
let secs = Math.round(convert(ms, 'millisecond', 'second'));
|
|
52
|
-
let mins = convert(secs, 'second', 'minute');
|
|
53
|
-
let hrs = convert(mins, 'minute', 'hour');
|
|
54
|
-
let days = convert(hrs, 'hour', 'day');
|
|
55
|
-
// apply only selected granularity
|
|
56
|
-
if (grans.includes('week')) {
|
|
57
|
-
// week is 1-based!
|
|
58
|
-
res.week = Math.floor(days / 7) + 1;
|
|
59
|
-
days = days % 7;
|
|
60
|
-
}
|
|
61
|
-
if (grans.includes('day')) {
|
|
62
|
-
res.day = Math.trunc(days);
|
|
63
|
-
hrs = hrs % 24;
|
|
64
|
-
}
|
|
65
|
-
if (grans.includes('hour')) {
|
|
66
|
-
res.hour = Math.trunc(hrs);
|
|
67
|
-
mins = mins % 60;
|
|
68
|
-
}
|
|
69
|
-
if (grans.includes('minute')) {
|
|
70
|
-
res.minute = Math.trunc(mins);
|
|
71
|
-
secs = secs % 60;
|
|
72
|
-
}
|
|
73
|
-
if (grans.includes('second')) {
|
|
74
|
-
res.second = secs;
|
|
75
|
-
}
|
|
76
|
-
return res;
|
|
77
|
-
}
|
|
78
|
-
exports.decomposeMs = decomposeMs;
|
|
79
35
|
function decomposeDate(d, local, ...grans) {
|
|
80
36
|
const res = {};
|
|
81
37
|
grans.forEach(g => {
|
|
@@ -133,7 +89,7 @@ function getDiscreteDiff(d1, d2, granularity, local = false, absolute = true) {
|
|
|
133
89
|
break;
|
|
134
90
|
}
|
|
135
91
|
default: {
|
|
136
|
-
const ms = types_1.
|
|
92
|
+
const ms = types_1.Granularity.Constant.toMs(granularity);
|
|
137
93
|
v1 = (0, shift_1.startOf)(d1, granularity, local).getTime() / ms;
|
|
138
94
|
v2 = (0, shift_1.startOf)(d2, granularity, local).getTime() / ms;
|
|
139
95
|
break;
|
package/dates/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,mCAA2C;AAC3C,mCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,mCAA2C;AAC3C,mCAA0C;AAC1C,mCAAsC;AAMtC,SAAgB,WAAW,CAAI,GAAM,EAAE,GAAG,MAAuB;IAC7D,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAA2B,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC;gBACJ,GAAG,CAAC,CAAC,CAAC,GAAG,IAAA,eAAO,EAAC,CAAC,CAAkC,CAAC;YACzD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AATD,kCASC;AAED,SAAgB,YAAY,CAAC,CAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAApE,oCAAoE;AACpE,SAAgB,aAAa,CAAC,CAAO,IAAI,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAA9E,sCAA8E;AAE9E,SAAgB,IAAI,CAAC,CAAgB;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,eAAO,EAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,oBAEC;AAED,SAAgB,YAAY,CAAC,CAAgB;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,eAAO,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,oCAEC;AAED,SAAgB,oBAAoB,CAAC,CAAS;IAC1C,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1C,CAAC;AAFD,oDAEC;AAED,SAAgB,aAAa,CAAwB,CAAO,EAAE,KAAc,EAAE,GAAG,KAAU;IACvF,MAAM,GAAG,GAAyC,EAAE,CAAC;IACrD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACd,MAAM,IAAI,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,CAAC,CAAC,GAAG,aAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,GAAwB,CAAC;AACpC,CAAC;AAPD,sCAOC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,WAAmB,CAAC;IACxB,IAAI,MAAgB,CAAC;IAErB,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAE7B,SAAS;SACJ,IAAI,EAAE;SACN,OAAO,CAAC,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,GAAG,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAA,cAAM,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,OAAO,GAAG,CAAC;AACf,CAAC;AAjCD,0CAiCC;AAED,SAAgB,eAAe,CAAC,EAAiB,EAAE,EAAiB,EAAE,WAAwB,EAAE,KAAK,GAAG,KAAK,EAAE,QAAQ,GAAG,IAAI;IAC1H,IAAI,EAAU,EAAE,EAAU,CAAC;IAE3B,QAAQ,WAAW,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;YACxB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACtD,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACtD,MAAM;QACV,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;YACxB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAChD,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM;QACV,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,EAAE,GAAG,mBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,EAAE,GAAG,IAAA,eAAO,EAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACpD,EAAE,GAAG,IAAA,eAAO,EAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACpD,MAAM;QACV,CAAC;IACL,CAAC;IAED,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAlCD,0CAkCC;AAED,SAAgB,aAAa,CAAC,KAAe,EAAE,YAAqB;IAChE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE9B,IAAI,YAAY,EAAE,CAAC;QACf,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9D,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM;QACV,CAAC;QACD,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,CAAC,CAAC;QACf,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;QAEf,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACX,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AA3BD,sCA2BC"}
|
package/dates/datex.d.ts
CHANGED
|
@@ -12,4 +12,13 @@ export declare namespace DateX {
|
|
|
12
12
|
function set(d: Date, g: 'second', local: boolean, sec: number, ms?: number): number;
|
|
13
13
|
function set(d: Date, g: 'millisecond', local: boolean, ms: number): number;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Allows to set day of week, symmetric to Date.getDay()
|
|
17
|
+
* @param d Date representation
|
|
18
|
+
* @param dayOfWeek 0..6 Sunday..Saturday
|
|
19
|
+
* @param future true - only forward or present, false - only backward or present, null - closest
|
|
20
|
+
* @param local whether to use local time
|
|
21
|
+
* @returns Date with the same time as d, but with the updated day of week
|
|
22
|
+
*/
|
|
23
|
+
export declare function setDayOfWeek(d: Date | number, dayOfWeek: number, future?: boolean | null, local?: boolean): any;
|
|
15
24
|
//# sourceMappingURL=datex.d.ts.map
|
package/dates/datex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datex.d.ts","sourceRoot":"","sources":["../../src/dates/datex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"datex.d.ts","sourceRoot":"","sources":["../../src/dates/datex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,yBAAiB,KAAK,CAAC;IAEnB,KAAY,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;IAEtD,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,OAa9D;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7G,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/F,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9E,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7E,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACpF,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxH,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1G,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5F,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CA2EtF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,GAAG,IAAW,EAAE,KAAK,UAAQ,OAc7G"}
|
package/dates/datex.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DateX = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
exports.setDayOfWeek = exports.DateX = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const decompose_1 = require("./decompose");
|
|
6
|
+
const parse_1 = require("./parse");
|
|
6
7
|
var DateX;
|
|
7
8
|
(function (DateX) {
|
|
8
9
|
function get(d, g, local) {
|
|
@@ -25,7 +26,7 @@ var DateX;
|
|
|
25
26
|
return setWeek(d, local, v[0]);
|
|
26
27
|
}
|
|
27
28
|
if (g === 'weekDay') {
|
|
28
|
-
return
|
|
29
|
+
return setDayOfWeek(d, v[0], null, local);
|
|
29
30
|
}
|
|
30
31
|
/* eslint-disable @typescript-eslint/unbound-method -- it's clearly defined as a function with `this: Date` */
|
|
31
32
|
const fn = (() => {
|
|
@@ -51,7 +52,7 @@ var DateX;
|
|
|
51
52
|
set(firstDay, 'hour', local, 0, 0, 0, 0);
|
|
52
53
|
// we need to find diff between the target date and the first Sunday in the year
|
|
53
54
|
// next closest Sunday in the future, is considered as the start of the second week
|
|
54
|
-
const secondWeekSunday =
|
|
55
|
+
const secondWeekSunday = setDayOfWeek(firstDay, 0, true, local);
|
|
55
56
|
let offset = 1;
|
|
56
57
|
const secondWeekSundayT = secondWeekSunday.getTime();
|
|
57
58
|
if (firstDay.getTime() === secondWeekSundayT) {
|
|
@@ -65,15 +66,38 @@ var DateX;
|
|
|
65
66
|
}
|
|
66
67
|
const diff = t - secondWeekSundayT;
|
|
67
68
|
// the returned value is 1-based
|
|
68
|
-
const { week } = (0,
|
|
69
|
+
const { week } = (0, decompose_1.decomposeMs)(diff, 'week');
|
|
69
70
|
// adding offset since counting from 2nd week
|
|
70
71
|
return week + offset;
|
|
71
72
|
}
|
|
72
73
|
function setWeek(d, local, week) {
|
|
73
74
|
const current = getWeek(d, local);
|
|
74
|
-
const res =
|
|
75
|
+
const res = types_1.Granularity.Constant.shift(d, (week - current), 'week').getTime();
|
|
75
76
|
d.setTime(res);
|
|
76
77
|
return res;
|
|
77
78
|
}
|
|
78
79
|
})(DateX || (exports.DateX = DateX = {}));
|
|
80
|
+
/**
|
|
81
|
+
* Allows to set day of week, symmetric to Date.getDay()
|
|
82
|
+
* @param d Date representation
|
|
83
|
+
* @param dayOfWeek 0..6 Sunday..Saturday
|
|
84
|
+
* @param future true - only forward or present, false - only backward or present, null - closest
|
|
85
|
+
* @param local whether to use local time
|
|
86
|
+
* @returns Date with the same time as d, but with the updated day of week
|
|
87
|
+
*/
|
|
88
|
+
function setDayOfWeek(d, dayOfWeek, future = null, local = false) {
|
|
89
|
+
const res = (0, parse_1.getDate)(d);
|
|
90
|
+
const currentDayOfWeek = DateX.get(res, 'weekDay', local);
|
|
91
|
+
let diff = dayOfWeek - currentDayOfWeek;
|
|
92
|
+
if (future != null) {
|
|
93
|
+
if (future && diff < 0) {
|
|
94
|
+
diff += 7;
|
|
95
|
+
}
|
|
96
|
+
if (!future && diff > 0) {
|
|
97
|
+
diff -= 7;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return types_1.Granularity.Constant.shift(res, diff, 'day');
|
|
101
|
+
}
|
|
102
|
+
exports.setDayOfWeek = setDayOfWeek;
|
|
79
103
|
//# sourceMappingURL=datex.js.map
|
package/dates/datex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datex.js","sourceRoot":"","sources":["../../src/dates/datex.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"datex.js","sourceRoot":"","sources":["../../src/dates/datex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Granularity } from './types';
|
|
2
|
+
export type DecomposeGranularity = 'week' | 'day' | 'hour' | 'minute' | 'second';
|
|
3
|
+
export declare function decomposeMs<K extends Granularity & DecomposeGranularity>(ms: number, ...grans: K[]): Record<K, number>;
|
|
4
|
+
export declare function decompose(date: number | Date, local: boolean, ...grans: (Granularity & DecomposeGranularity)[]): Partial<Record<DecomposeGranularity, number>>;
|
|
5
|
+
//# sourceMappingURL=decompose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../../src/dates/decompose.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjF,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAoCtH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,WAAW,GAAG,oBAAoB,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAM9J"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decompose = exports.decomposeMs = void 0;
|
|
4
|
+
const parse_1 = require("./parse");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
function decomposeMs(ms, ...grans) {
|
|
7
|
+
const res = {};
|
|
8
|
+
// absolute values
|
|
9
|
+
let secs = Math.round(types_1.Granularity.Constant.convert(ms, 'millisecond', 'second'));
|
|
10
|
+
let mins = types_1.Granularity.Constant.convert(secs, 'second', 'minute');
|
|
11
|
+
let hrs = types_1.Granularity.Constant.convert(mins, 'minute', 'hour');
|
|
12
|
+
let days = types_1.Granularity.Constant.convert(hrs, 'hour', 'day');
|
|
13
|
+
// apply only selected granularity
|
|
14
|
+
if (grans.includes('week')) {
|
|
15
|
+
// week is 1-based!
|
|
16
|
+
res.week = Math.floor(days / 7) + 1;
|
|
17
|
+
days = days % 7;
|
|
18
|
+
}
|
|
19
|
+
if (grans.includes('day')) {
|
|
20
|
+
res.day = Math.trunc(days);
|
|
21
|
+
hrs = hrs % 24;
|
|
22
|
+
}
|
|
23
|
+
if (grans.includes('hour')) {
|
|
24
|
+
res.hour = Math.trunc(hrs);
|
|
25
|
+
mins = mins % 60;
|
|
26
|
+
}
|
|
27
|
+
if (grans.includes('minute')) {
|
|
28
|
+
res.minute = Math.trunc(mins);
|
|
29
|
+
secs = secs % 60;
|
|
30
|
+
}
|
|
31
|
+
if (grans.includes('second')) {
|
|
32
|
+
res.second = secs;
|
|
33
|
+
}
|
|
34
|
+
return res;
|
|
35
|
+
}
|
|
36
|
+
exports.decomposeMs = decomposeMs;
|
|
37
|
+
function decompose(date, local, ...grans) {
|
|
38
|
+
const dd = (0, parse_1.getDate)(date);
|
|
39
|
+
const offset = local ? dd.getTimezoneOffset() * 60000 : 0;
|
|
40
|
+
const ms = dd.getTime() + offset;
|
|
41
|
+
return decomposeMs(ms, ...grans);
|
|
42
|
+
}
|
|
43
|
+
exports.decompose = decompose;
|
|
44
|
+
//# sourceMappingURL=decompose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decompose.js","sourceRoot":"","sources":["../../src/dates/decompose.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,mCAAsC;AAItC,SAAgB,WAAW,CAA+C,EAAU,EAAE,GAAG,KAAU;IAC/F,MAAM,GAAG,GAAyC,EAAE,CAAC;IAErD,kBAAkB;IAClB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjF,IAAI,IAAI,GAAG,mBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,GAAG,GAAG,mBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,GAAG,mBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5D,kCAAkC;IAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAW,CAAC,EAAE,CAAC;QAC9B,mBAAmB;QACnB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAW,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAa,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAa,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,GAAwB,CAAC;AACpC,CAAC;AApCD,kCAoCC;AAED,SAAgB,SAAS,CAAC,IAAmB,EAAE,KAAc,EAAE,GAAG,KAA6C;IAC3G,MAAM,EAAE,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;IAEjC,OAAO,WAAW,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC;AAND,8BAMC"}
|
package/dates/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dates/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/dates/format.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,yBAAiB,MAAM,CAAC;IAEb,MAAM,aAAa,UAAU,CAAC;IAErC,KAAY,OAAO;QACf,iBAAiB,mBAAmB;QACpC,kBAAkB,wBAAwB;KAC7C;IAED,UAAiB,OAAO,CAAC;QAKrB,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,UAAO,sBAgBpD;KACJ;IAED,SAAgB,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAgBjE;IAED,mBAAmB;IACnB,SAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,GAAG,IAAI,CAK9E;IAED,SAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;IAED,SAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,UAAQ,UAGnD;IAGD,SAAgB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,OAAa,UA6BrD;IAED,UAAiB,OAAO,CAAC;QAErB,6EAA6E;QAC7E,SAAgB,eAAe,QAShB,MAAM,YAKpB;QAGD,SAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,UAEjC;KACJ;CAGJ"}
|
package/dates/format.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.Format = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const MathX = tslib_1.__importStar(require("../math"));
|
|
6
6
|
const convert_1 = require("./convert");
|
|
7
|
+
const decompose_1 = require("./decompose");
|
|
7
8
|
const parse_1 = require("./parse");
|
|
8
9
|
var Format;
|
|
9
10
|
(function (Format) {
|
|
@@ -36,7 +37,7 @@ var Format;
|
|
|
36
37
|
Presets.use = use;
|
|
37
38
|
})(Presets = Format.Presets || (Format.Presets = {}));
|
|
38
39
|
function timespan(ms, local = false) {
|
|
39
|
-
const decs = (0,
|
|
40
|
+
const decs = (0, decompose_1.decompose)((0, parse_1.getTime)(ms), local, 'second', 'minute', 'hour');
|
|
40
41
|
const parts = [];
|
|
41
42
|
if (decs.hour) {
|
|
42
43
|
parts.push(`${decs.hour}h`);
|
package/dates/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/dates/format.ts"],"names":[],"mappings":";;;;AAAA,uDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/dates/format.ts"],"names":[],"mappings":"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"}
|
package/dates/index.d.ts
CHANGED
package/dates/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dates/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dates/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/dates/index.js
CHANGED
|
@@ -10,4 +10,5 @@ tslib_1.__exportStar(require("./period"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./shift"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./types"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./yearDate"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./decompose"), exports);
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dates/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dates/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,kDAAwB;AACxB,mDAAyB;AACzB,kDAAwB;AACxB,kDAAwB;AACxB,qDAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dates/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,kDAAwB;AACxB,mDAAyB;AACzB,kDAAwB;AACxB,kDAAwB;AACxB,qDAA2B;AAC3B,sDAA4B"}
|
package/dates/shift.d.ts
CHANGED
|
@@ -6,13 +6,4 @@ export declare const add: typeof shiftDate;
|
|
|
6
6
|
export declare function startOf(d: Date | number, g: Granularity, local?: boolean): Date;
|
|
7
7
|
export declare function endOf(d: Date | number, g: Granularity, local?: boolean): Date;
|
|
8
8
|
export declare function isSame(d1: Date | number, d2: Date | number, g: Granularity, local?: boolean): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Allows to set day of week, symmetric to Date.getDay()
|
|
11
|
-
* @param d Date representation
|
|
12
|
-
* @param dayOfWeek 0..6 Sunday..Saturday
|
|
13
|
-
* @param future true - only forward or present, false - only backward or present, null - closest
|
|
14
|
-
* @param local whether to use local time
|
|
15
|
-
* @returns Date with the same time as d, but with the updated day of week
|
|
16
|
-
*/
|
|
17
|
-
export declare function setDayOfWeek(d: Date | number, dayOfWeek: number, future?: boolean | null, local?: boolean): any;
|
|
18
9
|
//# sourceMappingURL=shift.d.ts.map
|
package/dates/shift.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shift.d.ts","sourceRoot":"","sources":["../../src/dates/shift.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"shift.d.ts","sourceRoot":"","sources":["../../src/dates/shift.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,QAAQ,SAAM,QAcnG;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,UAAQ,GAAG,IAAI,CAmB5G;AAED,gDAAgD;AAChD,eAAO,MAAM,GAAG,kBAAY,CAAC;AAE7B,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,UAAQ,GAAG,IAAI,CAkC7E;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,UAAQ,GAAG,IAAI,CAS3E;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,UAAQ,WAIzF"}
|
package/dates/shift.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isSame = exports.endOf = exports.startOf = exports.add = exports.shiftDate = exports.addDays = void 0;
|
|
4
4
|
const parse_1 = require("./parse");
|
|
5
5
|
const datex_1 = require("./datex");
|
|
6
6
|
const types_1 = require("./types");
|
|
@@ -34,7 +34,7 @@ function shiftDate(date, amount, granularity, local = false) {
|
|
|
34
34
|
return res;
|
|
35
35
|
}
|
|
36
36
|
default: {
|
|
37
|
-
return
|
|
37
|
+
return types_1.Granularity.Constant.shift(res, amount, granularity);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -70,7 +70,7 @@ function startOf(d, g, local = false) {
|
|
|
70
70
|
return (0, parse_1.getDate)(d);
|
|
71
71
|
}
|
|
72
72
|
default: {
|
|
73
|
-
const granMs = types_1.
|
|
73
|
+
const granMs = types_1.Granularity.Constant.toMs(g);
|
|
74
74
|
const startMs = ms - ms % granMs;
|
|
75
75
|
return new Date(startMs);
|
|
76
76
|
}
|
|
@@ -93,27 +93,4 @@ function isSame(d1, d2, g, local = false) {
|
|
|
93
93
|
return s1.getTime() === s2.getTime();
|
|
94
94
|
}
|
|
95
95
|
exports.isSame = isSame;
|
|
96
|
-
/**
|
|
97
|
-
* Allows to set day of week, symmetric to Date.getDay()
|
|
98
|
-
* @param d Date representation
|
|
99
|
-
* @param dayOfWeek 0..6 Sunday..Saturday
|
|
100
|
-
* @param future true - only forward or present, false - only backward or present, null - closest
|
|
101
|
-
* @param local whether to use local time
|
|
102
|
-
* @returns Date with the same time as d, but with the updated day of week
|
|
103
|
-
*/
|
|
104
|
-
function setDayOfWeek(d, dayOfWeek, future = null, local = false) {
|
|
105
|
-
const res = (0, parse_1.getDate)(d);
|
|
106
|
-
const currentDayOfWeek = datex_1.DateX.get(res, 'weekDay', local);
|
|
107
|
-
let diff = dayOfWeek - currentDayOfWeek;
|
|
108
|
-
if (future != null) {
|
|
109
|
-
if (future && diff < 0) {
|
|
110
|
-
diff += 7;
|
|
111
|
-
}
|
|
112
|
-
if (!future && diff > 0) {
|
|
113
|
-
diff -= 7;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return shiftDate(res, diff, 'day', local);
|
|
117
|
-
}
|
|
118
|
-
exports.setDayOfWeek = setDayOfWeek;
|
|
119
96
|
//# sourceMappingURL=shift.js.map
|
package/dates/shift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shift.js","sourceRoot":"","sources":["../../src/dates/shift.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAC3C,mCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"shift.js","sourceRoot":"","sources":["../../src/dates/shift.ts"],"names":[],"mappings":"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"}
|
package/dates/types.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export type Granularity = Granularity.Constant | 'month' | 'year';
|
|
2
|
+
export declare namespace Granularity {
|
|
3
|
+
type Constant = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week';
|
|
4
|
+
namespace Constant {
|
|
5
|
+
function toMs(g: Granularity.Constant): number;
|
|
6
|
+
function convert(amount: number, g: Granularity.Constant, to: Granularity.Constant): number;
|
|
7
|
+
function shift(date: Date | number, amount: number, granularity: Granularity.Constant): Date;
|
|
8
|
+
}
|
|
5
9
|
}
|
|
6
10
|
//# sourceMappingURL=types.d.ts.map
|
package/dates/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dates/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dates/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,GACxC,OAAO,GACP,MAAM,CACX;AAED,yBAAiB,WAAW,CAAC;IAEzB,KAAY,QAAQ,GAAG,aAAa,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,KAAK,GACL,MAAM,CACX;IAED,UAAiB,QAAQ,CAAC;QAEtB,SAAgB,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAwBpD;QAED,SAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,UAIxF;QAED,SAAgB,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI,CAOlG;KACJ;CACJ"}
|
package/dates/types.js
CHANGED
|
@@ -1,33 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
exports.Granularity = void 0;
|
|
4
|
+
const parse_1 = require("./parse");
|
|
5
|
+
var Granularity;
|
|
6
|
+
(function (Granularity) {
|
|
7
|
+
let Constant;
|
|
8
|
+
(function (Constant) {
|
|
9
|
+
function toMs(g) {
|
|
10
|
+
switch (g) {
|
|
11
|
+
case 'millisecond': {
|
|
12
|
+
return 1;
|
|
13
|
+
}
|
|
14
|
+
case 'second': {
|
|
15
|
+
return 1000;
|
|
16
|
+
}
|
|
17
|
+
case 'minute': {
|
|
18
|
+
return 60 * toMs('second');
|
|
19
|
+
}
|
|
20
|
+
case 'hour': {
|
|
21
|
+
return 60 * toMs('minute');
|
|
22
|
+
}
|
|
23
|
+
case 'day': {
|
|
24
|
+
return 24 * toMs('hour');
|
|
25
|
+
}
|
|
26
|
+
case 'week': {
|
|
27
|
+
return 7 * toMs('day');
|
|
28
|
+
}
|
|
29
|
+
default: {
|
|
30
|
+
throw new Error('Unsupported granularity');
|
|
31
|
+
}
|
|
10
32
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
case 'week': {
|
|
24
|
-
return 7 * toMs('day');
|
|
25
|
-
}
|
|
26
|
-
default: {
|
|
27
|
-
throw new Error('Unsupported granularity');
|
|
33
|
+
}
|
|
34
|
+
Constant.toMs = toMs;
|
|
35
|
+
function convert(amount, g, to) {
|
|
36
|
+
const ms = amount * toMs(g);
|
|
37
|
+
const msTo = toMs(to);
|
|
38
|
+
return ms / msTo;
|
|
39
|
+
}
|
|
40
|
+
Constant.convert = convert;
|
|
41
|
+
function shift(date, amount, granularity) {
|
|
42
|
+
const res = (0, parse_1.getDate)(date);
|
|
43
|
+
if (amount === 0) {
|
|
44
|
+
return res;
|
|
28
45
|
}
|
|
46
|
+
return new Date(res.getTime() + amount * toMs(granularity));
|
|
29
47
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
})(
|
|
48
|
+
Constant.shift = shift;
|
|
49
|
+
})(Constant = Granularity.Constant || (Granularity.Constant = {}));
|
|
50
|
+
})(Granularity || (exports.Granularity = Granularity = {}));
|
|
33
51
|
//# sourceMappingURL=types.js.map
|
package/dates/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dates/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dates/types.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAQlC,IAAiB,WAAW,CAqD3B;AArDD,WAAiB,WAAW;IAUxB,IAAiB,QAAQ,CA0CxB;IA1CD,WAAiB,QAAQ;QAErB,SAAgB,IAAI,CAAC,CAAuB;YACxC,QAAQ,CAAC,EAAE,CAAC;gBACR,KAAK,aAAa,CAAC,CAAC,CAAC;oBACjB,OAAO,CAAC,CAAC;gBACb,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACT,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;QAxBe,aAAI,OAwBnB,CAAA;QAED,SAAgB,OAAO,CAAC,MAAc,EAAE,CAAuB,EAAE,EAAwB;YACrF,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,EAAE,GAAG,IAAI,CAAC;QACrB,CAAC;QAJe,gBAAO,UAItB,CAAA;QAED,SAAgB,KAAK,CAAC,IAAmB,EAAE,MAAc,EAAE,WAAiC;YACxF,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC;YACf,CAAC;YAED,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChE,CAAC;QAPe,cAAK,QAOpB,CAAA;IACL,CAAC,EA1CgB,QAAQ,GAAR,oBAAQ,KAAR,oBAAQ,QA0CxB;AACL,CAAC,EArDgB,WAAW,2BAAX,WAAW,QAqD3B"}
|
package/lazy/promise.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAQzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAAwB;IAErC,OAAO,CAAC,QAAQ,CAA2B;gBAGtB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAC,GAAG,SAAqB;IAKvD,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,mBAGR;IAED,SAAS,CAAC,qBAAqB;IAcxB,WAAW,QAAS,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAQzE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAAwB;IAErC,OAAO,CAAC,QAAQ,CAA2B;gBAGtB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAC,GAAG,SAAqB;IAKvD,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,mBAGR;IAED,SAAS,CAAC,qBAAqB;IAcxB,WAAW,QAAS,CAAC,GAAG,SAAS,mBAWtC;IAEF,KAAK,aAIH;IAEF,OAAO,aAAsB;CAChC"}
|
package/lazy/promise.js
CHANGED
|
@@ -37,8 +37,11 @@ class LazyPromise {
|
|
|
37
37
|
}
|
|
38
38
|
setInstance = (res) => {
|
|
39
39
|
this._busy = false;
|
|
40
|
+
// refresh promise so it won't keep old callbacks
|
|
41
|
+
// + make sure it's resolved with the freshest value
|
|
42
|
+
// also do this before setting the instance... just in case :)
|
|
43
|
+
this._promise = Promise.resolve(res);
|
|
40
44
|
this._instance = res;
|
|
41
|
-
// keep this._promise to allow to re-use it outside
|
|
42
45
|
return res;
|
|
43
46
|
};
|
|
44
47
|
reset = () => {
|
package/lazy/promise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAQC;IACA;IAPb,SAAS,GAAkB,SAAS,CAAC;IACrC,KAAK,GAAmB,IAAI,CAAC;IAE7B,QAAQ,GAAsB,IAAI,CAAC;IAE3C,YACqB,QAA0B,EAC1B,UAAyB,SAAS;QADlC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAES,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrC,oDAAoD;gBACpD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC,SAAS,CAAC;gBAC1B,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEM,WAAW,GAAG,CAAC,GAAkB,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAQC;IACA;IAPb,SAAS,GAAkB,SAAS,CAAC;IACrC,KAAK,GAAmB,IAAI,CAAC;IAE7B,QAAQ,GAAsB,IAAI,CAAC;IAE3C,YACqB,QAA0B,EAC1B,UAAyB,SAAS;QADlC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAES,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrC,oDAAoD;gBACpD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC,SAAS,CAAC;gBAC1B,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEM,WAAW,GAAG,CAAC,GAAkB,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,iDAAiD;QACjD,oDAAoD;QACpD,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAErB,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;CAChC;AA7DD,kCA6DC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Nullable } from '../types/misc';
|
|
2
|
+
/**
|
|
3
|
+
* The idea here is to wrap a promise (or promise getter) so it will never throw natively, but still be able to provide success/fail results:
|
|
4
|
+
* - `onSuccess` for handling successful result: like `then` but to be called only if there was no error
|
|
5
|
+
* - `onError` for handling error: like `catch` but with extended error format
|
|
6
|
+
* - `expectError` adds a specific Error sub-class caster and adds it to the error data; useful when expecting some kind of specific error
|
|
7
|
+
*
|
|
8
|
+
* Important: all methods are chainable however will return the same PromiseExtended instance,
|
|
9
|
+
* while native Promise methods return a new Promise instance on each `then`/`catch`/`finally` call.
|
|
10
|
+
* Internally it just replaces the promise reference.
|
|
11
|
+
*
|
|
12
|
+
* Usage example:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* function doWork() {
|
|
16
|
+
* return new PromiseExtended()
|
|
17
|
+
* .run(async () => {
|
|
18
|
+
* // return 42;
|
|
19
|
+
* throw new Error('Some error');
|
|
20
|
+
* });
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* dowWork()
|
|
24
|
+
* // if no error, will return 42
|
|
25
|
+
* .onSuccess(data => console.log('Success:', data))
|
|
26
|
+
* // if error, will return { error: 'Some error', source: Error }
|
|
27
|
+
* .onError(({ error, source }) => console.error('Error Message:', error, '; original:', source))
|
|
28
|
+
* // this is possible to be called only if handlers throw
|
|
29
|
+
* .catch(err => console.error('Really unexpected error:', err));
|
|
30
|
+
*
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* NOTE: regular `then`/`catch` will still work, but they will go after `catch` in the chain,
|
|
34
|
+
* so basically every `then` will be called unless some previous handler throws,
|
|
35
|
+
* and every `catch` will NOT be called unless there was an error in any previous handler.
|
|
36
|
+
*
|
|
37
|
+
* If passed promise resolve is `PromiseExtended` instance, current instance will redirect everything to it.
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
export declare class PromiseExtended<T, TCustomErrors extends Record<string, unknown> = Record<never, unknown>> implements Promise<T> {
|
|
41
|
+
protected _error: PromiseExtended.ErrorData | null;
|
|
42
|
+
private _promise;
|
|
43
|
+
private readonly _errorProcessors;
|
|
44
|
+
private constructor();
|
|
45
|
+
static run<T, TErrors extends Record<string, unknown> = Record<never, unknown>>(worker: Promise<T> | (() => Promise<T>)): PromiseExtended<T, TErrors>;
|
|
46
|
+
onError(cb: Nullable<(data: PromiseExtended.ErrorData & TCustomErrors) => void>): this;
|
|
47
|
+
onSuccess(cb: Nullable<(data: T) => void>): this;
|
|
48
|
+
expectError<TName extends string, TError2 extends Error>(name: TName, ErrCtor: new (...args: unknown[]) => TError2): PromiseExtended<T, TCustomErrors & Record<TName, TError2>>;
|
|
49
|
+
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): PromiseExtended<TResult1 | TResult2, TCustomErrors>;
|
|
50
|
+
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null | undefined): PromiseExtended<T | TResult, TCustomErrors>;
|
|
51
|
+
finally(onfinally?: (() => void) | null | undefined): this;
|
|
52
|
+
get [Symbol.toStringTag](): string;
|
|
53
|
+
private getError;
|
|
54
|
+
private _catch;
|
|
55
|
+
protected onErrorCaught(data: PromiseExtended.ErrorData): void;
|
|
56
|
+
}
|
|
57
|
+
export declare namespace PromiseExtended {
|
|
58
|
+
type ErrorData = {
|
|
59
|
+
error: string;
|
|
60
|
+
source: Error;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=promiseExtended.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promiseExtended.d.ts","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,eAAe,CAAC,CAAC,EAAE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAEzH,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,GAAG,IAAI,CAAQ;IAE1D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqD;IAEtF,OAAO;WAIO,GAAG,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;IAYrJ,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,IAAI;IAYtF,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI;IAYhD,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,KAAK,EAC1D,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAC7C,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAY7D,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EACjF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAO3F,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAM5G,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;IAKnD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA8C;IAEhF,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,MAAM,CAWZ;IAEF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS;CAG1D;AAED,yBAAiB,eAAe,CAAC;IAC7B,KAAY,SAAS,GAAG;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;KACjB,CAAC;CACL"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromiseExtended = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The idea here is to wrap a promise (or promise getter) so it will never throw natively, but still be able to provide success/fail results:
|
|
6
|
+
* - `onSuccess` for handling successful result: like `then` but to be called only if there was no error
|
|
7
|
+
* - `onError` for handling error: like `catch` but with extended error format
|
|
8
|
+
* - `expectError` adds a specific Error sub-class caster and adds it to the error data; useful when expecting some kind of specific error
|
|
9
|
+
*
|
|
10
|
+
* Important: all methods are chainable however will return the same PromiseExtended instance,
|
|
11
|
+
* while native Promise methods return a new Promise instance on each `then`/`catch`/`finally` call.
|
|
12
|
+
* Internally it just replaces the promise reference.
|
|
13
|
+
*
|
|
14
|
+
* Usage example:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* function doWork() {
|
|
18
|
+
* return new PromiseExtended()
|
|
19
|
+
* .run(async () => {
|
|
20
|
+
* // return 42;
|
|
21
|
+
* throw new Error('Some error');
|
|
22
|
+
* });
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* dowWork()
|
|
26
|
+
* // if no error, will return 42
|
|
27
|
+
* .onSuccess(data => console.log('Success:', data))
|
|
28
|
+
* // if error, will return { error: 'Some error', source: Error }
|
|
29
|
+
* .onError(({ error, source }) => console.error('Error Message:', error, '; original:', source))
|
|
30
|
+
* // this is possible to be called only if handlers throw
|
|
31
|
+
* .catch(err => console.error('Really unexpected error:', err));
|
|
32
|
+
*
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* NOTE: regular `then`/`catch` will still work, but they will go after `catch` in the chain,
|
|
36
|
+
* so basically every `then` will be called unless some previous handler throws,
|
|
37
|
+
* and every `catch` will NOT be called unless there was an error in any previous handler.
|
|
38
|
+
*
|
|
39
|
+
* If passed promise resolve is `PromiseExtended` instance, current instance will redirect everything to it.
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
42
|
+
class PromiseExtended {
|
|
43
|
+
_error = null;
|
|
44
|
+
_promise;
|
|
45
|
+
_errorProcessors = [];
|
|
46
|
+
constructor(promise) {
|
|
47
|
+
this._promise = promise.catch(this._catch);
|
|
48
|
+
}
|
|
49
|
+
static run(worker) {
|
|
50
|
+
const promise = typeof worker === 'function'
|
|
51
|
+
? worker()
|
|
52
|
+
: worker;
|
|
53
|
+
if (promise instanceof PromiseExtended) {
|
|
54
|
+
return promise;
|
|
55
|
+
}
|
|
56
|
+
return new PromiseExtended(promise);
|
|
57
|
+
}
|
|
58
|
+
onError(cb) {
|
|
59
|
+
if (cb != null) {
|
|
60
|
+
this._promise = this._promise.then(data => {
|
|
61
|
+
if (this._error) {
|
|
62
|
+
cb(this.getError());
|
|
63
|
+
}
|
|
64
|
+
return data;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
onSuccess(cb) {
|
|
70
|
+
if (cb != null) {
|
|
71
|
+
this._promise = this._promise.then(data => {
|
|
72
|
+
if (!this._error) {
|
|
73
|
+
cb(data);
|
|
74
|
+
}
|
|
75
|
+
return data;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
expectError(name, ErrCtor) {
|
|
81
|
+
this._errorProcessors.push(errorData => {
|
|
82
|
+
const src = errorData?.source;
|
|
83
|
+
if (src && src instanceof ErrCtor) {
|
|
84
|
+
Object.assign(errorData, { [name]: errorData.source });
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
then(onfulfilled, onrejected) {
|
|
90
|
+
const res = this;
|
|
91
|
+
res._promise = this._promise.then(onfulfilled, onrejected);
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
94
|
+
catch(onrejected) {
|
|
95
|
+
const res = this;
|
|
96
|
+
res._promise = this._promise.catch(onrejected);
|
|
97
|
+
return res;
|
|
98
|
+
}
|
|
99
|
+
finally(onfinally) {
|
|
100
|
+
this._promise = this._promise.finally(onfinally);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
get [Symbol.toStringTag]() { return this._promise[Symbol.toStringTag]; }
|
|
104
|
+
getError() {
|
|
105
|
+
const data = {
|
|
106
|
+
error: this._error.error,
|
|
107
|
+
source: this._error.source,
|
|
108
|
+
};
|
|
109
|
+
this._errorProcessors.forEach(p => p(data));
|
|
110
|
+
return data;
|
|
111
|
+
}
|
|
112
|
+
_catch = (err) => {
|
|
113
|
+
let message = '';
|
|
114
|
+
if (Array.isArray(err)) {
|
|
115
|
+
message = err.map(e => e.message).join('\n');
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
message = err.message;
|
|
119
|
+
}
|
|
120
|
+
this.onErrorCaught({ error: message, source: err });
|
|
121
|
+
return undefined;
|
|
122
|
+
};
|
|
123
|
+
onErrorCaught(data) {
|
|
124
|
+
this._error = data;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.PromiseExtended = PromiseExtended;
|
|
128
|
+
//# sourceMappingURL=promiseExtended.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promiseExtended.js","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":"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"}
|