@qrvey/formula-lang
Version:
QFormula support for qrvey projects
44 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.escapeCharacters = void 0;
const constants_1 = require("../constants");
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 === constants_1.ENGINES.POSTGRESQL) {
return `E${value}`;
}
return value;
};
exports.escapeCharacters = escapeCharacters;
//# sourceMappingURL=escapeCharacters.js.map