tell-me-when
Version:
human relative date and time parser
46 lines (45 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ParseState = void 0;
exports.toRegExp = toRegExp;
class ParseState {
index = 0;
start;
end;
flags;
constructor(input, {
start = 0,
end = input.length,
flags = 'g'
} = {}) {
this.input = input;
this.start = start;
this.end = end;
this.flags = flags;
}
get done() {
return this.index >= this.end;
}
testLowerCase(pattern) {
if (this.input.substring(this.index, this.index + pattern.length).toLowerCase() === pattern) {
this.index += pattern.length;
return true;
}
return false;
}
testRegex(pattern) {
pattern.lastIndex = this.index;
if (pattern.test(this.input)) {
this.index = pattern.lastIndex;
return true;
}
return false;
}
}
exports.ParseState = ParseState;
function toRegExp(s, flags = '') {
return new RegExp(s.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&'), flags);
}
//# sourceMappingURL=ParseState.js.map