UNPKG

playwright-bdd

Version:
40 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jsStringWrap = jsStringWrap; /** * Adopted version of https://github.com/joliss/js-string-escape * - added support of backticks * - added 'quotes' option to indicate which quotes to escape * - wrap result string with provided quotes * * Considered alternative is https://github.com/mathiasbynens/jsesc, * but it provides additional functionality and much slower * See: https://github.com/mathiasbynens/jsesc/issues/16 */ function jsStringWrap(str, { quotes = 'single' } = {}) { const wrapQuote = quotes === 'single' ? "'" : quotes === 'double' ? '"' : '`'; // eslint-disable-next-line visual/complexity const escapedStr = ('' + str).replace(/["'`\\\n\r\u2028\u2029]/g, (character) => { // Escape all characters not included in SingleStringCharacters and // DoubleStringCharacters on // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4 switch (character) { case wrapQuote: case '\\': return '\\' + character; // Four possible LineTerminator characters need to be escaped: case '\n': return '\\n'; case '\r': return '\\r'; case '\u2028': return '\\u2028'; case '\u2029': return '\\u2029'; default: return character; } }); return `${wrapQuote}${escapedStr}${wrapQuote}`; } //# sourceMappingURL=jsStringWrap.js.map