Flowise/packages/components/nodes/vectorstores/Redis/utils.ts

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('\\-', '-')
}