fix(regex): Fix regex generation for simple subreddit strings

* Trim value before parsing
* If not a valid regex string then when generating regex from simple string add qualifiers for beginning/end of string so any matches must be exact
This commit is contained in:
FoxxMD
2021-09-29 09:22:40 -04:00
parent be6fa4dd50
commit 55535ddd62

View File

@@ -904,17 +904,18 @@ export interface StrongSubredditStateOptions {
export const toStrongSubredditState = (s: SubredditState, opts?: StrongSubredditStateOptions): StrongSubredditState => {
const {defaultFlags, generateDescription = false} = opts || {};
const {name: nameVal, stateDescription} = s;
const {name: nameValRaw, stateDescription} = s;
let nameReg: RegExp | undefined;
if (nameVal !== undefined) {
if (!(nameVal instanceof RegExp)) {
if (nameValRaw !== undefined) {
if (!(nameValRaw instanceof RegExp)) {
const nameVal = nameValRaw.trim();
nameReg = parseStringToRegex(nameVal, defaultFlags);
if (nameReg === undefined) {
nameReg = new RegExp(parseSubredditName(nameVal), defaultFlags);
nameReg = parseStringToRegex(`/^${parseSubredditName(nameVal)}$/`, defaultFlags);
}
} else {
nameReg = nameVal;
nameReg = nameValRaw;
}
}
const strongState = {