tell-me-when
Version:
human relative date and time parser
1 lines • 2.67 kB
Source Map (JSON)
{"version":3,"file":"ParseState.mjs","names":["ParseState","index","start","end","flags","constructor","input","length","done","testLowerCase","pattern","substring","toLowerCase","testRegex","lastIndex","test","toRegExp","s","RegExp","replace"],"sources":["../../src/util/ParseState.ts"],"sourcesContent":["export class ParseState {\n index = 0\n readonly start: number\n readonly end: number\n readonly flags: string\n\n constructor(\n public input: string,\n {\n start = 0,\n end = input.length,\n flags = 'g',\n }: {\n /**\n * The starting index (defaults to 0)\n */\n start?: number\n /**\n * The ending index (defaults to input.length)\n */\n end?: number\n /**\n * Flags to add to all regexes\n */\n flags?: string\n } = {}\n ) {\n this.start = start\n this.end = end\n this.flags = flags\n }\n\n get done() {\n return this.index >= this.end\n }\n\n testLowerCase(pattern: string): boolean {\n if (\n this.input\n .substring(this.index, this.index + pattern.length)\n .toLowerCase() === pattern\n ) {\n this.index += pattern.length\n return true\n }\n return false\n }\n\n testRegex(pattern: RegExp): boolean {\n pattern.lastIndex = this.index\n if (pattern.test(this.input)) {\n this.index = pattern.lastIndex\n return true\n }\n return false\n }\n}\n\nexport function toRegExp(s: string, flags = ''): RegExp {\n return new RegExp(s.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), flags)\n}\n"],"mappings":"AAAA,OAAO,MAAMA,UAAU,CAAC;EACtBC,KAAK,GAAG,CAAC;EACAC,KAAK;EACLC,GAAG;EACHC,KAAK;EAEdC,WAAWA,CACFC,KAAa,EACpB;IACEJ,KAAK,GAAG,CAAC;IACTC,GAAG,GAAGG,KAAK,CAACC,MAAM;IAClBH,KAAK,GAAG;EAcV,CAAC,GAAG,CAAC,CAAC,EACN;IAAA,KAnBOE,KAAa,GAAbA,KAAa;IAoBpB,IAAI,CAACJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEA,IAAII,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACP,KAAK,IAAI,IAAI,CAACE,GAAG;EAC/B;EAEAM,aAAaA,CAACC,OAAe,EAAW;IACtC,IACE,IAAI,CAACJ,KAAK,CACPK,SAAS,CAAC,IAAI,CAACV,KAAK,EAAE,IAAI,CAACA,KAAK,GAAGS,OAAO,CAACH,MAAM,CAAC,CAClDK,WAAW,CAAC,CAAC,KAAKF,OAAO,EAC5B;MACA,IAAI,CAACT,KAAK,IAAIS,OAAO,CAACH,MAAM;MAC5B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAM,SAASA,CAACH,OAAe,EAAW;IAClCA,OAAO,CAACI,SAAS,GAAG,IAAI,CAACb,KAAK;IAC9B,IAAIS,OAAO,CAACK,IAAI,CAAC,IAAI,CAACT,KAAK,CAAC,EAAE;MAC5B,IAAI,CAACL,KAAK,GAAGS,OAAO,CAACI,SAAS;MAC9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,OAAO,SAASE,QAAQA,CAACC,CAAS,EAAEb,KAAK,GAAG,EAAE,EAAU;EACtD,OAAO,IAAIc,MAAM,CAACD,CAAC,CAACE,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAEf,KAAK,CAAC;AACvE","ignoreList":[]}