Skip to content

Commit 5ccd52b

Browse files
authored
Merge branch 'master' into test-it-locale-coverage
2 parents 4c210d0 + e118970 commit 5ccd52b

File tree

11 files changed

+170
-145
lines changed

11 files changed

+170
-145
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"preset": "ts-jest"
1616
},
1717
"license": "MIT",
18-
"version": "2.8.4",
18+
"version": "2.9.0",
1919
"directories": {
2020
"source": "./src",
2121
"test": "./test"
@@ -81,9 +81,7 @@
8181
"test": "jest --coverage",
8282
"test:silent": "jest --silent"
8383
},
84-
"dependencies": {
85-
"dayjs": "^1.10.0"
86-
},
84+
"dependencies": {},
8785
"eslintConfig": {
8886
"env": {
8987
"es6": true,

src/common/casualReferences.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,18 @@ export function today(reference: ReferenceWithTimezone): ParsingComponents {
2222
return component;
2323
}
2424

25-
/**
26-
* The previous day. Imply the same time.
27-
*/
2825
export function yesterday(reference: ReferenceWithTimezone): ParsingComponents {
2926
return theDayBefore(reference, 1).addTag("casualReference/yesterday");
3027
}
3128

32-
export function theDayBefore(reference: ReferenceWithTimezone, numDay: number): ParsingComponents {
33-
return theDayAfter(reference, -numDay);
34-
}
35-
36-
/**
37-
* The following day with dayjs.assignTheNextDay()
38-
*/
3929
export function tomorrow(reference: ReferenceWithTimezone): ParsingComponents {
4030
return theDayAfter(reference, 1).addTag("casualReference/tomorrow");
4131
}
4232

33+
export function theDayBefore(reference: ReferenceWithTimezone, numDay: number): ParsingComponents {
34+
return theDayAfter(reference, -numDay);
35+
}
36+
4337
export function theDayAfter(reference: ReferenceWithTimezone, nDays: number): ParsingComponents {
4438
const targetDate = reference.getDateWithAdjustedTimezone();
4539
const component = new ParsingComponents(reference, {});

src/locales/ja/parsers/JPTimeExpressionParser.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ const MINUTE_GROUP = 3;
5151
const SECOND_GROUP = 4;
5252
const AM_PM_HOUR_GROUP_2 = 5;
5353

54-
5554
export default class JPTimeExpressionParser extends AbstractParserWithWordBoundaryChecking {
5655
innerPattern(): RegExp {
5756
return FIRST_REG_PATTERN;
@@ -64,8 +63,13 @@ export default class JPTimeExpressionParser extends AbstractParserWithWordBounda
6463
}
6564

6665
const result = context.createParsingResult(match.index, match[0]);
67-
result.start = createTimeComponents(context,
68-
match[HOUR_GROUP], match[MINUTE_GROUP], match[SECOND_GROUP], match[AM_PM_HOUR_GROUP_1] ?? match[AM_PM_HOUR_GROUP_2]);
66+
result.start = createTimeComponents(
67+
context,
68+
match[HOUR_GROUP],
69+
match[MINUTE_GROUP],
70+
match[SECOND_GROUP],
71+
match[AM_PM_HOUR_GROUP_1] ?? match[AM_PM_HOUR_GROUP_2]
72+
);
6973
if (!result.start) {
7074
match.index += match[0].length; // Skip over potential overlapping pattern
7175
return null;
@@ -82,7 +86,12 @@ export default class JPTimeExpressionParser extends AbstractParserWithWordBounda
8286

8387
result.text = result.text + match[0];
8488
result.end = createTimeComponents(
85-
context, match[HOUR_GROUP], match[MINUTE_GROUP], match[SECOND_GROUP], match[AM_PM_HOUR_GROUP_1] ?? match[AM_PM_HOUR_GROUP_2]);
89+
context,
90+
match[HOUR_GROUP],
91+
match[MINUTE_GROUP],
92+
match[SECOND_GROUP],
93+
match[AM_PM_HOUR_GROUP_1] ?? match[AM_PM_HOUR_GROUP_2]
94+
);
8695
if (!result.end) {
8796
return null;
8897
}
@@ -104,15 +113,13 @@ export default class JPTimeExpressionParser extends AbstractParserWithWordBounda
104113
}
105114
}
106115

107-
108116
function createTimeComponents(
109117
context: ParsingContext,
110118
matchHour: string | null,
111119
matchMinute: string | null,
112120
matchSecond: string | null,
113-
matchAmPm: string | null,
121+
matchAmPm: string | null
114122
): ParsingComponents | null {
115-
116123
let hour = 0;
117124
let meridiem = -1;
118125
let targetComponents = context.createParsingComponents();
@@ -147,7 +154,7 @@ function createTimeComponents(
147154
}
148155

149156
if (matchAmPm) {
150-
if (hour > 12) {
157+
if (hour > 12) {
151158
return null;
152159
}
153160
const AMPMString = matchAmPm;
@@ -162,8 +169,6 @@ function createTimeComponents(
162169

163170
targetComponents.assign("hour", hour);
164171

165-
166-
167172
if (meridiem >= 0) {
168173
targetComponents.assign("meridiem", meridiem);
169174
} else {

src/results.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { Component, ParsedComponents, ParsedResult, ParsingReference, TimezoneAbbrMap } from "./types";
22

3-
import quarterOfYear from "dayjs/plugin/quarterOfYear";
4-
import dayjs, { QUnitType } from "dayjs";
53
import { assignSimilarDate, assignSimilarTime, implySimilarTime } from "./utils/dates";
64
import { toTimezoneOffset } from "./timezone";
75
import { addDuration, Duration, EmptyDuration } from "./calculation/duration";
8-
dayjs.extend(quarterOfYear);
96

107
export class ReferenceWithTimezone {
118
readonly instant: Date;
@@ -256,10 +253,6 @@ export class ParsingComponents implements ParsedComponents {
256253
reference: ${JSON.stringify(this.reference)}]`;
257254
}
258255

259-
dayjs() {
260-
return dayjs(this.dateWithoutTimezoneAdjustment());
261-
}
262-
263256
date(): Date {
264257
const date = this.dateWithoutTimezoneAdjustment();
265258
const timezoneAdjustment = this.reference.getSystemTimezoneAdjustmentMinute(date, this.get("timezoneOffset"));

test/it/it_casual.test.ts

Lines changed: 39 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,43 @@ import * as chrono from "../../src/";
22
import { testSingleCase } from "../test_util";
33

44
test("Test - Single Expression", () => {
5-
testSingleCase(chrono.it.casual, "La scadenza è ora", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6-
expect(result.index).toBe(14);
7-
expect(result.text).toBe("ora");
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(10);
13-
expect(result.start.get("hour")).toBe(8);
14-
expect(result.start.get("minute")).toBe(9);
15-
expect(result.start.get("second")).toBe(10);
16-
expect(result.start.get("millisecond")).toBe(11);
17-
18-
expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
19-
});
20-
21-
// testSingleCase(chrono.it.casual, "La scadenza era ieri", new Date(2012, 7, 10, 12), (result) => {
22-
// expect(result.index).toBe(16);
23-
// expect(result.text).toBe("ieri");
24-
//
25-
// expect(result.start).not.toBeNull();
26-
// expect(result.start.get("year")).toBe(2012);
27-
// expect(result.start.get("month")).toBe(8);
28-
// expect(result.start.get("day")).toBe(9);
29-
//
30-
// expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
31-
// });
32-
33-
testSingleCase(chrono.it.casual, "La scadenza è domani", new Date(2012, 7, 10, 17, 10), (result) => {
34-
expect(result.index).toBe(14);
35-
expect(result.text).toBe("domani");
36-
37-
expect(result.start).not.toBeNull();
38-
expect(result.start.get("year")).toBe(2012);
39-
expect(result.start.get("month")).toBe(8);
40-
expect(result.start.get("day")).toBe(11);
41-
42-
expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
43-
});
44-
5+
testSingleCase(chrono.it.casual, "La scadenza è ora", new Date(2012, 7, 10, 8, 9, 10, 11), (result) => {
6+
expect(result.index).toBe(14);
7+
expect(result.text).toBe("ora");
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(10);
13+
expect(result.start.get("hour")).toBe(8);
14+
expect(result.start.get("minute")).toBe(9);
15+
expect(result.start.get("second")).toBe(10);
16+
expect(result.start.get("millisecond")).toBe(11);
17+
18+
expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
19+
});
20+
21+
testSingleCase(chrono.it.casual, "La scadenza è oggi", new Date(2012, 7, 10, 14, 12), (result) => {
22+
expect(result.index).toBe(14);
23+
expect(result.text).toBe("oggi");
24+
25+
expect(result.start).not.toBeNull();
26+
expect(result.start.get("year")).toBe(2012);
27+
expect(result.start.get("month")).toBe(8);
28+
expect(result.start.get("day")).toBe(10);
29+
30+
expect(result.start).toBeDate(new Date(2012, 7, 10, 14, 12));
31+
});
32+
33+
testSingleCase(chrono.it.casual, "La scadenza è domani", new Date(2012, 7, 10, 17, 10), (result) => {
34+
expect(result.index).toBe(14);
35+
expect(result.text).toBe("domani");
36+
37+
expect(result.start).not.toBeNull();
38+
expect(result.start.get("year")).toBe(2012);
39+
expect(result.start.get("month")).toBe(8);
40+
expect(result.start.get("day")).toBe(11);
41+
42+
expect(result.start).toBeDate(new Date(2012, 7, 11, 17, 10));
43+
});
4544
});

test/it/it_month_name_little_endian.test.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,27 @@ import * as chrono from "../../src/";
22
import { testSingleCase, testUnexpectedResult } from "../test_util";
33

44
test("Test - Single expression", () => {
5-
testSingleCase(chrono.it, "10 Agosto 2012", new Date(2012, 7, 10), (result) => {
6-
expect(result.start).not.toBeNull();
7-
expect(result.start.get("year")).toBe(2012);
8-
expect(result.start.get("month")).toBe(8);
9-
expect(result.start.get("day")).toBe(10);
5+
testSingleCase(chrono.it, "10 Agosto 2012", new Date(2012, 7, 10), (result) => {
6+
expect(result.start).not.toBeNull();
7+
expect(result.start.get("year")).toBe(2012);
8+
expect(result.start.get("month")).toBe(8);
9+
expect(result.start.get("day")).toBe(10);
1010

11-
expect(result.index).toBe(0);
12-
expect(result.text).toBe("10 Agosto 2012");
11+
expect(result.index).toBe(0);
12+
expect(result.text).toBe("10 Agosto 2012");
1313

14-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
15-
});
14+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
15+
});
1616

17-
testSingleCase(chrono.it, "La scadenza è il 10 Agosto", new Date(2012, 7, 10), (result) => {
18-
expect(result.index).toBe(17);
19-
expect(result.text).toBe("10 Agosto");
17+
testSingleCase(chrono.it, "La scadenza è il 10 Agosto", new Date(2012, 7, 10), (result) => {
18+
expect(result.index).toBe(17);
19+
expect(result.text).toBe("10 Agosto");
2020

21-
expect(result.start).not.toBeNull();
22-
expect(result.start.get("year")).toBe(2012);
23-
expect(result.start.get("month")).toBe(8);
24-
expect(result.start.get("day")).toBe(10);
21+
expect(result.start).not.toBeNull();
22+
expect(result.start.get("year")).toBe(2012);
23+
expect(result.start.get("month")).toBe(8);
24+
expect(result.start.get("day")).toBe(10);
2525

26-
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
27-
});
26+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
27+
});
2828
});

test/it/it_weekday.test.ts

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,36 @@ import * as chrono from "../../src/";
22
import { testSingleCase } from "../test_util";
33

44
test("Test - Single Expression", function () {
5-
testSingleCase(chrono.it, "Lunedì", new Date(2012, 7, 9), (result) => {
6-
expect(result.index).toBe(0);
7-
expect(result.text).toBe("Lunedì");
5+
testSingleCase(chrono.it, "Lunedì", new Date(2012, 7, 9), (result) => {
6+
expect(result.index).toBe(0);
7+
expect(result.text).toBe("Lunedì");
88

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-
});
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+
});
1515

16-
testSingleCase(chrono.it, "Giovedì", new Date(2012, 7, 9), (result) => {
17-
expect(result.index).toBe(0);
18-
expect(result.text).toBe("Giovedì");
16+
testSingleCase(chrono.it, "Giovedì", new Date(2012, 7, 9), (result) => {
17+
expect(result.index).toBe(0);
18+
expect(result.text).toBe("Giovedì");
1919

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(9);
24-
expect(result.start.get("weekday")).toBe(4);
25-
});
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(9);
24+
expect(result.start.get("weekday")).toBe(4);
25+
});
2626

27-
testSingleCase(chrono.it, "Domenica", new Date(2012, 7, 9), (result) => {
28-
expect(result.index).toBe(0);
29-
expect(result.text).toBe("Domenica");
27+
testSingleCase(chrono.it, "Domenica", new Date(2012, 7, 9), (result) => {
28+
expect(result.index).toBe(0);
29+
expect(result.text).toBe("Domenica");
3030

31-
expect(result.start).not.toBeNull();
32-
expect(result.start.get("year")).toBe(2012);
33-
expect(result.start.get("month")).toBe(8);
34-
expect(result.start.get("day")).toBe(12);
35-
expect(result.start.get("weekday")).toBe(0);
36-
});
31+
expect(result.start).not.toBeNull();
32+
expect(result.start.get("year")).toBe(2012);
33+
expect(result.start.get("month")).toBe(8);
34+
expect(result.start.get("day")).toBe(12);
35+
expect(result.start.get("weekday")).toBe(0);
36+
});
3737
});

0 commit comments

Comments
 (0)