| import { getUnescapedAny } from './get-unescaped-any.js'; |
| const removeSlashes = (source, options = {}) => { |
| const { getUnescaped = getUnescapedAny } = options; |
| const rx = /(?:(\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$)))|([\s\S]))/giu; |
| let match; |
| let result = ''; |
| while (null != (match = rx.exec(source))) { |
| const [, sequence, fallback, unicode, unicodePoint, hex, octal, char, literal] = match; |
| if (literal) { |
| result += literal; |
| continue; |
| } |
| let code; |
| if (char != null) { |
| code = null; |
| } |
| else if (octal) { |
| code = Number.parseInt(octal, 8); |
| } |
| else { |
| code = Number.parseInt((unicodePoint || unicode || hex), 16); |
| } |
| try { |
| const unescaped = getUnescaped(sequence, code); |
| if (!unescaped) { |
| result += fallback; |
| } |
| else if (unescaped === true) { |
| result += getUnescapedAny(sequence, code) || fallback; |
| } |
| else { |
| result += unescaped; |
| } |
| } |
| catch (_error) { |
| result += fallback; |
| } |
| } |
| return result; |
| }; |
| const stripSlashes = removeSlashes; |
| export { removeSlashes, stripSlashes }; |
| //# sourceMappingURL=remove-slashes.js.map |