better-word-count/src/status/parse.ts
2021-07-08 22:54:59 +02:00

65 lines
1.2 KiB
TypeScript

const REGEX: RegExp = /{(.*?)}/g;
export interface Expression {
parsed: string[];
vars: number[];
}
// Could be done better
export function parse(query: string): Expression {
let parsed: string[] = [];
let vars: number[] = [];
query.split(REGEX).forEach((s) => {
switch (s) {
case "word_count":
vars.push(0);
break;
case "character_count":
vars.push(1);
break;
case "sentence_count":
vars.push(2);
break;
case "total_word_count":
vars.push(3);
break;
case "total_character_count":
vars.push(4);
break;
case "total_sentence_count":
vars.push(5);
break;
case "file_count":
vars.push(6);
break;
case "words_today":
vars.push(7);
break;
case "characters_today":
vars.push(8);
break;
case "sentences_today":
vars.push(9);
break;
default:
parsed.push(s);
break;
}
});
return {
parsed: parsed,
vars: vars,
};
}
const varNames = {
word_count: 0,
charater_count: 1,
sentence_count: 2,
total_word_count: 3,
total_charater_count: 4,
total_sentence_count: 5,
file_count: 6,
};