You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
1.9 KiB
177 lines
1.9 KiB
5 months ago
|
/**
|
||
|
* 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',
|
||
|
];
|