32 lines
862 B
TypeScript
32 lines
862 B
TypeScript
import { isNil } from 'lodash'
|
|
|
|
/*
|
|
* Escapes all '-' characters.
|
|
* Redis Search considers '-' as a negative operator, hence we need
|
|
* to escape it
|
|
*/
|
|
export const escapeSpecialChars = (str: string) => {
|
|
return str.replaceAll('-', '\\-')
|
|
}
|
|
|
|
export const escapeAllStrings = (obj: object) => {
|
|
if (isNil(obj)) {
|
|
// return if obj is null or undefined to avoid "TypeError: Cannot convert undefined or null to object"
|
|
return
|
|
}
|
|
Object.keys(obj).forEach((key: string) => {
|
|
// @ts-ignore
|
|
let item = obj[key]
|
|
if (typeof item === 'object') {
|
|
escapeAllStrings(item)
|
|
} else if (typeof item === 'string') {
|
|
// @ts-ignore
|
|
obj[key] = escapeSpecialChars(item)
|
|
}
|
|
})
|
|
}
|
|
|
|
export const unEscapeSpecialChars = (str: string) => {
|
|
return str.replaceAll('\\-', '-')
|
|
}
|