chrono-node 2.9.1 → 2.10.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 (211) hide show
  1. package/dist/cjs/locales/de/parsers/DECasualTimeParser.js +7 -0
  2. package/dist/cjs/locales/de/parsers/DECasualTimeParser.js.map +1 -1
  3. package/dist/cjs/locales/en/configuration.js +2 -0
  4. package/dist/cjs/locales/en/configuration.js.map +1 -1
  5. package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
  6. package/dist/cjs/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
  7. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
  8. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js +31 -0
  9. package/dist/cjs/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
  10. package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js +7 -0
  11. package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
  12. package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js +5 -0
  13. package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
  14. package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
  15. package/dist/cjs/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
  16. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +5 -0
  17. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  18. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
  19. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  20. package/dist/cjs/locales/zh/hans/index.js +2 -0
  21. package/dist/cjs/locales/zh/hans/index.js.map +1 -1
  22. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
  23. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +80 -0
  24. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
  25. package/dist/cjs/locales/zh/hant/index.js +2 -0
  26. package/dist/cjs/locales/zh/hant/index.js.map +1 -1
  27. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
  28. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +80 -0
  29. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
  30. package/dist/cjs/results.js +15 -9
  31. package/dist/cjs/results.js.map +1 -1
  32. package/dist/esm/locales/de/parsers/DECasualTimeParser.js +7 -0
  33. package/dist/esm/locales/de/parsers/DECasualTimeParser.js.map +1 -1
  34. package/dist/esm/locales/en/configuration.js +2 -0
  35. package/dist/esm/locales/en/configuration.js.map +1 -1
  36. package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -1
  37. package/dist/esm/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -1
  38. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.d.ts +6 -0
  39. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js +28 -0
  40. package/dist/esm/locales/en/parsers/ENYearMonthNameParser.js.map +1 -0
  41. package/dist/esm/locales/fi/parsers/FICasualTimeParser.js +7 -0
  42. package/dist/esm/locales/fi/parsers/FICasualTimeParser.js.map +1 -1
  43. package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js +5 -0
  44. package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js.map +1 -1
  45. package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +2 -1
  46. package/dist/esm/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -1
  47. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +5 -0
  48. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  49. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +1 -1
  50. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  51. package/dist/esm/locales/zh/hans/index.js +2 -0
  52. package/dist/esm/locales/zh/hans/index.js.map +1 -1
  53. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +6 -0
  54. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +77 -0
  55. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -0
  56. package/dist/esm/locales/zh/hant/index.js +2 -0
  57. package/dist/esm/locales/zh/hant/index.js.map +1 -1
  58. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +6 -0
  59. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +77 -0
  60. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -0
  61. package/dist/esm/results.js +14 -9
  62. package/dist/esm/results.js.map +1 -1
  63. package/package.json +5 -1
  64. package/src/locales/de/parsers/DECasualTimeParser.ts +7 -0
  65. package/src/locales/en/configuration.ts +2 -0
  66. package/src/locales/en/parsers/ENMonthNameLittleEndianParser.ts +1 -1
  67. package/src/locales/en/parsers/ENYearMonthNameParser.ts +38 -0
  68. package/src/locales/fi/parsers/FICasualTimeParser.ts +7 -0
  69. package/src/locales/fr/parsers/FRCasualTimeParser.ts +5 -0
  70. package/src/locales/fr/parsers/FRTimeUnitRelativeFormatParser.ts +2 -1
  71. package/src/locales/it/parsers/ITCasualTimeParser.ts +5 -0
  72. package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +1 -1
  73. package/src/locales/zh/hans/index.ts +2 -0
  74. package/src/locales/zh/hans/parsers/ZHHansAgoFormatParser.ts +87 -0
  75. package/src/locales/zh/hant/index.ts +2 -0
  76. package/src/locales/zh/hant/parsers/ZHHantAgoFormatParser.ts +87 -0
  77. package/src/results.ts +40 -9
  78. package/test/calculation_duration.test.ts +0 -165
  79. package/test/calculation_weekdays.test.ts +0 -133
  80. package/test/de/de_casual.test.ts +0 -322
  81. package/test/de/de_dash.test.ts +0 -32
  82. package/test/de/de_month_name_little_endian.test.ts +0 -273
  83. package/test/de/de_time_exp.test.ts +0 -223
  84. package/test/de/de_time_units_casual_relative.test.ts +0 -120
  85. package/test/de/de_time_units_within.test.ts +0 -119
  86. package/test/de/de_weekday.test.ts +0 -158
  87. package/test/de/de_year.test.ts +0 -147
  88. package/test/debugging.test.ts +0 -17
  89. package/test/en/en.test.ts +0 -191
  90. package/test/en/en_casual.test.ts +0 -425
  91. package/test/en/en_inter_std.test.ts +0 -118
  92. package/test/en/en_merging_relative_dates.test.ts +0 -50
  93. package/test/en/en_month.test.ts +0 -295
  94. package/test/en/en_month_name_little_endian.test.ts +0 -448
  95. package/test/en/en_month_name_middle_endian.test.ts +0 -386
  96. package/test/en/en_performance.test.ts +0 -26
  97. package/test/en/en_relative.test.ts +0 -393
  98. package/test/en/en_slash.test.ts +0 -284
  99. package/test/en/en_time_exp.test.ts +0 -535
  100. package/test/en/en_time_units_ago.test.ts +0 -357
  101. package/test/en/en_time_units_casual_relative.test.ts +0 -186
  102. package/test/en/en_time_units_later.test.ts +0 -361
  103. package/test/en/en_time_units_within.test.ts +0 -417
  104. package/test/en/en_timezone_exp.test.ts +0 -410
  105. package/test/en/en_weekday.test.ts +0 -573
  106. package/test/en/en_year.test.ts +0 -138
  107. package/test/en/en_year_month_day.test.ts +0 -101
  108. package/test/en/negative_cases.test.ts +0 -99
  109. package/test/es/es_casual.test.ts +0 -175
  110. package/test/es/es_month_name_little_endian.test.ts +0 -217
  111. package/test/es/es_slash.test.ts +0 -26
  112. package/test/es/es_time_exp.test.ts +0 -175
  113. package/test/es/es_time_units_within.test.ts +0 -119
  114. package/test/fi/fi_casual.test.ts +0 -85
  115. package/test/fi/fi_casual_time.test.ts +0 -56
  116. package/test/fi/fi_month_name_little_endian.test.ts +0 -50
  117. package/test/fi/fi_time_exp.test.ts +0 -39
  118. package/test/fi/fi_time_units_ago.test.ts +0 -93
  119. package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
  120. package/test/fi/fi_time_units_within.test.ts +0 -74
  121. package/test/fi/fi_weekday.test.ts +0 -90
  122. package/test/fr/fr_casual.test.ts +0 -300
  123. package/test/fr/fr_little_endian.test.ts +0 -320
  124. package/test/fr/fr_slash.test.ts +0 -49
  125. package/test/fr/fr_time_exp.test.ts +0 -588
  126. package/test/fr/fr_time_units_ago.test.ts +0 -103
  127. package/test/fr/fr_time_units_casual_relative.test.ts +0 -108
  128. package/test/fr/fr_time_units_within.test.ts +0 -129
  129. package/test/fr/fr_weekday.test.ts +0 -130
  130. package/test/it/it_casual.test.ts +0 -44
  131. package/test/it/it_month_name_little_endian.test.ts +0 -28
  132. package/test/it/it_month_name_middle_endian.test.ts +0 -39
  133. package/test/it/it_time_exp.test.ts +0 -84
  134. package/test/it/it_weekday.test.ts +0 -37
  135. package/test/it/it_year_month_day.test.ts +0 -41
  136. package/test/ja/ja_casual.test.ts +0 -73
  137. package/test/ja/ja_slash_date_format.test.ts +0 -60
  138. package/test/ja/ja_standard.test.ts +0 -235
  139. package/test/ja/ja_time_exp.test.ts +0 -305
  140. package/test/ja/ja_weekday.test.ts +0 -183
  141. package/test/nl/nl_casual.test.ts +0 -408
  142. package/test/nl/nl_month.test.ts +0 -205
  143. package/test/nl/nl_month_name_little_endian.test.ts +0 -358
  144. package/test/nl/nl_relative.test.ts +0 -242
  145. package/test/nl/nl_slash.test.ts +0 -206
  146. package/test/nl/nl_time_exp.test.ts +0 -79
  147. package/test/nl/nl_time_units_ago.test.ts +0 -243
  148. package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
  149. package/test/nl/nl_time_units_later.test.ts +0 -250
  150. package/test/nl/nl_time_units_within.test.ts +0 -225
  151. package/test/nl/nl_weekday.test.ts +0 -216
  152. package/test/pt/pt_casual.test.ts +0 -175
  153. package/test/pt/pt_month_name_little_endian.test.ts +0 -217
  154. package/test/pt/pt_slash.test.ts +0 -26
  155. package/test/pt/pt_time_exp.test.ts +0 -175
  156. package/test/result.test.ts +0 -283
  157. package/test/ru/ru_casual.test.ts +0 -159
  158. package/test/ru/ru_month.test.ts +0 -70
  159. package/test/ru/ru_month_name_little_endian.test.ts +0 -145
  160. package/test/ru/ru_relative.test.ts +0 -107
  161. package/test/ru/ru_time_exp.test.ts +0 -111
  162. package/test/ru/ru_time_units_ago.test.ts +0 -48
  163. package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
  164. package/test/ru/ru_time_units_within.test.ts +0 -16
  165. package/test/ru/ru_weekday.test.ts +0 -52
  166. package/test/sv/sv_casual.test.ts +0 -87
  167. package/test/sv/sv_month_name_little_endian.test.ts +0 -48
  168. package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
  169. package/test/sv/sv_weekday.test.ts +0 -68
  170. package/test/system.test.ts +0 -247
  171. package/test/system_timezone.test.ts +0 -284
  172. package/test/test_util.ts +0 -135
  173. package/test/uk/uk_casual.test.ts +0 -153
  174. package/test/uk/uk_month.test.ts +0 -70
  175. package/test/uk/uk_month_name_little_endian.test.ts +0 -148
  176. package/test/uk/uk_relative.test.ts +0 -107
  177. package/test/uk/uk_time_exp.test.ts +0 -111
  178. package/test/uk/uk_time_units_ago.test.ts +0 -48
  179. package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
  180. package/test/uk/uk_time_units_within.test.ts +0 -16
  181. package/test/uk/uk_weekday.test.ts +0 -52
  182. package/test/vi/vi_casual.test.ts +0 -84
  183. package/test/vi/vi_casual_time.test.ts +0 -77
  184. package/test/vi/vi_date_range.test.ts +0 -61
  185. package/test/vi/vi_forward_date.test.ts +0 -45
  186. package/test/vi/vi_month_year.test.ts +0 -40
  187. package/test/vi/vi_negative_cases.test.ts +0 -60
  188. package/test/vi/vi_slash.test.ts +0 -36
  189. package/test/vi/vi_standard.test.ts +0 -86
  190. package/test/vi/vi_strict.test.ts +0 -67
  191. package/test/vi/vi_time_exp.test.ts +0 -99
  192. package/test/vi/vi_time_units_ago.test.ts +0 -56
  193. package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
  194. package/test/vi/vi_time_units_later.test.ts +0 -43
  195. package/test/vi/vi_time_units_within.test.ts +0 -24
  196. package/test/vi/vi_weekday.test.ts +0 -77
  197. package/test/vi/vi_year.test.ts +0 -42
  198. package/test/zh/hans/zh_hans_casual.test.ts +0 -242
  199. package/test/zh/hans/zh_hans_date.test.ts +0 -116
  200. package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
  201. package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
  202. package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
  203. package/test/zh/hant/zh_hant_casual.test.ts +0 -260
  204. package/test/zh/hant/zh_hant_date.test.ts +0 -116
  205. package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
  206. package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
  207. package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
  208. package/test/zh/zh.test.ts +0 -36
  209. package/tsconfig.build.esm.json +0 -8
  210. package/tsconfig.build.json +0 -10
  211. package/tsconfig.json +0 -29
