chrono-node
Version:
A natural language date parser in Javascript
30 lines • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.repeatedTimeunitPattern = repeatedTimeunitPattern;
exports.extractTerms = extractTerms;
exports.matchAnyPattern = matchAnyPattern;
function repeatedTimeunitPattern(prefix, singleTimeunitPattern, connectorPattern = "\\s{0,5},?\\s{0,5}") {
const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:");
return `${prefix}${singleTimeunitPatternNoCapture}(?:${connectorPattern}${singleTimeunitPatternNoCapture}){0,10}`;
}
function extractTerms(dictionary) {
let keys;
if (dictionary instanceof Array) {
keys = [...dictionary];
}
else if (dictionary instanceof Map) {
keys = Array.from(dictionary.keys());
}
else {
keys = Object.keys(dictionary);
}
return keys;
}
function matchAnyPattern(dictionary) {
const joinedTerms = extractTerms(dictionary)
.sort((a, b) => b.length - a.length)
.join("|")
.replace(/\./g, "\\.");
return `(?:${joinedTerms})`;
}
//# sourceMappingURL=pattern.js.map
;