Odoo GraphQL Subscription using Node, Express JS for Sample
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.
 
 
 

176 lines
1.9 KiB

/**
* 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',
];