@technobuddha/library
Version:
A large library of useful functions
73 lines (72 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.escapeGraphQL = void 0;
var constants_1 = require("../constants");
var _escape_1 = require("../_escape");
/**
* Escape a string for use in GraphQL
*
* @param input The string to escape
* @returns the escaped string
*/
function escapeGraphQL(input) {
var output = [];
for (var i = 0; i < input.length; ++i) {
var u = input.codePointAt(i);
if (u < 0x00000020) {
switch (u) {
case 0x00000008: {
output.push('\\b');
break;
}
case 0x00000009: {
output.push('\\t');
break;
}
case 0x0000000a: {
output.push('\\n');
break;
}
case 0x0000000c: {
output.push('\\f');
break;
}
case 0x0000000d: {
output.push('\\r');
break;
}
default: output.push(_escape_1.u4(u));
}
}
else if (u < 0x0000007f) {
switch (u) {
case 0x00000022: {
output.push('\\"');
break;
}
case 0x0000002F: {
output.push('\\/');
break;
}
case 0x0000005c: {
output.push('\\\\');
break;
}
default: output.push(String.fromCharCode(u));
}
}
else if (u < 0x000000a1) {
output.push(_escape_1.u4(u));
}
else if (u < 0x00010000) {
output.push(String.fromCodePoint(u));
}
else {
i++;
output.push(String.fromCodePoint(u));
}
}
return output.join(constants_1.empty);
}
exports.escapeGraphQL = escapeGraphQL;
exports.default = escapeGraphQL;