@@ -1,143 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult } from "../test_util";
3
- import SVTimeUnitCasualRelativeFormatParser from "../../src/locales/sv/parsers/SVTimeUnitCasualRelativeFormatParser";
4
-
5
- test("Test - Positive time units", () => {
6
- testSingleCase(chrono.sv, "nästa 2 veckor", new Date(2016, 10 - 1, 1, 12), (result, text) => {
7
- expect(result.text).toBe(text);
8
- expect(result.start.get("year")).toBe(2016);
9
- expect(result.start.get("month")).toBe(10);
10
- expect(result.start.get("day")).toBe(15);
11
- });
12
-
13
- testSingleCase(chrono.sv, "nästa 2 dagar", new Date(2016, 10 - 1, 1, 12), (result, text) => {
14
- expect(result.text).toBe(text);
15
- expect(result.start.get("year")).toBe(2016);
16
- expect(result.start.get("month")).toBe(10);
17
- expect(result.start.get("day")).toBe(3);
18
- expect(result.start.get("hour")).toBe(12);
19
- });
20
-
21
- testSingleCase(chrono.sv, "nästa två år", new Date(2016, 10 - 1, 1, 12), (result, text) => {
22
- expect(result.text).toBe(text);
23
- expect(result.start.get("year")).toBe(2018);
24
- expect(result.start.get("month")).toBe(10);
25
- expect(result.start.get("day")).toBe(1);
26
- expect(result.start.get("hour")).toBe(12);
27
- });
28
-
29
- testSingleCase(chrono.sv, "nästa 2 veckor 3 dagar", new Date(2016, 10 - 1, 1, 12), (result, text) => {
30
- expect(result.text).toBe(text);
31
- expect(result.start.get("year")).toBe(2016);
32
- expect(result.start.get("month")).toBe(10);
33
- expect(result.start.get("day")).toBe(18);
34
- expect(result.start.get("hour")).toBe(12);
35
- });
36
-
37
- testSingleCase(chrono.sv, "efter ett år", new Date(2016, 10 - 1, 1, 12), (result, text) => {
38
- expect(result.text).toBe(text);
39
- expect(result.start.get("year")).toBe(2017);
40
- expect(result.start.get("month")).toBe(10);
41
- expect(result.start.get("day")).toBe(1);
42
- expect(result.start.get("hour")).toBe(12);
43
- });
44
-
45
- testSingleCase(chrono.sv, "efter en timme", new Date(2016, 10 - 1, 1, 15), (result, text) => {
46
- expect(result.text).toBe(text);
47
- expect(result.start.get("year")).toBe(2016);
48
- expect(result.start.get("month")).toBe(10);
49
- expect(result.start.get("day")).toBe(1);
50
- expect(result.start.get("hour")).toBe(16);
51
- });
52
- });
53
-
54
- test("Test - Negative time units", () => {
55
- testSingleCase(chrono.sv, "förra 2 veckor", new Date(2016, 10 - 1, 1, 12), (result, text) => {
56
- expect(result.text).toBe(text);
57
- expect(result.start.get("year")).toBe(2016);
58
- expect(result.start.get("month")).toBe(9);
59
- expect(result.start.get("day")).toBe(17);
60
- expect(result.start.get("hour")).toBe(12);
61
- });
62
-
63
- testSingleCase(chrono.sv, "förra två veckor", new Date(2016, 10 - 1, 1, 12), (result, text) => {
64
- expect(result.text).toBe(text);
65
- expect(result.start.get("year")).toBe(2016);
66
- expect(result.start.get("month")).toBe(9);
67
- expect(result.start.get("day")).toBe(17);
68
- expect(result.start.get("hour")).toBe(12);
69
- });
70
-
71
- testSingleCase(chrono.sv, "passerade 2 dagar", new Date(2016, 10 - 1, 1, 12), (result, text) => {
72
- expect(result.text).toBe(text);
73
- expect(result.start.get("year")).toBe(2016);
74
- expect(result.start.get("month")).toBe(9);
75
- expect(result.start.get("day")).toBe(29);
76
- expect(result.start.get("hour")).toBe(12);
77
- });
78
-
79
- testSingleCase(chrono.sv, "+2 månader, 5 dagar", new Date(2016, 10 - 1, 1, 12), (result, text) => {
80
- expect(result.text).toBe(text);
81
- expect(result.start.get("year")).toBe(2016);
82
- expect(result.start.get("month")).toBe(12);
83
- expect(result.start.get("day")).toBe(6);
84
- expect(result.start.get("hour")).toBe(12);
85
- });
86
- });
87
-
88
- test("Test - Plus '+' sign", () => {
89
- testSingleCase(chrono.sv.casual, "+15 minuter", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
90
- expect(result.text).toBe(text);
91
- expect(result.start.get("hour")).toBe(12);
92
- expect(result.start.get("minute")).toBe(29);
93
-
94
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
95
- });
96
-
97
- testSingleCase(chrono.sv.casual, "+15min", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
98
- expect(result.text).toBe(text);
99
- expect(result.start.get("hour")).toBe(12);
100
- expect(result.start.get("minute")).toBe(29);
101
-
102
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
103
- });
104
-
105
- testSingleCase(chrono.sv.casual, "+1 dag 2 timmar", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
106
- expect(result.text).toBe(text);
107
- expect(result.start.get("day")).toBe(11);
108
- expect(result.start.get("hour")).toBe(14);
109
- expect(result.start.get("minute")).toBe(14);
110
-
111
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 11, 14, 14));
112
- });
113
-
114
- testSingleCase(chrono.sv.casual, "+1min", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
115
- expect(result.text).toBe(text);
116
- expect(result.start.get("hour")).toBe(12);
117
- expect(result.start.get("minute")).toBe(15);
118
-
119
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 15));
120
- });
121
- });
122
-
123
- test("Test - Minus '-' sign", () => {
124
- testSingleCase(chrono.sv.casual, "-3år", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
125
- expect(result.text).toBe(text);
126
- expect(result.start.get("year")).toBe(2012);
127
- expect(result.start.get("month")).toBe(7);
128
- expect(result.start.get("day")).toBe(10);
129
- expect(result.start.get("hour")).toBe(12);
130
- expect(result.start.get("minute")).toBe(14);
131
-
132
- expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 14));
133
- });
134
-
135
- testSingleCase(chrono.sv, "-2tim5min", new Date(2016, 10 - 1, 1, 12), (result, text) => {
136
- expect(result.text).toBe(text);
137
- expect(result.start.get("year")).toBe(2016);
138
- expect(result.start.get("month")).toBe(10);
139
- expect(result.start.get("day")).toBe(1);
140
- expect(result.start.get("hour")).toBe(9);
141
- expect(result.start.get("minute")).toBe(55);
142
- });
143
- });
@@ -1,68 +0,0 @@
1
- import * as chrono from "../../src/locales/sv";
2
- import { testSingleCase } from "../test_util";
3
-
4
- test("Test - Single Expression", function () {
5
- testSingleCase(chrono, "måndag", new Date(2012, 7, 9), (result) => {
6
- expect(result.index).toBe(0);
7
- expect(result.text).toBe("måndag");
8
-
9
- expect(result.start).not.toBeNull();
10
- expect(result.start.get("year")).toBe(2012);
11
- expect(result.start.get("month")).toBe(8);
12
- expect(result.start.get("day")).toBe(6);
13
- expect(result.start.get("weekday")).toBe(1);
14
- });
15
-
16
- testSingleCase(chrono, "på måndag", new Date(2012, 7, 9), (result) => {
17
- expect(result.index).toBe(0);
18
- expect(result.text).toBe("på måndag");
19
-
20
- expect(result.start).not.toBeNull();
21
- expect(result.start.get("year")).toBe(2012);
22
- expect(result.start.get("month")).toBe(8);
23
- expect(result.start.get("day")).toBe(6);
24
- expect(result.start.get("weekday")).toBe(1);
25
- });
26
- });
27
-
28
- test("Test - Next/Last Week Expression", function () {
29
- testSingleCase(chrono, "nästa måndag", new Date(2012, 7, 9), (result) => {
30
- expect(result.index).toBe(0);
31
- expect(result.text).toBe("nästa måndag");
32
-
33
- expect(result.start).not.toBeNull();
34
- expect(result.start.get("year")).toBe(2012);
35
- expect(result.start.get("month")).toBe(8);
36
- expect(result.start.get("day")).toBe(13);
37
- expect(result.start.get("weekday")).toBe(1);
38
- });
39
-
40
- testSingleCase(chrono, "förra måndag", new Date(2012, 7, 9), (result) => {
41
- expect(result.index).toBe(0);
42
- expect(result.text).toBe("förra måndag");
43
-
44
- expect(result.start).not.toBeNull();
45
- expect(result.start.get("year")).toBe(2012);
46
- expect(result.start.get("month")).toBe(8);
47
- expect(result.start.get("day")).toBe(6);
48
- expect(result.start.get("weekday")).toBe(1);
49
- });
50
- });
51
-
52
- test("Test - Weekday variations", function () {
53
- testSingleCase(chrono, "söndag", new Date(2012, 7, 9), (result) => {
54
- expect(result.start.get("weekday")).toBe(0);
55
- });
56
-
57
- testSingleCase(chrono, "tisdag", new Date(2012, 7, 9), (result) => {
58
- expect(result.start.get("weekday")).toBe(2);
59
- });
60
-
61
- testSingleCase(chrono, "fredag", new Date(2012, 7, 9), (result) => {
62
- expect(result.start.get("weekday")).toBe(5);
63
- });
64
-
65
- testSingleCase(chrono, "lördag", new Date(2012, 7, 9), (result) => {
66
- expect(result.start.get("weekday")).toBe(6);
67
- });
68
- });
@@ -1,247 +0,0 @@
1
- import * as chrono from "../src/";
2
- import { testSingleCase, testUnexpectedResult } from "./test_util";
3
- import { Meridiem } from "../src";
4
- import UnlikelyFormatFilter from "../src/common/refiners/UnlikelyFormatFilter";
5
- import SlashDateFormatParser from "../src/common/parsers/SlashDateFormatParser";
6
- import ENWeekdayParser from "../src/locales/en/parsers/ENWeekdayParser";
7
- import ENTimeUnitCasualRelativeFormatParser from "../src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser";
8
- import { ParsingComponents } from "../src/";
9
-
10
- //-------------------------------------
11
-
12
- test("Test - Load modules", () => {
13
- expect(chrono).toBeDefined();
14
-
15
- expect(chrono.Chrono).toBeDefined();
16
-
17
- expect(chrono.parse).toBeDefined();
18
-
19
- expect(chrono.parseDate).toBeDefined();
20
-
21
- expect(chrono.casual).toBeDefined();
22
-
23
- expect(chrono.strict).toBeDefined();
24
- });
25
-
26
- test("Test - Basic parse date functions", function () {
27
- expect(chrono.parseDate("7:00PM July 5th, 2020")).toStrictEqual(new Date(2020, 7 - 1, 5, 19));
28
-
29
- expect(chrono.en.parseDate("7:00PM July 5th, 2020")).toStrictEqual(new Date(2020, 7 - 1, 5, 19));
30
-
31
- expect(chrono.strict.parseDate("7:00PM July 5th, 2020")).toStrictEqual(new Date(2020, 7 - 1, 5, 19));
32
-
33
- expect(chrono.casual.parseDate("7:00PM July 5th, 2020")).toStrictEqual(new Date(2020, 7 - 1, 5, 19));
34
- });
35
-
36
- test("Test - Add custom parser", () => {
37
- const customParser = {
38
- pattern: () => {
39
- return /(\d{1,2})(st|nd|rd|th)/i;
40
- },
41
- extract: (context, match) => {
42
- expect(match[0]).toBe("25th");
43
- expect(context.refDate).toBeTruthy();
44
-
45
- return {
46
- day: parseInt(match[1]),
47
- };
48
- },
49
- };
50
-
51
- const custom = new chrono.Chrono();
52
- custom.parsers.push(customParser);
53
- testSingleCase(custom, "meeting on 25th", new Date(2017, 11 - 1, 19), (result) => {
54
- expect(result.text).toBe("25th");
55
- expect(result.start.get("month")).toBe(11);
56
- expect(result.start.get("day")).toBe(25);
57
- });
58
- });
59
-
60
- test("Test - Add custom parser example", () => {
61
- const custom = chrono.casual.clone();
62
- custom.parsers.push({
63
- pattern: () => {
64
- return /\bChristmas\b/i;
65
- },
66
- extract: () => {
67
- return {
68
- day: 25,
69
- month: 12,
70
- };
71
- },
72
- });
73
-
74
- testSingleCase(custom, "I'll arrive at 2.30AM on Christmas", (result) => {
75
- expect(result.text).toBe("at 2.30AM on Christmas");
76
- expect(result.start.get("month")).toBe(12);
77
- expect(result.start.get("day")).toBe(25);
78
- expect(result.start.get("hour")).toBe(2);
79
- expect(result.start.get("minute")).toBe(30);
80
- });
81
-
82
- testSingleCase(custom, "I'll arrive at Christmas night", (result) => {
83
- expect(result.text).toBe("Christmas night");
84
- expect(result.start.get("month")).toBe(12);
85
- expect(result.start.get("day")).toBe(25);
86
- expect(result.start.get("meridiem")).toBe(Meridiem.PM);
87
- expect(result.start.get("meridiem")).toBe(1);
88
- });
89
-
90
- testSingleCase(custom, "Doing something tomorrow", (result) => {
91
- expect(result.text).toBe("tomorrow");
92
- });
93
- });
94
-
95
- test("Test - Add custom refiner example", () => {
96
- const custom = chrono.casual.clone();
97
- custom.refiners.push({
98
- refine: (context, results) => {
99
- // If there is no AM/PM (meridiem) specified,
100
- // let all time between 1:00 - 4:00 be PM (13.00 - 16.00)
101
- results.forEach((result) => {
102
- if (
103
- !result.start.isCertain("meridiem") &&
104
- result.start.get("hour") >= 1 &&
105
- result.start.get("hour") < 4
106
- ) {
107
- result.start.assign("meridiem", Meridiem.PM);
108
- result.start.assign("hour", result.start.get("hour") + 12);
109
- }
110
- });
111
- return results;
112
- },
113
- });
114
-
115
- testSingleCase(custom, "This is at 2.30", (result) => {
116
- expect(result.text).toBe("at 2.30");
117
- expect(result.start.get("hour")).toBe(14);
118
- expect(result.start.get("minute")).toBe(30);
119
- });
120
-
121
- testSingleCase(custom, "This is at 2.30 AM", (result) => {
122
- expect(result.text).toBe("at 2.30 AM");
123
- expect(result.start.get("hour")).toBe(2);
124
- expect(result.start.get("minute")).toBe(30);
125
- });
126
- });
127
-
128
- test("Test - Add custom parser with tags example", () => {
129
- const custom = chrono.casual.clone();
130
- custom.parsers.push({
131
- pattern: () => {
132
- return /\bChristmas\b/i;
133
- },
134
- extract: (context) => {
135
- return context
136
- .createParsingComponents({
137
- day: 25,
138
- month: 12,
139
- })
140
- .addTag("parser/ChristmasDayParser");
141
- },
142
- });
143
-
144
- testSingleCase(custom, "Doing something tomorrow", (result) => {
145
- expect(result.text).toBe("tomorrow");
146
- expect(result.tags()).toContain("parser/ENCasualDateParser");
147
- });
148
-
149
- testSingleCase(custom, "I'll arrive at 2.30AM on Christmas", (result) => {
150
- expect(result.text).toBe("at 2.30AM on Christmas");
151
- expect(result.tags()).toContain("parser/ChristmasDayParser");
152
- expect(result.tags()).toContain("parser/ENTimeExpressionParser");
153
- });
154
-
155
- testSingleCase(custom, "I'll arrive at Christmas night", (result) => {
156
- expect(result.text).toBe("Christmas night");
157
- expect(result.tags()).toContain("parser/ChristmasDayParser");
158
- expect(result.tags()).toContain("parser/ENCasualTimeParser");
159
- });
160
-
161
- // TODO: Check if the merge date range combine tags correctly
162
- });
163
-
164
- test("Test - Remove a parser example", () => {
165
- const custom = chrono.en.strict.clone();
166
- custom.parsers = custom.parsers.filter((r) => !(r instanceof SlashDateFormatParser));
167
- custom.parsers.push(new SlashDateFormatParser(true));
168
-
169
- testSingleCase(custom, "6/10/2018", (result) => {
170
- expect(result.text).toBe("6/10/2018");
171
- expect(result.start.get("year")).toBe(2018);
172
- expect(result.start.get("month")).toBe(10);
173
- expect(result.start.get("day")).toBe(6);
174
- });
175
- });
176
-
177
- test("Test - Remove a refiner example", () => {
178
- const custom = chrono.casual.clone();
179
- custom.refiners = custom.refiners.filter((r) => !(r instanceof UnlikelyFormatFilter));
180
-
181
- testSingleCase(custom, "This is at 2.30", (result) => {
182
- expect(result.text).toBe("at 2.30");
183
- expect(result.start.get("hour")).toBe(2);
184
- expect(result.start.get("minute")).toBe(30);
185
- });
186
- });
187
-
188
- test("Test - Replace a parser example", () => {
189
- const custom = chrono.en.casual.clone();
190
- testSingleCase(custom, "next 5m", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
191
- expect(result.start.get("hour")).toBe(14);
192
- expect(result.start.get("minute")).toBe(57);
193
- });
194
- testSingleCase(custom, "next 5 minutes", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
195
- expect(result.start.get("hour")).toBe(14);
196
- expect(result.start.get("minute")).toBe(57);
197
- });
198
-
199
- const index = custom.parsers.findIndex((r) => r instanceof ENTimeUnitCasualRelativeFormatParser);
200
- custom.parsers[index] = new ENTimeUnitCasualRelativeFormatParser(false);
201
- testUnexpectedResult(custom, "next 5m");
202
- testSingleCase(custom, "next 5 minutes", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
203
- expect(result.start.get("hour")).toBe(14);
204
- expect(result.start.get("minute")).toBe(57);
205
- });
206
- });
207
-
208
- test("Test - Compare with native js", () => {
209
- const testByCompareWithNative = (text) => {
210
- const expectedDate = new Date(text);
211
- testSingleCase(chrono, text, (result) => {
212
- expect(result.text).toBe(text);
213
- expect(result).toBeDate(expectedDate);
214
- });
215
- };
216
-
217
- testByCompareWithNative("1994-11-05T13:15:30Z");
218
-
219
- testByCompareWithNative("1994-02-28T08:15:30-05:30");
220
-
221
- testByCompareWithNative("1994-11-05T08:15:30-05:30");
222
-
223
- testByCompareWithNative("1994-11-05T08:15:30+11:30");
224
-
225
- testByCompareWithNative("2014-11-30T08:15:30-05:30");
226
-
227
- testByCompareWithNative("Sat, 21 Feb 2015 11:50:48 -0500");
228
-
229
- testByCompareWithNative("22 Feb 2015 04:12:00 -0000");
230
-
231
- // Chrono's timezone calculation uses `Date.prototype.getTimezoneOffset()` which returns precision in minutes.
232
- // Historical Local Mean Time (LMT) often includes seconds (e.g., Shanghai 1900 is +08:05:43).
233
- // testByCompareWithNative("1900-01-01T00:00:00-01:00");
234
- // testByCompareWithNative("1900-01-01T00:00:00-00:00");
235
-
236
- testByCompareWithNative("9999-12-31T23:59:00-00:00");
237
-
238
- testByCompareWithNative("09/25/2017 10:31:50.522 PM");
239
-
240
- testByCompareWithNative("Sat Nov 05 1994 22:45:30 GMT+0900 (JST)");
241
-
242
- testByCompareWithNative("Fri, 31 Mar 2000 07:00:00 UTC");
243
-
244
- testByCompareWithNative("2014-12-14T18:22:14.759Z");
245
-
246
- testByCompareWithNative("2024-01-01T00:00");
247
- });