@molopos/shared 2.0.89 → 2.0.90
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/date/index.d.ts +9 -53
- package/date/index.js +38 -132
- package/date/index.test.js +16 -64
- package/package.json +1 -1
package/date/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RecurrenceEnum } from "../enum";
|
|
2
|
-
import { DateLike
|
|
2
|
+
import { DateLike } from "../index";
|
|
3
3
|
interface PropsRecurrence {
|
|
4
4
|
date: Date;
|
|
5
5
|
duration?: number;
|
|
@@ -12,16 +12,10 @@ interface PropsRecurrence {
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const formateDate: (date: Date, locale: string) => string;
|
|
14
14
|
/**
|
|
15
|
-
* Format a date to a string
|
|
16
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
17
|
-
* @param locale - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
18
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
19
|
-
*
|
|
20
15
|
* @example
|
|
21
16
|
* formateddLLLyyyy("2026-01-01", "en-US"); // "1 Jan 2026"
|
|
22
17
|
*/
|
|
23
18
|
export declare const formateddLLLyyyy: (date: DateLike, locale: string) => string;
|
|
24
|
-
export declare const formateYYDDMM: (date: Date, locale: string) => string;
|
|
25
19
|
/**
|
|
26
20
|
* @example
|
|
27
21
|
* formateHHmm("2026-01-01", "en-US"); // "00:00"
|
|
@@ -42,66 +36,28 @@ export declare const formatDateFnsToDdMMYYYY: (date: Date) => string;
|
|
|
42
36
|
* formatDateFnsToDdMMYYYYHHmmss("2026-01-01"); // "01-01-2026 00:00:00"
|
|
43
37
|
*/
|
|
44
38
|
export declare const formatDateFnsToDdMMYYYYHHmm: (date: Date) => string;
|
|
45
|
-
export declare const formateToT: (date: Date) => string;
|
|
46
39
|
export declare const dateTimeNowUtc: () => Date;
|
|
47
|
-
export declare const formateToCccc: (date: Date, locale: string) => string;
|
|
48
|
-
export declare const formateTodd: (date: Date, locale: string) => string;
|
|
49
|
-
export declare const formateToLLLL: (date: Date, locale: string) => string;
|
|
50
|
-
export declare const formateToRFC2822: (date: Date, locale: string) => string;
|
|
51
|
-
export declare const formateToyyyy: (date: Date) => string;
|
|
52
|
-
export declare const viewYyformateToYyyy: (date: Date) => string;
|
|
53
|
-
export declare const addDaysToTimeNowUtcDate: (dayNumber: number) => Date;
|
|
54
|
-
export declare const formateMMLongDate: (date: Date, locale: string) => string;
|
|
55
|
-
export declare const formateDDDate: (date: Date, lang: string) => string;
|
|
56
|
-
export declare const formateddLLDate: (date: Date, lang: string) => string;
|
|
57
|
-
export declare const formateDDDateISO: (date: Date, locale: string) => string;
|
|
58
40
|
/**
|
|
59
|
-
* Format a date to a string
|
|
60
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
61
|
-
* @param locale - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
62
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
63
|
-
*
|
|
64
41
|
* @example
|
|
65
|
-
*
|
|
42
|
+
* formateToyyyy("2026-01-01"); // 2026
|
|
66
43
|
*/
|
|
67
|
-
export declare const
|
|
44
|
+
export declare const formateToyyyy: (date: Date) => number;
|
|
68
45
|
/**
|
|
69
|
-
* Format a date to a string
|
|
70
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
71
|
-
* @param lang - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
72
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
73
|
-
*
|
|
74
46
|
* @example
|
|
75
|
-
*
|
|
47
|
+
* addDaysToTimeNowUtcDate(1); // 2026-01-02
|
|
76
48
|
*/
|
|
77
|
-
export declare const
|
|
49
|
+
export declare const addDaysToTimeNowUtcDate: (dayNumber: number) => Date;
|
|
78
50
|
/**
|
|
79
51
|
*
|
|
80
|
-
* @
|
|
81
|
-
*
|
|
52
|
+
* @example
|
|
53
|
+
* dateTimeNowUtcUnixInteger(); // 1719168000
|
|
82
54
|
*/
|
|
83
55
|
export declare const dateTimeNowUtcUnixInteger: () => number;
|
|
84
56
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @returns The formatted date in Unix integer format
|
|
88
|
-
* @example 1719168000
|
|
57
|
+
* @example
|
|
58
|
+
* formateDateUnixInteger("2026-01-01"); // 1719168000
|
|
89
59
|
*/
|
|
90
60
|
export declare const formateDateUnixInteger: (date: Date) => number;
|
|
91
|
-
/**
|
|
92
|
-
* Subtract days from the current date
|
|
93
|
-
* @param value - The number of days to subtract
|
|
94
|
-
* @returns The date minus the number of days
|
|
95
|
-
* @example 2026-01-01
|
|
96
|
-
*/
|
|
97
|
-
export declare const subtractDaysToDateTimeNowUtc: (value: number) => Date;
|
|
98
|
-
/**
|
|
99
|
-
* Subtract days from the current date
|
|
100
|
-
* @param value - The number of days to subtract
|
|
101
|
-
* @returns The date minus the number of days
|
|
102
|
-
* @example 2026-01-01
|
|
103
|
-
*/
|
|
104
|
-
export declare const subtractDaysToDateTime: (date: Date, value: number) => Date;
|
|
105
61
|
/**
|
|
106
62
|
* @example
|
|
107
63
|
* recurrenceDate({ date: new Date(), recurrence: RecurrenceEnum.Monthly }) // 23/06/2026
|
package/date/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.recurrenceDate = exports.
|
|
3
|
+
exports.recurrenceDate = exports.formateDateUnixInteger = exports.dateTimeNowUtcUnixInteger = exports.addDaysToTimeNowUtcDate = exports.formateToyyyy = exports.dateTimeNowUtc = exports.formatDateFnsToDdMMYYYYHHmm = exports.formatDateFnsToDdMMYYYY = exports.formatDateDDMMYYToUtc = exports.formateHHmm = exports.formateddLLLyyyy = exports.formateDate = void 0;
|
|
4
4
|
const date_fns_1 = require("date-fns");
|
|
5
5
|
const locale_1 = require("date-fns/locale");
|
|
6
|
-
const luxon_1 = require("luxon");
|
|
7
6
|
const enum_1 = require("../enum");
|
|
8
7
|
const dataFnsLocale = {
|
|
9
8
|
es: locale_1.es,
|
|
@@ -18,40 +17,22 @@ const dataFnsLocale = {
|
|
|
18
17
|
* formateDate("2026-01-01", "en-US"); // "1 Jan 2026 00:00"
|
|
19
18
|
*/
|
|
20
19
|
const formateDate = (date, locale) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (currentYear === dateYear) {
|
|
26
|
-
dateReturn = (0, date_fns_1.format)(date, "PPp", {
|
|
27
|
-
locale: dataFnsLocale[locale],
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
dateReturn = (0, exports.formatDateDDMMYYToUtc)(date, locale);
|
|
32
|
-
}
|
|
33
|
-
return dateReturn;
|
|
20
|
+
const formatString = locale !== "en" ? "dd MMM p" : "MMM dd p";
|
|
21
|
+
return (0, date_fns_1.format)(date, (0, date_fns_1.isThisYear)(date) ? formatString : "P", {
|
|
22
|
+
locale: dataFnsLocale[locale],
|
|
23
|
+
});
|
|
34
24
|
};
|
|
35
25
|
exports.formateDate = formateDate;
|
|
36
26
|
/**
|
|
37
|
-
* Format a date to a string
|
|
38
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
39
|
-
* @param locale - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
40
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
41
|
-
*
|
|
42
27
|
* @example
|
|
43
28
|
* formateddLLLyyyy("2026-01-01", "en-US"); // "1 Jan 2026"
|
|
44
29
|
*/
|
|
45
30
|
const formateddLLLyyyy = (date, locale) => {
|
|
46
|
-
|
|
47
|
-
|
|
31
|
+
return (0, date_fns_1.format)(date, "PPp", {
|
|
32
|
+
locale: dataFnsLocale[locale],
|
|
33
|
+
});
|
|
48
34
|
};
|
|
49
35
|
exports.formateddLLLyyyy = formateddLLLyyyy;
|
|
50
|
-
const formateYYDDMM = (date, locale) => {
|
|
51
|
-
const dateInit = luxon_1.DateTime.fromISO(String(date));
|
|
52
|
-
return dateInit.setLocale(locale).toFormat("ff");
|
|
53
|
-
};
|
|
54
|
-
exports.formateYYDDMM = formateYYDDMM;
|
|
55
36
|
/**
|
|
56
37
|
* @example
|
|
57
38
|
* formateHHmm("2026-01-01", "en-US"); // "00:00"
|
|
@@ -76,106 +57,33 @@ exports.formatDateFnsToDdMMYYYY = formatDateFnsToDdMMYYYY;
|
|
|
76
57
|
*/
|
|
77
58
|
const formatDateFnsToDdMMYYYYHHmm = (date) => (0, date_fns_1.format)(date, "dd-MM-yyyy HH:mm");
|
|
78
59
|
exports.formatDateFnsToDdMMYYYYHHmm = formatDateFnsToDdMMYYYYHHmm;
|
|
79
|
-
const
|
|
80
|
-
exports.formateToT = formateToT;
|
|
81
|
-
const dateTimeNowUtc = () => luxon_1.DateTime.utc().toJSDate();
|
|
60
|
+
const dateTimeNowUtc = () => new Date();
|
|
82
61
|
exports.dateTimeNowUtc = dateTimeNowUtc;
|
|
83
|
-
const formateToCccc = (date, locale) => luxon_1.DateTime.fromISO(String(date)).setLocale(locale).toFormat("cccc");
|
|
84
|
-
exports.formateToCccc = formateToCccc;
|
|
85
|
-
const formateTodd = (date, locale) => luxon_1.DateTime.fromISO(String(date)).setLocale(locale).toFormat("dd");
|
|
86
|
-
exports.formateTodd = formateTodd;
|
|
87
|
-
const formateToLLLL = (date, locale) => luxon_1.DateTime.fromISO(String(date)).setLocale(locale).toFormat("LLLL");
|
|
88
|
-
exports.formateToLLLL = formateToLLLL;
|
|
89
|
-
const formateToRFC2822 = (date, locale) => luxon_1.DateTime.fromISO(String(date)).setLocale(locale).toFormat("DDDD");
|
|
90
|
-
exports.formateToRFC2822 = formateToRFC2822;
|
|
91
|
-
const formateToyyyy = (date) => luxon_1.DateTime.fromISO(String(date)).toFormat("yyyy");
|
|
92
|
-
exports.formateToyyyy = formateToyyyy;
|
|
93
|
-
const viewYyformateToYyyy = (date) => {
|
|
94
|
-
const todaysDate = new Date();
|
|
95
|
-
const currentYear = todaysDate.getFullYear();
|
|
96
|
-
const dateYear = Number(luxon_1.DateTime.fromISO(String(date)).toFormat("yyyy"));
|
|
97
|
-
return currentYear === dateYear ? null : `- ${dateYear}`;
|
|
98
|
-
};
|
|
99
|
-
exports.viewYyformateToYyyy = viewYyformateToYyyy;
|
|
100
|
-
const addDaysToTimeNowUtcDate = (dayNumber) => luxon_1.DateTime.utc().plus({ days: dayNumber }).toJSDate();
|
|
101
|
-
exports.addDaysToTimeNowUtcDate = addDaysToTimeNowUtcDate;
|
|
102
|
-
const formateMMLongDate = (date, locale) => {
|
|
103
|
-
return luxon_1.DateTime.fromJSDate(date)
|
|
104
|
-
.setLocale(locale)
|
|
105
|
-
.toLocaleString({ month: "long" });
|
|
106
|
-
};
|
|
107
|
-
exports.formateMMLongDate = formateMMLongDate;
|
|
108
|
-
const formateDDDate = (date, lang) => {
|
|
109
|
-
return luxon_1.DateTime.fromJSDate(date).setLocale(lang).toFormat("DD");
|
|
110
|
-
};
|
|
111
|
-
exports.formateDDDate = formateDDDate;
|
|
112
|
-
const formateddLLDate = (date, lang) => {
|
|
113
|
-
return luxon_1.DateTime.fromJSDate(date).setLocale(lang).toFormat("dd LLL");
|
|
114
|
-
};
|
|
115
|
-
exports.formateddLLDate = formateddLLDate;
|
|
116
|
-
const formateDDDateISO = (date, locale) => {
|
|
117
|
-
const dateInit = luxon_1.DateTime.fromISO(String(date));
|
|
118
|
-
return dateInit.setLocale(locale).toFormat("DD");
|
|
119
|
-
};
|
|
120
|
-
exports.formateDDDateISO = formateDDDateISO;
|
|
121
62
|
/**
|
|
122
|
-
* Format a date to a string
|
|
123
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
124
|
-
* @param locale - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
125
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
126
|
-
*
|
|
127
63
|
* @example
|
|
128
|
-
*
|
|
64
|
+
* formateToyyyy("2026-01-01"); // 2026
|
|
129
65
|
*/
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
return dateInit.setLocale(locale).toFormat("dd LLL yyyy");
|
|
133
|
-
};
|
|
134
|
-
exports.formateToUnixIntegerddLLLyyyy = formateToUnixIntegerddLLLyyyy;
|
|
66
|
+
const formateToyyyy = (date) => (0, date_fns_1.getYear)(date);
|
|
67
|
+
exports.formateToyyyy = formateToyyyy;
|
|
135
68
|
/**
|
|
136
|
-
* Format a date to a string
|
|
137
|
-
* @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
|
|
138
|
-
* @param lang - The locale to use (e.g. "en-US", "it-IT", "fr-FR", etc.)
|
|
139
|
-
* @returns The formatted date (e.g. "1 Jan 2026", "1 Jan 2026 00:00", etc.)
|
|
140
|
-
*
|
|
141
69
|
* @example
|
|
142
|
-
*
|
|
70
|
+
* addDaysToTimeNowUtcDate(1); // 2026-01-02
|
|
143
71
|
*/
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
};
|
|
147
|
-
exports.formateTDate = formateTDate;
|
|
72
|
+
const addDaysToTimeNowUtcDate = (dayNumber) => (0, date_fns_1.addDays)((0, exports.dateTimeNowUtc)(), dayNumber);
|
|
73
|
+
exports.addDaysToTimeNowUtcDate = addDaysToTimeNowUtcDate;
|
|
148
74
|
/**
|
|
149
75
|
*
|
|
150
|
-
* @
|
|
151
|
-
*
|
|
76
|
+
* @example
|
|
77
|
+
* dateTimeNowUtcUnixInteger(); // 1719168000
|
|
152
78
|
*/
|
|
153
|
-
const dateTimeNowUtcUnixInteger = () =>
|
|
79
|
+
const dateTimeNowUtcUnixInteger = () => Number((0, date_fns_1.format)((0, exports.dateTimeNowUtc)(), "T"));
|
|
154
80
|
exports.dateTimeNowUtcUnixInteger = dateTimeNowUtcUnixInteger;
|
|
155
81
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
* @returns The formatted date in Unix integer format
|
|
159
|
-
* @example 1719168000
|
|
82
|
+
* @example
|
|
83
|
+
* formateDateUnixInteger("2026-01-01"); // 1719168000
|
|
160
84
|
*/
|
|
161
|
-
const formateDateUnixInteger = (date) =>
|
|
85
|
+
const formateDateUnixInteger = (date) => Number((0, date_fns_1.format)(date, "T"));
|
|
162
86
|
exports.formateDateUnixInteger = formateDateUnixInteger;
|
|
163
|
-
/**
|
|
164
|
-
* Subtract days from the current date
|
|
165
|
-
* @param value - The number of days to subtract
|
|
166
|
-
* @returns The date minus the number of days
|
|
167
|
-
* @example 2026-01-01
|
|
168
|
-
*/
|
|
169
|
-
const subtractDaysToDateTimeNowUtc = (value) => luxon_1.DateTime.utc().minus({ days: value }).toJSDate();
|
|
170
|
-
exports.subtractDaysToDateTimeNowUtc = subtractDaysToDateTimeNowUtc;
|
|
171
|
-
/**
|
|
172
|
-
* Subtract days from the current date
|
|
173
|
-
* @param value - The number of days to subtract
|
|
174
|
-
* @returns The date minus the number of days
|
|
175
|
-
* @example 2026-01-01
|
|
176
|
-
*/
|
|
177
|
-
const subtractDaysToDateTime = (date, value) => luxon_1.DateTime.fromJSDate(date).minus({ days: value }).toJSDate();
|
|
178
|
-
exports.subtractDaysToDateTime = subtractDaysToDateTime;
|
|
179
87
|
/**
|
|
180
88
|
* @example
|
|
181
89
|
* recurrenceDate({ date: new Date(), recurrence: RecurrenceEnum.Monthly }) // 23/06/2026
|
|
@@ -188,38 +96,36 @@ const recurrenceDate = ({ date, recurrence, duration = 1, isRecurrence = false,
|
|
|
188
96
|
const dateNowUnix = (0, exports.dateTimeNowUtcUnixInteger)();
|
|
189
97
|
const dateUnix = (0, exports.formateDateUnixInteger)(dateInit);
|
|
190
98
|
const isFutureDate = dateUnix > dateNowUnix;
|
|
191
|
-
const dateNowInit = isFutureDate
|
|
192
|
-
? luxon_1.DateTime.fromJSDate(dateInit)
|
|
193
|
-
: luxon_1.DateTime.fromJSDate((0, exports.dateTimeNowUtc)());
|
|
99
|
+
const dateNowInit = isFutureDate ? dateInit : (0, exports.dateTimeNowUtc)();
|
|
194
100
|
switch (recurrence) {
|
|
195
101
|
case enum_1.RecurrenceEnum.Daily:
|
|
196
|
-
return
|
|
102
|
+
return (0, date_fns_1.addDays)(dateNowInit, duration);
|
|
197
103
|
case enum_1.RecurrenceEnum.Weekly:
|
|
198
|
-
return
|
|
104
|
+
return (0, date_fns_1.addWeeks)(dateNowInit, duration);
|
|
199
105
|
case enum_1.RecurrenceEnum.Monthly: {
|
|
200
106
|
if (isFutureDate) {
|
|
201
|
-
return
|
|
107
|
+
return (0, date_fns_1.addMonths)(dateNowInit, duration);
|
|
202
108
|
}
|
|
203
|
-
const now =
|
|
204
|
-
let nextOccurrence =
|
|
205
|
-
if (
|
|
206
|
-
nextOccurrence =
|
|
109
|
+
const now = (0, exports.dateTimeNowUtc)();
|
|
110
|
+
let nextOccurrence = (0, date_fns_1.setDate)(now, dateInit.getDate());
|
|
111
|
+
if ((0, exports.formateDateUnixInteger)(nextOccurrence) <= dateNowUnix) {
|
|
112
|
+
nextOccurrence = (0, date_fns_1.addMonths)(nextOccurrence, duration);
|
|
207
113
|
}
|
|
208
|
-
return nextOccurrence
|
|
114
|
+
return nextOccurrence;
|
|
209
115
|
}
|
|
210
116
|
case enum_1.RecurrenceEnum.Yearly: {
|
|
211
117
|
if (isFutureDate) {
|
|
212
|
-
return
|
|
118
|
+
return (0, date_fns_1.addYears)(dateNowInit, duration);
|
|
213
119
|
}
|
|
214
|
-
const now =
|
|
215
|
-
let nextOccurrence =
|
|
216
|
-
month: dateInit.getMonth()
|
|
217
|
-
|
|
120
|
+
const now = (0, exports.dateTimeNowUtc)();
|
|
121
|
+
let nextOccurrence = (0, date_fns_1.set)(now, {
|
|
122
|
+
month: dateInit.getMonth(),
|
|
123
|
+
date: dateInit.getDate(),
|
|
218
124
|
});
|
|
219
|
-
if (
|
|
220
|
-
nextOccurrence =
|
|
125
|
+
if ((0, exports.formateDateUnixInteger)(nextOccurrence) <= dateNowUnix) {
|
|
126
|
+
nextOccurrence = (0, date_fns_1.addYears)(nextOccurrence, duration);
|
|
221
127
|
}
|
|
222
|
-
return nextOccurrence
|
|
128
|
+
return nextOccurrence;
|
|
223
129
|
}
|
|
224
130
|
}
|
|
225
131
|
};
|
package/date/index.test.js
CHANGED
|
@@ -1,89 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const index_1 = require("./index");
|
|
4
4
|
const enum_1 = require("../enum");
|
|
5
5
|
describe("Date", () => {
|
|
6
6
|
it("formateDDDateISO", () => {
|
|
7
|
-
const dateNow = (0,
|
|
7
|
+
const dateNow = (0, index_1.formateDateUnixInteger)(new Date());
|
|
8
8
|
expect(dateNow).not.toBeNull();
|
|
9
9
|
expect(dateNow).toBeDefined();
|
|
10
10
|
});
|
|
11
11
|
it("dateTimeNowUtc", () => {
|
|
12
|
-
const dateNow = (0,
|
|
12
|
+
const dateNow = (0, index_1.dateTimeNowUtc)();
|
|
13
13
|
expect(dateNow).not.toBeNull();
|
|
14
14
|
expect(dateNow).toBeDefined();
|
|
15
15
|
});
|
|
16
16
|
it("dateTimeNowUtcUnixInteger", () => {
|
|
17
|
-
const dateNow = (0,
|
|
17
|
+
const dateNow = (0, index_1.dateTimeNowUtcUnixInteger)();
|
|
18
18
|
expect(dateNow).not.toBeNull();
|
|
19
19
|
expect(dateNow).toBeDefined();
|
|
20
20
|
});
|
|
21
21
|
it("formateDateUnixInteger", () => {
|
|
22
|
-
const dateNow = (0,
|
|
23
|
-
expect(dateNow).not.toBeNull();
|
|
24
|
-
expect(dateNow).toBeDefined();
|
|
25
|
-
});
|
|
26
|
-
it("subtractDaysToDateTimeNowUtc", () => {
|
|
27
|
-
const dateNow = (0, _1.subtractDaysToDateTimeNowUtc)(1);
|
|
22
|
+
const dateNow = (0, index_1.formateDateUnixInteger)(new Date());
|
|
28
23
|
expect(dateNow).not.toBeNull();
|
|
29
24
|
expect(dateNow).toBeDefined();
|
|
30
25
|
});
|
|
31
26
|
it("recurrenceDate isRecurrence = true", () => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
38
|
-
const dateNextYear = (0, _1.recurrenceDate)({
|
|
39
|
-
date: dateNow,
|
|
40
|
-
isRecurrence: true,
|
|
41
|
-
recurrence: enum_1.RecurrenceEnum.Yearly,
|
|
42
|
-
});
|
|
43
|
-
const dateNextWeek = (0, _1.recurrenceDate)({
|
|
44
|
-
date: dateNow,
|
|
27
|
+
jest.useFakeTimers();
|
|
28
|
+
jest.setSystemTime(new Date(2026, 9, 1, 14, 0, 0));
|
|
29
|
+
const date = new Date(2025, 6, 10, 2, 0, 0);
|
|
30
|
+
const nextDate = (recurrence) => (0, index_1.recurrenceDate)({
|
|
31
|
+
date,
|
|
45
32
|
isRecurrence: true,
|
|
46
|
-
recurrence
|
|
47
|
-
});
|
|
48
|
-
const dateNextDay = (0, _1.recurrenceDate)({
|
|
49
|
-
date: dateNow,
|
|
50
|
-
isRecurrence: true,
|
|
51
|
-
recurrence: enum_1.RecurrenceEnum.Daily,
|
|
52
|
-
});
|
|
53
|
-
expect(dateNextDay).not.toBeNull();
|
|
54
|
-
expect(dateNextYear).not.toBeNull();
|
|
55
|
-
expect(dateNextMonth).not.toBeNull();
|
|
56
|
-
expect(dateNextWeek).not.toBeNull();
|
|
57
|
-
expect(dateNextDay).toBeDefined();
|
|
58
|
-
expect(dateNextYear).toBeDefined();
|
|
59
|
-
expect(dateNextMonth).toBeDefined();
|
|
60
|
-
expect(dateNextWeek).toBeDefined();
|
|
61
|
-
});
|
|
62
|
-
it("recurrenceDate isRecurrence = false", () => {
|
|
63
|
-
const dateNow = new Date("2025-07-10 00:00:00+00");
|
|
64
|
-
const dateNextMonth = (0, _1.recurrenceDate)({
|
|
65
|
-
date: dateNow,
|
|
66
|
-
isRecurrence: false,
|
|
67
|
-
recurrence: enum_1.RecurrenceEnum.Monthly,
|
|
68
|
-
});
|
|
69
|
-
const dateNextYear = (0, _1.recurrenceDate)({
|
|
70
|
-
date: dateNow,
|
|
71
|
-
isRecurrence: false,
|
|
72
|
-
recurrence: enum_1.RecurrenceEnum.Yearly,
|
|
73
|
-
});
|
|
74
|
-
const dateNextWeek = (0, _1.recurrenceDate)({
|
|
75
|
-
date: dateNow,
|
|
76
|
-
isRecurrence: false,
|
|
77
|
-
recurrence: enum_1.RecurrenceEnum.Weekly,
|
|
78
|
-
});
|
|
79
|
-
const dateNextDay = (0, _1.recurrenceDate)({
|
|
80
|
-
date: dateNow,
|
|
81
|
-
isRecurrence: false,
|
|
82
|
-
recurrence: enum_1.RecurrenceEnum.Daily,
|
|
33
|
+
recurrence,
|
|
83
34
|
});
|
|
84
|
-
expect(
|
|
85
|
-
expect(
|
|
86
|
-
expect(
|
|
87
|
-
expect(
|
|
35
|
+
expect(nextDate(enum_1.RecurrenceEnum.Daily)).toEqual(new Date(2026, 9, 2, 14, 0, 0));
|
|
36
|
+
expect(nextDate(enum_1.RecurrenceEnum.Weekly)).toEqual(new Date(2026, 9, 8, 14, 0, 0));
|
|
37
|
+
expect(nextDate(enum_1.RecurrenceEnum.Monthly)).toEqual(new Date(2026, 9, 10, 14, 0, 0));
|
|
38
|
+
expect(nextDate(enum_1.RecurrenceEnum.Yearly)).toEqual(new Date(2027, 6, 10, 14, 0, 0));
|
|
39
|
+
jest.useRealTimers();
|
|
88
40
|
});
|
|
89
41
|
});
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.
|
|
1
|
+
{"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.90","description":"Shared between backend and frontend repos","license":"ISC","repository":{"type":"git","url":"https://github.com/unicubate/molopos-shared.git"},"dependencies":{"class-transformer":"^0.5.1","date-fns":"^4.4.0","luxon":"^3.7.2"}}
|