| /** |
| * Prints a string as a GraphQL StringValue literal. Replaces control characters |
| * and excluded characters (" U+0022 and \\ U+005C) with escape sequences. |
| */ |
| export function printString(str) { |
| return `"${str.replace(escapedRegExp, escapedReplacer)}"`; |
| } // eslint-disable-next-line no-control-regex |
|
|
| const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g; |
|
|
| function escapedReplacer(str) { |
| return escapeSequences[str.charCodeAt(0)]; |
| } // prettier-ignore |
|
|
| const escapeSequences = [ |
| '\\u0000', |
| '\\u0001', |
| '\\u0002', |
| '\\u0003', |
| '\\u0004', |
| '\\u0005', |
| '\\u0006', |
| '\\u0007', |
| '\\b', |
| '\\t', |
| '\\n', |
| '\\u000B', |
| '\\f', |
| '\\r', |
| '\\u000E', |
| '\\u000F', |
| '\\u0010', |
| '\\u0011', |
| '\\u0012', |
| '\\u0013', |
| '\\u0014', |
| '\\u0015', |
| '\\u0016', |
| '\\u0017', |
| '\\u0018', |
| '\\u0019', |
| '\\u001A', |
| '\\u001B', |
| '\\u001C', |
| '\\u001D', |
| '\\u001E', |
| '\\u001F', |
| '', |
| '', |
| '\\"', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', // 2F |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', // 3F |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', // 4F |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '\\\\', |
| '', |
| '', |
| '', // 5F |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', // 6F |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '', |
| '\\u007F', |
| '\\u0080', |
| '\\u0081', |
| '\\u0082', |
| '\\u0083', |
| '\\u0084', |
| '\\u0085', |
| '\\u0086', |
| '\\u0087', |
| '\\u0088', |
| '\\u0089', |
| '\\u008A', |
| '\\u008B', |
| '\\u008C', |
| '\\u008D', |
| '\\u008E', |
| '\\u008F', |
| '\\u0090', |
| '\\u0091', |
| '\\u0092', |
| '\\u0093', |
| '\\u0094', |
| '\\u0095', |
| '\\u0096', |
| '\\u0097', |
| '\\u0098', |
| '\\u0099', |
| '\\u009A', |
| '\\u009B', |
| '\\u009C', |
| '\\u009D', |
| '\\u009E', |
| '\\u009F', |
| ]; |