Skip to content

Commit d8cb5ed

Browse files
authored
Merge pull request #617 from wanasit/remove-deprecated-timeunits
Removed the deprecated `TimeUnits` type and use `Duration` instead
2 parents 69a785a + f6c443f commit d8cb5ed

35 files changed

+77
-87
lines changed

src/locales/de/constants.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { OpUnitType, QUnitType } from "dayjs";
22
import { matchAnyPattern, repeatedTimeunitPattern } from "../../utils/pattern";
33
import { findMostLikelyADYear } from "../../calculation/years";
4-
import { TimeUnits } from "../../utils/timeunits";
4+
import { Duration } from "../../calculation/duration";
55

66
export const WEEKDAY_DICTIONARY: { [word: string]: number } = {
77
"sonntag": 0,
@@ -174,7 +174,7 @@ const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i");
174174

175175
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern("", SINGLE_TIME_UNIT_PATTERN);
176176

177-
export function parseTimeUnits(timeunitText): TimeUnits {
177+
export function parseDuration(timeunitText): Duration {
178178
const fragments = {};
179179
let remainingText = timeunitText;
180180
let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
@@ -183,7 +183,7 @@ export function parseTimeUnits(timeunitText): TimeUnits {
183183
remainingText = remainingText.substring(match[0].length);
184184
match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
185185
}
186-
return fragments;
186+
return fragments as Duration;
187187
}
188188

189189
function collectDateTimeFragment(fragments, match) {

src/locales/de/parsers/DETimeUnitWithinFormatParser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TIME_UNITS_PATTERN, parseTimeUnits } from "../constants";
1+
import { TIME_UNITS_PATTERN, parseDuration } from "../constants";
22
import { ParsingContext } from "../../../chrono";
33
import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
@@ -9,7 +9,7 @@ export default class DETimeUnitWithinFormatParser extends AbstractParserWithWord
99
}
1010

1111
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
12-
const timeUnits = parseTimeUnits(match[1]);
12+
const timeUnits = parseDuration(match[1]);
1313
return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
1414
}
1515
}

src/locales/en/constants.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { OpUnitType, QUnitType } from "dayjs";
22
import { matchAnyPattern, repeatedTimeunitPattern } from "../../utils/pattern";
33
import { findMostLikelyADYear } from "../../calculation/years";
4-
import { TimeUnits } from "../../utils/timeunits";
4+
import { Duration } from "../../calculation/duration";
55
import { Weekday } from "../../types";
66

