@qrvey/formula-lang
Version:
QFormula support for qrvey projects
40 lines • 1.25 kB
JavaScript
import { ENGINES } from '../constants';
export const escapeCharacters = (inputString, engine) => {
if (typeof inputString === 'number')
return inputString; // In the context if pass a number instead, return.
let value = inputString.replace(
// eslint-disable-next-line no-control-regex
/(\\")|(\\')|[\0\x08\x09\x1a\n\r"'\\%]/g, (char) => {
switch (char) {
case '\0':
return '\\\\0';
case '\x08':
return '\\\\b';
case '\x09':
return '\\\\t';
case '\x1a':
return '\\\\z';
case '\n':
return '\\\\n';
case '\r':
return '\\\\r';
case '"':
case "'":
case '\\':
case '%':
// prepends a backslash to backslash, percent, and double/single quotes
return '\\' + char;
case '\\"':
case `\\'`:
return char;
default:
return '';
}
});
value = `'${value}'`;
if (engine === ENGINES.POSTGRESQL) {
return `E${value}`;
}
return value;
};
//# sourceMappingURL=escapeCharacters.js.map