UNPKG

@technobuddha/library

Version:
73 lines (72 loc) 2.08 kB
"use strict"; 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;