77
export const WEEKDAY_DICTIONARY: { [word: string]: Weekday } = {
@@ -277,7 +277,7 @@ export const TIME_UNITS_NO_ABBR_PATTERN = repeatedTimeunitPattern(
277277
TIME_UNIT_CONNECTOR_PATTERN
278278
);
279279

280-
export function parseTimeUnits(timeunitText): null | TimeUnits {
280+
export function parseDuration(timeunitText): null | Duration {
281281
const fragments = {};
282282
let remainingText = timeunitText;
283283
let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
@@ -289,7 +289,7 @@ export function parseTimeUnits(timeunitText): null | TimeUnits {
289289
if (Object.keys(fragments).length == 0) {
290290
return null;
291291
}
292-
return fragments;
292+
return fragments as Duration;
293293
}
294294

295295
function collectDateTimeFragment(fragments, match) {

src/locales/en/parsers/ENTimeUnitAgoFormatParser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParsingContext } from "../../../chrono";
2-
import { parseTimeUnits, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants";
2+
import { parseDuration, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants";
33
import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
55
import { reverseDuration } from "../../../calculation/duration";
@@ -17,7 +17,7 @@ export default class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBou
1717
}
1818

1919
innerExtract(context: ParsingContext, match: RegExpMatchArray) {
20-
const duration = parseTimeUnits(match[1]);
20+
const duration = parseDuration(match[1]);
2121
if (!duration) {
2222
return null;
2323
}

src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TIME_UNITS_PATTERN, parseTimeUnits, TIME_UNITS_NO_ABBR_PATTERN } from "../constants";
1+
import { TIME_UNITS_PATTERN, parseDuration, TIME_UNITS_NO_ABBR_PATTERN } from "../constants";
22
import { ParsingContext } from "../../../chrono";
33
import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
@@ -21,7 +21,7 @@ export default class ENTimeUnitCasualRelativeFormatParser extends AbstractParser
2121

2222
innerExtract(context: ParsingContext, match: RegExpMatchArray) {
2323
const prefix = match[1].toLowerCase();
24-
let duration = parseTimeUnits(match[2]);
24+
let duration = parseDuration(match[2]);
2525
if (!duration) {
2626
return null;
2727
}

src/locales/en/parsers/ENTimeUnitLaterFormatParser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParsingContext } from "../../../chrono";
2-
import { parseTimeUnits, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants";
2+
import { parseDuration, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants";
33
import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
55

@@ -21,7 +21,7 @@ export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordB
2121
}
2222

2323
innerExtract(context: ParsingContext, match: RegExpMatchArray) {
24-
const timeUnits = parseTimeUnits(match[GROUP_NUM_TIMEUNITS]);
24+
const timeUnits = parseDuration(match[GROUP_NUM_TIMEUNITS]);
2525
if (!timeUnits) {
2626
return null;
2727
}

src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TIME_UNITS_PATTERN, parseTimeUnits, TIME_UNITS_NO_ABBR_PATTERN } from "../constants";
1+
import { TIME_UNITS_PATTERN, parseDuration, TIME_UNITS_NO_ABBR_PATTERN } from "../constants";
22
import { ParsingContext } from "../../../chrono";
33
import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
@@ -38,15 +38,10 @@ export default class ENTimeUnitWithinFormatParser extends AbstractParserWithWord
3838
if (match[0].match(/^for\s*the\s*\w+/)) {
3939
return null;
4040
}
41-
const timeUnits = parseTimeUnits(match[1]);
41+
const timeUnits = parseDuration(match[1]);
4242
if (!timeUnits) {
4343
return null;
4444
}
45-
context.debug(() => {
46-
console.log(timeUnits);
47-
console.log(ParsingComponents.createRelativeFromReference(context.reference, timeUnits));
48-
});
49-
5045
return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
5146
}
5247
}

src/locales/en/refiners/ENMergeRelativeAfterDateRefiner.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { MergingRefiner } from "../../../common/abstractRefiners";
22
import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../../../results";
3-
import { parseTimeUnits } from "../constants";
3+
import { parseDuration } from "../constants";
44
import { reverseDuration } from "../../../calculation/duration";
55

66
function IsPositiveFollowingReference(result: ParsingResult): boolean {
@@ -26,7 +26,7 @@ export default class ENMergeRelativeAfterDateRefiner extends MergingRefiner {
2626
}
2727

2828
mergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult, context): ParsingResult {
29-
let timeUnits = parseTimeUnits(nextResult.text);
29+
let timeUnits = parseDuration(nextResult.text);
3030
if (IsNegativeFollowingReference(nextResult)) {
3131
timeUnits = reverseDuration(timeUnits);
3232
}

src/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { MergingRefiner } from "../../../common/abstractRefiners";
22
import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../../../results";
3-
import { parseTimeUnits } from "../constants";
3+
import { parseDuration } from "../constants";
44
import { reverseDuration } from "../../../calculation/duration";
55

66
function hasImpliedEarlierReferenceDate(result: ParsingResult): boolean {
@@ -38,7 +38,7 @@ export default class ENMergeRelativeFollowByDateRefiner extends MergingRefiner {
3838
}
3939

4040
mergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult): ParsingResult {
41-
let duration = parseTimeUnits(currentResult.text);
41+
let duration = parseDuration(currentResult.text);
4242
if (hasImpliedEarlierReferenceDate(currentResult)) {
4343
duration = reverseDuration(duration);
4444
}

src/locales/es/constants.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i");
155155

156156
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern("", SINGLE_TIME_UNIT_PATTERN);
157157

158-
export function parseTimeUnits(timeunitText): { [c in OpUnitType | QUnitType]?: number } {
158+
import { Duration } from "../../calculation/duration";
159+
export function parseDuration(timeunitText): Duration {
159160
const fragments = {};
160161
let remainingText = timeunitText;
161162
let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
@@ -164,7 +165,7 @@ export function parseTimeUnits(timeunitText): { [c in OpUnitType | QUnitType]?:
164165
remainingText = remainingText.substring(match[0].length);
165166
match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
166167
}
167-
return fragments as { [c in OpUnitType | QUnitType]?: number };
168+
return fragments as Duration;
168169
}
169170

170171
function collectDateTimeFragment(fragments, match) {

0 commit comments

Comments
 (0)