@tachybase/utils 0.23.20 → 0.23.35
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/lib/parse-date.d.ts +4 -0
- package/lib/parse-date.js +28 -12
- package/lib/parse-filter.js +6 -6
- package/package.json +1 -1
package/lib/parse-date.d.ts
CHANGED
package/lib/parse-date.js
CHANGED
|
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var parse_date_exports = {};
|
|
20
20
|
__export(parse_date_exports, {
|
|
21
|
-
parseDate: () => parseDate
|
|
21
|
+
parseDate: () => parseDate,
|
|
22
|
+
parseWeek: () => parseWeek
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(parse_date_exports);
|
|
24
25
|
var import_date = require("./date");
|
|
@@ -60,13 +61,27 @@ __name(parseQuarter, "parseQuarter");
|
|
|
60
61
|
function parseWeek(value) {
|
|
61
62
|
if (/^\d\d\d\d[W]\d\d$/.test(value)) {
|
|
62
63
|
const arr = value.split("W");
|
|
64
|
+
const year = (0, import_dayjs.dayjs)(arr[0], "YYYY").format("GGGG");
|
|
65
|
+
if (year !== arr[0]) {
|
|
66
|
+
return {
|
|
67
|
+
unit: "isoWeek",
|
|
68
|
+
start: (0, import_dayjs.dayjs)(arr[0], "YYYY").add(1, "week").startOf("isoWeek").isoWeek(Number(arr[1])).format("YYYY-MM-DD HH:mm:ss")
|
|
69
|
+
};
|
|
70
|
+
}
|
|
63
71
|
return {
|
|
64
72
|
unit: "isoWeek",
|
|
65
|
-
start: (0, import_dayjs.dayjs)(arr[0], "YYYY").
|
|
73
|
+
start: (0, import_dayjs.dayjs)(arr[0], "YYYY").isoWeek(Number(arr[1])).format("YYYY-MM-DD HH:mm:ss")
|
|
66
74
|
};
|
|
67
75
|
}
|
|
68
76
|
if (/^\d\d\d\d[w]\d\d$/.test(value)) {
|
|
69
77
|
const arr = value.split("w");
|
|
78
|
+
const year = (0, import_dayjs.dayjs)(arr[0], "YYYY").format("gggg");
|
|
79
|
+
if (year !== arr[0]) {
|
|
80
|
+
return {
|
|
81
|
+
unit: "week",
|
|
82
|
+
start: (0, import_dayjs.dayjs)(arr[0], "YYYY").add(1, "week").startOf("week").week(Number(arr[1])).format("YYYY-MM-DD HH:mm:ss")
|
|
83
|
+
};
|
|
84
|
+
}
|
|
70
85
|
return {
|
|
71
86
|
unit: "week",
|
|
72
87
|
start: (0, import_dayjs.dayjs)(arr[0], "YYYY").week(Number(arr[1])).format("YYYY-MM-DD HH:mm:ss")
|
|
@@ -75,7 +90,7 @@ function parseWeek(value) {
|
|
|
75
90
|
}
|
|
76
91
|
__name(parseWeek, "parseWeek");
|
|
77
92
|
function parseMonth(value) {
|
|
78
|
-
if (/^\d\d\d\d
|
|
93
|
+
if (/^\d\d\d\d-\d\d$/.test(value)) {
|
|
79
94
|
return {
|
|
80
95
|
unit: "month",
|
|
81
96
|
start: `${value}-01 00:00:00`
|
|
@@ -84,7 +99,7 @@ function parseMonth(value) {
|
|
|
84
99
|
}
|
|
85
100
|
__name(parseMonth, "parseMonth");
|
|
86
101
|
function parseDay(value) {
|
|
87
|
-
if (/^\d\d\d\d
|
|
102
|
+
if (/^\d\d\d\d-\d\d-\d\d$/.test(value)) {
|
|
88
103
|
return {
|
|
89
104
|
unit: "day",
|
|
90
105
|
start: `${value} 00:00:00`
|
|
@@ -93,7 +108,7 @@ function parseDay(value) {
|
|
|
93
108
|
}
|
|
94
109
|
__name(parseDay, "parseDay");
|
|
95
110
|
function parseHour(value) {
|
|
96
|
-
if (/^\d\d\d\d
|
|
111
|
+
if (/^\d\d\d\d-\d\d-\d\d(T|\s)\d\d$/.test(value)) {
|
|
97
112
|
return {
|
|
98
113
|
unit: "hour",
|
|
99
114
|
start: `${value}:00:00`
|
|
@@ -102,7 +117,7 @@ function parseHour(value) {
|
|
|
102
117
|
}
|
|
103
118
|
__name(parseHour, "parseHour");
|
|
104
119
|
function parseMinute(value) {
|
|
105
|
-
if (/^\d\d\d\d
|
|
120
|
+
if (/^\d\d\d\d-\d\d-\d\d(T|\s)\d\d:\d\d$/.test(value)) {
|
|
106
121
|
return {
|
|
107
122
|
unit: "minute",
|
|
108
123
|
start: `${value}:00`
|
|
@@ -111,7 +126,7 @@ function parseMinute(value) {
|
|
|
111
126
|
}
|
|
112
127
|
__name(parseMinute, "parseMinute");
|
|
113
128
|
function parseSecond(value) {
|
|
114
|
-
if (/^\d\d\d\d
|
|
129
|
+
if (/^\d\d\d\d-\d\d-\d\d(T|\s)\d\d:\d\d:\d\d$/.test(value)) {
|
|
115
130
|
return {
|
|
116
131
|
unit: "second",
|
|
117
132
|
start: `${value}`
|
|
@@ -120,7 +135,7 @@ function parseSecond(value) {
|
|
|
120
135
|
}
|
|
121
136
|
__name(parseSecond, "parseSecond");
|
|
122
137
|
function parseMillisecond(value) {
|
|
123
|
-
if (/^\d\d\d\d
|
|
138
|
+
if (/^\d\d\d\d-\d\d-\d\d(T|\s)\d\d:\d\d:\d\d\.\d\d\d$/.test(value)) {
|
|
124
139
|
return {
|
|
125
140
|
unit: "millisecond",
|
|
126
141
|
start: `${value}`
|
|
@@ -168,7 +183,7 @@ function parseDate(value, options = {}) {
|
|
|
168
183
|
let timezone = options.timezone || "+00:00";
|
|
169
184
|
const input = value;
|
|
170
185
|
if (typeof value === "string") {
|
|
171
|
-
const match = /(.+)((
|
|
186
|
+
const match = /(.+)((\+|-)\d\d:\d\d)$/.exec(value);
|
|
172
187
|
if (match) {
|
|
173
188
|
value = match[1];
|
|
174
189
|
timezone = match[2];
|
|
@@ -218,13 +233,13 @@ function parseDateBetween(value, options = {}) {
|
|
|
218
233
|
if (typeof value !== "string") {
|
|
219
234
|
return;
|
|
220
235
|
}
|
|
221
|
-
const match = /(.+)((
|
|
236
|
+
const match = /(.+)((\+|-)\d\d:\d\d)$/.exec(value);
|
|
222
237
|
let timezone = options.timezone || "+00:00";
|
|
223
238
|
if (match) {
|
|
224
239
|
value = match[1];
|
|
225
240
|
timezone = match[2];
|
|
226
241
|
}
|
|
227
|
-
const m = /^(\(|\[)(.+)
|
|
242
|
+
const m = /^(\(|\[)(.+),(.+)(\)|\])$/.exec(value);
|
|
228
243
|
if (!m) {
|
|
229
244
|
return;
|
|
230
245
|
}
|
|
@@ -233,5 +248,6 @@ function parseDateBetween(value, options = {}) {
|
|
|
233
248
|
__name(parseDateBetween, "parseDateBetween");
|
|
234
249
|
// Annotate the CommonJS export names for ESM import in node:
|
|
235
250
|
0 && (module.exports = {
|
|
236
|
-
parseDate
|
|
251
|
+
parseDate,
|
|
252
|
+
parseWeek
|
|
237
253
|
});
|
package/lib/parse-filter.js
CHANGED
|
@@ -209,26 +209,26 @@ function getDayRange(options) {
|
|
|
209
209
|
];
|
|
210
210
|
}
|
|
211
211
|
__name(getDayRange, "getDayRange");
|
|
212
|
-
function toMoment(value) {
|
|
212
|
+
function toMoment(value, unit = "") {
|
|
213
213
|
if (!value) {
|
|
214
|
-
return (0, import_dayjs.dayjs)();
|
|
214
|
+
return unit === "isoWeek" ? (0, import_dayjs.dayjs)().isoWeekday(1) : (0, import_dayjs.dayjs)();
|
|
215
215
|
}
|
|
216
216
|
if (import_dayjs.dayjs.isDayjs(value)) {
|
|
217
217
|
return value;
|
|
218
218
|
}
|
|
219
|
-
return (0, import_dayjs.dayjs)(value);
|
|
219
|
+
return unit === "isoWeek" ? (0, import_dayjs.dayjs)(value).isoWeekday(1) : (0, import_dayjs.dayjs)(value);
|
|
220
220
|
}
|
|
221
221
|
__name(toMoment, "toMoment");
|
|
222
222
|
function utc2unit(options) {
|
|
223
223
|
var _a;
|
|
224
224
|
const { now, unit, timezone = "+00:00", offset } = options;
|
|
225
|
-
let m = toMoment(now);
|
|
225
|
+
let m = toMoment(now, unit);
|
|
226
226
|
m = m.utcOffset((0, import_date.offsetFromString)(timezone));
|
|
227
227
|
m = m.startOf(unit);
|
|
228
228
|
if (offset > 0) {
|
|
229
|
-
m = m.add(offset, unit);
|
|
229
|
+
m = m.add(offset, unit === "isoWeek" ? "week" : unit);
|
|
230
230
|
} else if (offset < 0) {
|
|
231
|
-
m = m.subtract(-1 * offset, unit);
|
|
231
|
+
m = m.subtract(-1 * offset, unit === "isoWeek" ? "week" : unit);
|
|
232
232
|
}
|
|
233
233
|
const fn = {
|
|
234
234
|
year: /* @__PURE__ */ __name(() => m.format("YYYY"), "year"),
|