chrono-node
Version:
A natural language date parser in Javascript
35 lines • 1.59 kB
JavaScript
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
import * as references from "../../../common/casualReferences.js";
const PATTERN = /(sekarang|saat\s+ini|hari\s+ini|kemarin\s+lusa|kemarin|besok\s+lusa|besok|lusa|nanti\s+malam|malam\s+ini|tadi\s+malam|semalam)(?=\W|$)/i;
export default class IDCasualDateParser extends AbstractParserWithWordBoundaryChecking {
innerPattern() {
return PATTERN;
}
innerExtract(context, match) {
const lowerText = match[1].toLowerCase().replace(/\s+/g, " ");
switch (lowerText) {
case "sekarang":
case "saat ini":
return references.now(context.reference);
case "hari ini":
return references.today(context.reference);
case "kemarin":
return references.yesterday(context.reference);
case "kemarin lusa":
return references.theDayBefore(context.reference, 2);
case "besok":
return references.tomorrow(context.reference);
case "lusa":
case "besok lusa":
return references.theDayAfter(context.reference, 2);
case "nanti malam":
case "malam ini":
return references.tonight(context.reference);
case "tadi malam":
case "semalam":
return references.lastNight(context.reference);
}
return context.createParsingComponents();
}
}
//# sourceMappingURL=IDCasualDateParser.js.map