UNPKG

chrono-node

Version:

A natural language date parser in Javascript

34 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../constants"); const results_1 = require("../../../results"); const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary"); const PATTERN_WITH_OPTIONAL_PREFIX = new RegExp(`(?:(?:entro|tra|fra|in|per)\\s*)?` + `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); const PATTERN_WITH_PREFIX = new RegExp(`(?:entro|tra|fra|in|per)\\s*` + `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); const PATTERN_WITH_PREFIX_STRICT = new RegExp(`(?:entro|tra|fra|in|per)\\s*` + `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${constants_1.TIME_UNITS_NO_ABBR_PATTERN})(?=\\W|$)`, "i"); class ITTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { constructor(strictMode) { super(); this.strictMode = strictMode; } innerPattern(context) { if (this.strictMode) { return PATTERN_WITH_PREFIX_STRICT; } return context.option.forwardDate ? PATTERN_WITH_OPTIONAL_PREFIX : PATTERN_WITH_PREFIX; } innerExtract(context, match) { if (match[0].match(/^per\s*(il|la|l')\s*\w+/)) { return null; } const timeUnits = (0, constants_1.parseDuration)(match[1]); if (!timeUnits) { return null; } return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } exports.default = ITTimeUnitWithinFormatParser; //# sourceMappingURL=ITTimeUnitWithinFormatParser.js.map