Skip to content

Commit fab8f51

Browse files
author
Wanasit Tanakitrungruang
committedMar 21, 2021
Fix: small performance improvement through caching
1 parent ac08a8c commit fab8f51

File tree

5 files changed

+11
-5
lines changed

5 files changed

+11
-5
lines changed
 

‎benchmark/benchmark.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const chrono = require("..");
22
const b = require("benny");
33

44
b.suite(
5-
"Example",
5+
"Basic parsing benchmark",
66

77
b.add("Parsing empty string", () => {
88
chrono.parse("");

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
},
4444
"scripts": {
4545
"build": "tsc -p tsconfig.build.json",
46-
"benchmark": "node ./benchmark/benchmark.js",
46+
"benchmark": "npm run build && node ./benchmark/benchmark.js",
4747
"document": "typedoc",
4848
"prepare": "npm run build",
4949
"eslint": "eslint src test",

‎src/locales/en/parsers/ENCasualDateParser.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/
55
import { assignSimilarDate } from "../../../utils/dayjs";
66
import * as references from "../../../common/casualReferences";
77

8+
const PATTERN = /(now|today|tonight|tomorrow|tmr|yesterday|last\s*night)(?=\W|$)/i;
9+
810
export default class ENCasualDateParser extends AbstractParserWithWordBoundaryChecking {
911
innerPattern(context: ParsingContext): RegExp {
10-
return /(now|today|tonight|tomorrow|tmr|yesterday|last\s*night)(?=\W|$)/i;
12+
return PATTERN;
1113
}
1214

1315
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult {

‎src/locales/en/parsers/ENCasualTimeParser.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/
44
import dayjs from "dayjs";
55
import { assignTheNextDay } from "../../../utils/dayjs";
66

7+
const PATTERN = /(?:this)?\s*(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i;
8+
79
export default class ENCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
810
innerPattern() {
9-
return /(?:this)?\s*(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i;
11+
return PATTERN;
1012
}
1113

1214
innerExtract(context: ParsingContext, match: RegExpMatchArray) {

‎src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import { ParsingComponents } from "../../../results";
44
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
55
import { reverseTimeUnits } from "../../../utils/timeunits";
66

7+
const PATTERN = new RegExp(`(this|last|past|next|\\+|-)\\s*(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
8+
79
export default class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
810
innerPattern(): RegExp {
9-
return new RegExp(`(this|last|past|next|\\+|-)\\s*(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
11+
return PATTERN;
1012
}
1113

1214
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {

0 commit comments

Comments
 (0)
Please sign in to comment.