UNPKG

chrono-node

Version:

A natural language date parser in Javascript

58 lines 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const types_1 = require("../../../types"); const AbstractTimeExpressionParser_1 = require("../../../common/parsers/AbstractTimeExpressionParser"); class ENTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTimeExpressionParser { constructor(strictMode) { super(strictMode); } followingPhase() { return "\\s*(?:\\-|\\–|\\~|\\〜|to|until|through|till|\\?)\\s*"; } primaryPrefix() { return "(?:(?:at|from)\\s*)??"; } primarySuffix() { return "(?:\\s*(?:o\\W*clock|at\\s*night|in\\s*the\\s*(?:morning|afternoon)))?(?!/)(?=\\W|$)"; } extractPrimaryTimeComponents(context, match) { const components = super.extractPrimaryTimeComponents(context, match); if (!components) { return components; } if (match[0].endsWith("night")) { const hour = components.get("hour"); if (hour >= 6 && hour < 12) { components.assign("hour", components.get("hour") + 12); components.assign("meridiem", types_1.Meridiem.PM); } else if (hour < 6) { components.assign("meridiem", types_1.Meridiem.AM); } } if (match[0].endsWith("afternoon")) { components.assign("meridiem", types_1.Meridiem.PM); const hour = components.get("hour"); if (hour >= 0 && hour <= 6) { components.assign("hour", components.get("hour") + 12); } } if (match[0].endsWith("morning")) { components.assign("meridiem", types_1.Meridiem.AM); const hour = components.get("hour"); if (hour < 12) { components.assign("hour", components.get("hour")); } } return components.addTag("parser/ENTimeExpressionParser"); } extractFollowingTimeComponents(context, match, result) { const followingComponents = super.extractFollowingTimeComponents(context, match, result); if (followingComponents) { followingComponents.addTag("parser/ENTimeExpressionParser"); } return followingComponents; } } exports.default = ENTimeExpressionParser; //# sourceMappingURL=ENTimeExpressionParser.js.map