@alanszp/relative-date 16.4.3 → 16.5.0

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.
Files changed (43) hide show
  1. package/README.md +168 -0
  2. package/dist/DateExpression.d.ts +74 -0
  3. package/dist/DateExpression.js +124 -0
  4. package/dist/DateExpression.js.map +1 -0
  5. package/dist/DateExpression.test.d.ts +1 -0
  6. package/dist/DateExpression.test.js +495 -0
  7. package/dist/DateExpression.test.js.map +1 -0
  8. package/dist/Modifier.d.ts +26 -0
  9. package/dist/Modifier.js +84 -0
  10. package/dist/Modifier.js.map +1 -0
  11. package/dist/Modifier.test.d.ts +1 -0
  12. package/dist/Modifier.test.js +430 -0
  13. package/dist/Modifier.test.js.map +1 -0
  14. package/dist/date-parser/AbsoluteDateParser.d.ts +5 -0
  15. package/dist/date-parser/AbsoluteDateParser.js +15 -0
  16. package/dist/date-parser/AbsoluteDateParser.js.map +1 -0
  17. package/dist/date-parser/DateParser.d.ts +4 -0
  18. package/dist/date-parser/DateParser.js +3 -0
  19. package/dist/date-parser/DateParser.js.map +1 -0
  20. package/dist/date-parser/DateParserFactory.d.ts +4 -0
  21. package/dist/date-parser/DateParserFactory.js +19 -0
  22. package/dist/date-parser/DateParserFactory.js.map +1 -0
  23. package/dist/date-parser/RelativeDateParser.d.ts +26 -0
  24. package/dist/date-parser/RelativeDateParser.js +101 -0
  25. package/dist/date-parser/RelativeDateParser.js.map +1 -0
  26. package/dist/date-parser/RelativeDateParser.test.d.ts +1 -0
  27. package/dist/date-parser/RelativeDateParser.test.js +351 -0
  28. package/dist/date-parser/RelativeDateParser.test.js.map +1 -0
  29. package/dist/errors/InvalidDateExpression.d.ts +3 -0
  30. package/dist/errors/InvalidDateExpression.js +10 -0
  31. package/dist/errors/InvalidDateExpression.js.map +1 -0
  32. package/dist/errors/InvalidModifier.d.ts +3 -0
  33. package/dist/errors/InvalidModifier.js +10 -0
  34. package/dist/errors/InvalidModifier.js.map +1 -0
  35. package/dist/index.d.ts +5 -0
  36. package/dist/index.js +11 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/relativeDateToFixed.d.ts +0 -2
  39. package/dist/relativeDateToFixed.js +7 -107
  40. package/dist/relativeDateToFixed.js.map +1 -1
  41. package/dist/relativeDateToFixed.test.js +0 -258
  42. package/dist/relativeDateToFixed.test.js.map +1 -1
  43. package/package.json +2 -2
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const RelativeDateParser_1 = require("./RelativeDateParser");
4
+ const InvalidDateExpression_1 = require("../errors/InvalidDateExpression");
5
+ describe("RelativeDateParser", () => {
6
+ let parser;
7
+ beforeEach(() => {
8
+ parser = new RelativeDateParser_1.RelativeDateParser();
9
+ });
10
+ describe("decompose", () => {
11
+ describe("valid relative date expressions", () => {
12
+ describe("days", () => {
13
+ it.each([
14
+ ["+1d", "+", 1, "days"],
15
+ ["-5d", "-", 5, "days"],
16
+ ["+10d", "+", 10, "days"],
17
+ ["-0d", "-", 0, "days"],
18
+ ["+1day", "+", 1, "days"],
19
+ ["-5day", "-", 5, "days"],
20
+ ["+10day", "+", 10, "days"],
21
+ ["+1days", "+", 1, "days"],
22
+ ["-5days", "-", 5, "days"],
23
+ ["+10days", "+", 10, "days"],
24
+ ])("should decompose day expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
25
+ const result = parser.decompose(input);
26
+ expect(result.operator).toBe(expectedOperator);
27
+ expect(result.quantity).toBe(expectedQuantity);
28
+ expect(result.unit).toBe(expectedUnit);
29
+ });
30
+ });
31
+ describe("weeks", () => {
32
+ it.each([
33
+ ["+1w", "+", 1, "weeks"],
34
+ ["-2w", "-", 2, "weeks"],
35
+ ["+10w", "+", 10, "weeks"],
36
+ ["+1week", "+", 1, "weeks"],
37
+ ["-2week", "-", 2, "weeks"],
38
+ ["+10week", "+", 10, "weeks"],
39
+ ["+1weeks", "+", 1, "weeks"],
40
+ ["-2weeks", "-", 2, "weeks"],
41
+ ["+10weeks", "+", 10, "weeks"],
42
+ ])("should decompose week expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
43
+ const result = parser.decompose(input);
44
+ expect(result.operator).toBe(expectedOperator);
45
+ expect(result.quantity).toBe(expectedQuantity);
46
+ expect(result.unit).toBe(expectedUnit);
47
+ });
48
+ });
49
+ describe("months", () => {
50
+ it.each([
51
+ ["+1m", "+", 1, "months"],
52
+ ["-3m", "-", 3, "months"],
53
+ ["+12m", "+", 12, "months"],
54
+ ["+1month", "+", 1, "months"],
55
+ ["-3month", "-", 3, "months"],
56
+ ["+12month", "+", 12, "months"],
57
+ ["+1months", "+", 1, "months"],
58
+ ["-3months", "-", 3, "months"],
59
+ ["+12months", "+", 12, "months"],
60
+ ])("should decompose month expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
61
+ const result = parser.decompose(input);
62
+ expect(result.operator).toBe(expectedOperator);
63
+ expect(result.quantity).toBe(expectedQuantity);
64
+ expect(result.unit).toBe(expectedUnit);
65
+ });
66
+ });
67
+ describe("quarters", () => {
68
+ it.each([
69
+ ["+1q", "+", 3, "months"],
70
+ ["-2q", "-", 6, "months"],
71
+ ["+4q", "+", 12, "months"],
72
+ ["+1quarter", "+", 3, "months"],
73
+ ["-2quarter", "-", 6, "months"],
74
+ ["+4quarter", "+", 12, "months"],
75
+ ["+1quarters", "+", 3, "months"],
76
+ ["-2quarters", "-", 6, "months"],
77
+ ["+4quarters", "+", 12, "months"],
78
+ ])("should decompose quarter expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
79
+ const result = parser.decompose(input);
80
+ expect(result.operator).toBe(expectedOperator);
81
+ expect(result.quantity).toBe(expectedQuantity);
82
+ expect(result.unit).toBe(expectedUnit);
83
+ });
84
+ });
85
+ describe("semesters", () => {
86
+ it.each([
87
+ ["+1s", "+", 6, "months"],
88
+ ["-2s", "-", 12, "months"],
89
+ ["+4s", "+", 24, "months"],
90
+ ["+1semester", "+", 6, "months"],
91
+ ["-2semester", "-", 12, "months"],
92
+ ["+4semester", "+", 24, "months"],
93
+ ["+1semesters", "+", 6, "months"],
94
+ ["-2semesters", "-", 12, "months"],
95
+ ["+4semesters", "+", 24, "months"],
96
+ ])("should decompose semester expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
97
+ const result = parser.decompose(input);
98
+ expect(result.operator).toBe(expectedOperator);
99
+ expect(result.quantity).toBe(expectedQuantity);
100
+ expect(result.unit).toBe(expectedUnit);
101
+ });
102
+ });
103
+ describe("bimesters", () => {
104
+ it.each([
105
+ ["+1b", "+", 2, "months"],
106
+ ["-3b", "-", 6, "months"],
107
+ ["+6b", "+", 12, "months"],
108
+ ["+1bimester", "+", 2, "months"],
109
+ ["-3bimester", "-", 6, "months"],
110
+ ["+6bimester", "+", 12, "months"],
111
+ ["+1bimesters", "+", 2, "months"],
112
+ ["-3bimesters", "-", 6, "months"],
113
+ ["+6bimesters", "+", 12, "months"],
114
+ ])("should decompose bimester expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
115
+ const result = parser.decompose(input);
116
+ expect(result.operator).toBe(expectedOperator);
117
+ expect(result.quantity).toBe(expectedQuantity);
118
+ expect(result.unit).toBe(expectedUnit);
119
+ });
120
+ });
121
+ describe("thirds", () => {
122
+ it.each([
123
+ ["+1t", "+", 4, "months"],
124
+ ["-2t", "-", 8, "months"],
125
+ ["+3t", "+", 12, "months"],
126
+ ["+1third", "+", 4, "months"],
127
+ ["-2third", "-", 8, "months"],
128
+ ["+3third", "+", 12, "months"],
129
+ ["+1thirds", "+", 4, "months"],
130
+ ["-2thirds", "-", 8, "months"],
131
+ ["+3thirds", "+", 12, "months"],
132
+ ])("should decompose third expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
133
+ const result = parser.decompose(input);
134
+ expect(result.operator).toBe(expectedOperator);
135
+ expect(result.quantity).toBe(expectedQuantity);
136
+ expect(result.unit).toBe(expectedUnit);
137
+ });
138
+ });
139
+ describe("years", () => {
140
+ it.each([
141
+ ["+1y", "+", 1, "years"],
142
+ ["-5y", "-", 5, "years"],
143
+ ["+10y", "+", 10, "years"],
144
+ ["+1year", "+", 1, "years"],
145
+ ["-5year", "-", 5, "years"],
146
+ ["+10year", "+", 10, "years"],
147
+ ["+1years", "+", 1, "years"],
148
+ ["-5years", "-", 5, "years"],
149
+ ["+10years", "+", 10, "years"],
150
+ ])("should decompose year expression '%s' correctly", (input, expectedOperator, expectedQuantity, expectedUnit) => {
151
+ const result = parser.decompose(input);
152
+ expect(result.operator).toBe(expectedOperator);
153
+ expect(result.quantity).toBe(expectedQuantity);
154
+ expect(result.unit).toBe(expectedUnit);
155
+ });
156
+ });
157
+ });
158
+ describe("whitespace handling", () => {
159
+ it.each([
160
+ [" +1d ", "+", 1, "days"],
161
+ [" -5w ", "-", 5, "weeks"],
162
+ ["\t+10m\t", "+", 10, "months"],
163
+ ["\n-2y\n", "-", 2, "years"],
164
+ ])("should handle whitespace around expression '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
165
+ const result = parser.decompose(input);
166
+ expect(result.operator).toBe(expectedOperator);
167
+ expect(result.quantity).toBe(expectedQuantity);
168
+ expect(result.unit).toBe(expectedUnit);
169
+ });
170
+ it.each([
171
+ ["+ 1d", "+", 1, "days"],
172
+ ["- 5w", "-", 5, "weeks"],
173
+ ["+ 10m", "+", 10, "months"],
174
+ ["- 2y", "-", 2, "years"],
175
+ ])("should handle whitespace between operator and number '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
176
+ const result = parser.decompose(input);
177
+ expect(result.operator).toBe(expectedOperator);
178
+ expect(result.quantity).toBe(expectedQuantity);
179
+ expect(result.unit).toBe(expectedUnit);
180
+ });
181
+ it.each([
182
+ ["+1 d", "+", 1, "days"],
183
+ ["-5 w", "-", 5, "weeks"],
184
+ ["+10 m", "+", 10, "months"],
185
+ ["-2 y", "-", 2, "years"],
186
+ ])("should handle whitespace between number and unit '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
187
+ const result = parser.decompose(input);
188
+ expect(result.operator).toBe(expectedOperator);
189
+ expect(result.quantity).toBe(expectedQuantity);
190
+ expect(result.unit).toBe(expectedUnit);
191
+ });
192
+ it.each([
193
+ ["+ 1 d", "+", 1, "days"],
194
+ ["- 5 w", "-", 5, "weeks"],
195
+ ["+ 10 m", "+", 10, "months"],
196
+ ["- 2 y", "-", 2, "years"],
197
+ ])("should handle whitespace between all parts '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
198
+ const result = parser.decompose(input);
199
+ expect(result.operator).toBe(expectedOperator);
200
+ expect(result.quantity).toBe(expectedQuantity);
201
+ expect(result.unit).toBe(expectedUnit);
202
+ });
203
+ });
204
+ describe("large numbers", () => {
205
+ it.each([
206
+ ["+999d", "+", 999, "days"],
207
+ ["-1000w", "-", 1000, "weeks"],
208
+ ["+9999m", "+", 9999, "months"],
209
+ ["-50000y", "-", 50000, "years"],
210
+ ])("should handle large numbers in expression '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
211
+ const result = parser.decompose(input);
212
+ expect(result.operator).toBe(expectedOperator);
213
+ expect(result.quantity).toBe(expectedQuantity);
214
+ expect(result.unit).toBe(expectedUnit);
215
+ });
216
+ });
217
+ describe("zero quantities", () => {
218
+ it.each([
219
+ ["+0d", "+", 0, "days"],
220
+ ["-0w", "-", 0, "weeks"],
221
+ ["+0m", "+", 0, "months"],
222
+ ["-0y", "-", 0, "years"],
223
+ ])("should handle zero quantities in expression '%s'", (input, expectedOperator, expectedQuantity, expectedUnit) => {
224
+ const result = parser.decompose(input);
225
+ expect(result.operator).toBe(expectedOperator);
226
+ expect(result.quantity).toBe(expectedQuantity);
227
+ expect(result.unit).toBe(expectedUnit);
228
+ });
229
+ });
230
+ });
231
+ describe("error handling", () => {
232
+ describe("invalid expressions", () => {
233
+ it.each([
234
+ "invalid",
235
+ "123",
236
+ "abc123",
237
+ "1d",
238
+ "+d",
239
+ "-w",
240
+ "+1",
241
+ "-5",
242
+ "+1invalid",
243
+ "-5invalid",
244
+ "",
245
+ " ",
246
+ "+1d extra",
247
+ "-5w extra",
248
+ "1+1d",
249
+ "d+1",
250
+ "w-5",
251
+ ])("should throw InvalidDateExpression for '%s'", (invalidExpression) => {
252
+ expect(() => parser.decompose(invalidExpression)).toThrow(InvalidDateExpression_1.InvalidDateExpression);
253
+ });
254
+ });
255
+ describe("unsupported time units", () => {
256
+ it.each([
257
+ "+1h",
258
+ "-5min",
259
+ "+10sec",
260
+ "-2ms",
261
+ "+1hour",
262
+ "-5minutes",
263
+ "+10seconds",
264
+ "-2milliseconds",
265
+ ])("should throw InvalidDateExpression for unsupported time unit '%s'", (invalidExpression) => {
266
+ expect(() => parser.decompose(invalidExpression)).toThrow(InvalidDateExpression_1.InvalidDateExpression);
267
+ });
268
+ });
269
+ describe("malformed expressions", () => {
270
+ it.each([
271
+ "++1d",
272
+ "--5w",
273
+ "+-1m",
274
+ "-+2y",
275
+ "1+1d",
276
+ "5-w",
277
+ "d+1",
278
+ "w-5",
279
+ "+1d+",
280
+ "-5w-",
281
+ "+1d:",
282
+ "-5w:",
283
+ ])("should throw InvalidDateExpression for malformed expression '%s'", (invalidExpression) => {
284
+ expect(() => parser.decompose(invalidExpression)).toThrow(InvalidDateExpression_1.InvalidDateExpression);
285
+ });
286
+ });
287
+ });
288
+ describe("static isRelativeDate", () => {
289
+ describe("valid relative dates", () => {
290
+ it.each([
291
+ "+1d",
292
+ "-5d",
293
+ "+1day",
294
+ "-5days",
295
+ "+1w",
296
+ "-2w",
297
+ "+1week",
298
+ "-2weeks",
299
+ "+1m",
300
+ "-3m",
301
+ "+1month",
302
+ "-3months",
303
+ "+1b",
304
+ "-2b",
305
+ "+1bimester",
306
+ "-2bimesters",
307
+ "+1q",
308
+ "-2q",
309
+ "+1quarter",
310
+ "-2quarters",
311
+ "+1s",
312
+ "-2s",
313
+ "+1semester",
314
+ "-2semesters",
315
+ "+1t",
316
+ "-2t",
317
+ "+1third",
318
+ "-2thirds",
319
+ "+1y",
320
+ "-5y",
321
+ "+1year",
322
+ "-5years",
323
+ "now",
324
+ ])("should return true for valid relative date '%s'", (validExpression) => {
325
+ expect(RelativeDateParser_1.RelativeDateParser.isRelativeDate(validExpression)).toBe(true);
326
+ });
327
+ });
328
+ describe("invalid relative dates", () => {
329
+ it.each([
330
+ "2023-06-15",
331
+ "invalid",
332
+ "123",
333
+ "abc123",
334
+ "1d",
335
+ "+d",
336
+ "-w",
337
+ "+1",
338
+ "-5",
339
+ "+1invalid",
340
+ "-5invalid",
341
+ "",
342
+ " ",
343
+ "+1d extra",
344
+ "-5w extra",
345
+ ])("should return false for invalid relative date '%s'", (invalidExpression) => {
346
+ expect(RelativeDateParser_1.RelativeDateParser.isRelativeDate(invalidExpression)).toBe(false);
347
+ });
348
+ });
349
+ });
350
+ });
351
+ //# sourceMappingURL=RelativeDateParser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelativeDateParser.test.js","sourceRoot":"","sources":["../../src/date-parser/RelativeDateParser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class InvalidDateExpression extends Error {
2
+ constructor(expression: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidDateExpression = void 0;
4
+ class InvalidDateExpression extends Error {
5
+ constructor(expression) {
6
+ super(`Invalid date expression: ${expression}`);
7
+ }
8
+ }
9
+ exports.InvalidDateExpression = InvalidDateExpression;
10
+ //# sourceMappingURL=InvalidDateExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidDateExpression.js","sourceRoot":"","sources":["../../src/errors/InvalidDateExpression.ts"],"names":[],"mappings":";;;AAAA,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,UAAkB;QAC5B,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,sDAIC"}
@@ -0,0 +1,3 @@
1
+ export declare class InvalidModifier extends Error {
2
+ constructor(modifier: string);
3
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidModifier = void 0;
4
+ class InvalidModifier extends Error {
5
+ constructor(modifier) {
6
+ super(`Invalid modifier: ${modifier}`);
7
+ }
8
+ }
9
+ exports.InvalidModifier = InvalidModifier;
10
+ //# sourceMappingURL=InvalidModifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidModifier.js","sourceRoot":"","sources":["../../src/errors/InvalidModifier.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,QAAgB;QAC1B,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAJD,0CAIC"}
package/dist/index.d.ts CHANGED
@@ -1 +1,6 @@
1
1
  export { relativeDateRangeToFixed, relativeDateRangeToFixedArray, relativeDateToFixed, } from "./relativeDateToFixed";
2
+ export { DateExpression } from "./DateExpression";
3
+ export { Modifier } from "./Modifier";
4
+ export { InvalidDateExpression } from "./errors/InvalidDateExpression";
5
+ export { InvalidModifier } from "./errors/InvalidModifier";
6
+ export { RelativeDateUnit } from "./date-parser/RelativeDateParser";
package/dist/index.js CHANGED
@@ -1,8 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.relativeDateToFixed = exports.relativeDateRangeToFixedArray = exports.relativeDateRangeToFixed = void 0;
3
+ exports.RelativeDateUnit = exports.InvalidModifier = exports.InvalidDateExpression = exports.Modifier = exports.DateExpression = exports.relativeDateToFixed = exports.relativeDateRangeToFixedArray = exports.relativeDateRangeToFixed = void 0;
4
4
  var relativeDateToFixed_1 = require("./relativeDateToFixed");
5
5
  Object.defineProperty(exports, "relativeDateRangeToFixed", { enumerable: true, get: function () { return relativeDateToFixed_1.relativeDateRangeToFixed; } });
6
6
  Object.defineProperty(exports, "relativeDateRangeToFixedArray", { enumerable: true, get: function () { return relativeDateToFixed_1.relativeDateRangeToFixedArray; } });
7
7
  Object.defineProperty(exports, "relativeDateToFixed", { enumerable: true, get: function () { return relativeDateToFixed_1.relativeDateToFixed; } });
8
+ var DateExpression_1 = require("./DateExpression");
9
+ Object.defineProperty(exports, "DateExpression", { enumerable: true, get: function () { return DateExpression_1.DateExpression; } });
10
+ var Modifier_1 = require("./Modifier");
11
+ Object.defineProperty(exports, "Modifier", { enumerable: true, get: function () { return Modifier_1.Modifier; } });
12
+ var InvalidDateExpression_1 = require("./errors/InvalidDateExpression");
13
+ Object.defineProperty(exports, "InvalidDateExpression", { enumerable: true, get: function () { return InvalidDateExpression_1.InvalidDateExpression; } });
14
+ var InvalidModifier_1 = require("./errors/InvalidModifier");
15
+ Object.defineProperty(exports, "InvalidModifier", { enumerable: true, get: function () { return InvalidModifier_1.InvalidModifier; } });
16
+ var RelativeDateParser_1 = require("./date-parser/RelativeDateParser");
17
+ Object.defineProperty(exports, "RelativeDateUnit", { enumerable: true, get: function () { return RelativeDateParser_1.RelativeDateUnit; } });
8
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAI+B;AAH7B,+HAAA,wBAAwB,OAAA;AACxB,oIAAA,6BAA6B,OAAA;AAC7B,0HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAI+B;AAH7B,+HAAA,wBAAwB,OAAA;AACxB,oIAAA,6BAA6B,OAAA;AAC7B,0HAAA,mBAAmB,OAAA;AAGrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,4DAA2D;AAAlD,kHAAA,eAAe,OAAA;AACxB,uEAAoE;AAA3D,sHAAA,gBAAgB,OAAA"}
@@ -1,5 +1,3 @@
1
- export declare function modifyDate(date: Date, extreme: string, timeUnit: string): Date;
2
- export declare const INPUT_DATE_FORMAT: "yyyy-MM-dd";
3
1
  /**
4
2
  * Given a relative format date (-/+ <number> <d|w|m|q|y> (: <s|e>o<w|m|q|y>)?) will
5
3
  * return an absolute day.
@@ -1,101 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.relativeDateRangeToFixed = exports.relativeDateRangeToFixedArray = exports.relativeDateToFixed = exports.INPUT_DATE_FORMAT = exports.modifyDate = void 0;
4
- const date_fns_1 = require("date-fns");
3
+ exports.relativeDateRangeToFixed = exports.relativeDateRangeToFixedArray = exports.relativeDateToFixed = void 0;
5
4
  const lodash_1 = require("lodash");
6
- // date format compliant with ISO
7
- const RelativeDateUnit = {
8
- DAYS: "days",
9
- WEEKS: "weeks",
10
- MONTHS: "months",
11
- YEARS: "years",
12
- NOW: "now",
13
- };
14
- const PLUS = "+";
15
- const RELATIVE_DATE_REGEX = /^\s*(([+-])\s*(\d+)\s*(d|day|days|w|week|weeks|m|month|months|q|quarter|quarters|y|year|years)|now)(?:\s*:\s*([es])o([bmqstwy]))?\s*$/;
16
- function defaultRelativeDateConverter(unit) {
17
- return (quantity) => ({ unit, quantity });
18
- }
19
- const RELATIVE_DATE_MAP = {
20
- d: defaultRelativeDateConverter(RelativeDateUnit.DAYS),
21
- day: defaultRelativeDateConverter(RelativeDateUnit.DAYS),
22
- days: defaultRelativeDateConverter(RelativeDateUnit.DAYS),
23
- w: defaultRelativeDateConverter(RelativeDateUnit.WEEKS),
24
- week: defaultRelativeDateConverter(RelativeDateUnit.WEEKS),
25
- weeks: defaultRelativeDateConverter(RelativeDateUnit.WEEKS),
26
- m: defaultRelativeDateConverter(RelativeDateUnit.MONTHS),
27
- month: defaultRelativeDateConverter(RelativeDateUnit.MONTHS),
28
- months: defaultRelativeDateConverter(RelativeDateUnit.MONTHS),
29
- q: (q) => ({ unit: RelativeDateUnit.MONTHS, quantity: q * 3 }),
30
- quarter: (q) => ({
31
- unit: RelativeDateUnit.MONTHS,
32
- quantity: q * 3,
33
- }),
34
- quarters: (q) => ({
35
- unit: RelativeDateUnit.MONTHS,
36
- quantity: q * 3,
37
- }),
38
- y: defaultRelativeDateConverter(RelativeDateUnit.YEARS),
39
- year: defaultRelativeDateConverter(RelativeDateUnit.YEARS),
40
- years: defaultRelativeDateConverter(RelativeDateUnit.YEARS),
41
- };
42
- function parseRelativeDate(fullRelative, operator, rawQuantity, rawTimeUnit) {
43
- if (fullRelative === RelativeDateUnit.NOW) {
44
- return new Date();
45
- }
46
- const op = operator === PLUS ? date_fns_1.add : date_fns_1.sub;
47
- const { unit, quantity } = RELATIVE_DATE_MAP[rawTimeUnit](Number.parseInt(rawQuantity, 10));
48
- return op(new Date(), { [unit]: quantity });
49
- }
50
- function startOfNs(n) {
51
- return (date) => {
52
- const month = date.getMonth();
53
- const year = date.getFullYear();
54
- const periodStartMonth = month - (month % n);
55
- return new Date(year, periodStartMonth, 1);
56
- };
57
- }
58
- function endOfNs(n) {
59
- return (date) => {
60
- const month = date.getMonth();
61
- const year = date.getFullYear();
62
- const periodStartMonthEndMonth = month + (n - (month % n));
63
- return new Date(year, periodStartMonthEndMonth, 0);
64
- };
65
- }
66
- const MODIFIER_FN_MAP = {
67
- e: {
68
- w: date_fns_1.endOfWeek,
69
- m: date_fns_1.endOfMonth,
70
- q: date_fns_1.endOfQuarter,
71
- y: date_fns_1.endOfYear,
72
- s: endOfNs(6),
73
- b: endOfNs(2),
74
- t: endOfNs(4),
75
- },
76
- s: {
77
- w: date_fns_1.startOfWeek,
78
- m: date_fns_1.startOfMonth,
79
- q: date_fns_1.startOfQuarter,
80
- y: date_fns_1.startOfYear,
81
- s: startOfNs(6),
82
- b: startOfNs(2),
83
- t: startOfNs(4),
84
- },
85
- };
86
- function modifyDate(date, extreme, timeUnit) {
87
- var _a, _b, _c;
88
- return ((_c = (_b = (_a = MODIFIER_FN_MAP[extreme]) === null || _a === void 0 ? void 0 : _a[timeUnit]) === null || _b === void 0 ? void 0 : _b.call(_a, date)) !== null && _c !== void 0 ? _c : date);
89
- }
90
- exports.modifyDate = modifyDate;
91
- function isRelativeDate(raw) {
92
- return RELATIVE_DATE_REGEX.test(raw);
93
- }
94
- // date format compliant with ISO
95
- exports.INPUT_DATE_FORMAT = "yyyy-MM-dd";
96
- function formatDate(date) {
97
- return (0, date_fns_1.format)(date, exports.INPUT_DATE_FORMAT);
98
- }
5
+ const DateExpression_1 = require("./DateExpression");
99
6
  /**
100
7
  * Given a relative format date (-/+ <number> <d|w|m|q|y> (: <s|e>o<w|m|q|y>)?) will
101
8
  * return an absolute day.
@@ -108,20 +15,13 @@ function formatDate(date) {
108
15
  function relativeDateToFixed(date) {
109
16
  if (!(0, lodash_1.isString)(date))
110
17
  return "";
111
- const stringDate = date.toString();
112
- if (!isRelativeDate(stringDate)) {
113
- return stringDate;
114
- }
115
- const result = RELATIVE_DATE_REGEX.exec(stringDate);
116
- if (!result) {
117
- throw new Error("Relative date error parsing");
18
+ try {
19
+ return DateExpression_1.DateExpression.from(date).toAbsoluteString();
118
20
  }
119
- const [, fullRelative, operator, rawQuantity, rawTimeUnit, modifierExtreme, modifierTimeUnit,] = result;
120
- const relativeDate = parseRelativeDate(fullRelative, operator, rawQuantity, rawTimeUnit);
121
- if (!modifierExtreme || !modifierTimeUnit) {
122
- return formatDate(relativeDate);
21
+ catch (error) {
22
+ // This is to keep the same behavior as before
23
+ return date;
123
24
  }
124
- return formatDate(modifyDate(relativeDate, modifierExtreme, modifierTimeUnit));
125
25
  }
126
26
  exports.relativeDateToFixed = relativeDateToFixed;
127
27
  function relativeDateRangeToFixedArray(range) {
@@ -1 +1 @@
1
- {"version":3,"file":"relativeDateToFixed.js","sourceRoot":"","sources":["../src/relativeDateToFixed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relativeDateToFixed.js","sourceRoot":"","sources":["../src/relativeDateToFixed.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,qDAAkD;AAElD;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAA,iBAAQ,EAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/B,IAAI;QACF,OAAO,+BAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;KACrD;IAAC,OAAO,KAAK,EAAE;QACd,8CAA8C;QAC9C,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AATD,kDASC;AAED,SAAgB,6BAA6B,CAC3C,KAAa;;IAEb,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,MAAA,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,mCAAI,IAAI;QACzC,MAAA,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,mCAAI,IAAI;KACxC,CAAC;AACJ,CAAC;AAVD,sEAUC;AAED,SAAgB,wBAAwB,CAAC,KAAa;IACpD,IAAI,CAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,WAAW,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACb;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAPD,4DAOC"}