unescape.js 973 B

123456789101112131415161718192021222324
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.unescape = void 0;
  4. /**
  5. * Un-escape a string that has been escaped with {@link escape}.
  6. *
  7. * If the {@link windowsPathsNoEscape} option is used, then square-brace
  8. * escapes are removed, but not backslash escapes. For example, it will turn
  9. * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
  10. * becuase `\` is a path separator in `windowsPathsNoEscape` mode.
  11. *
  12. * When `windowsPathsNoEscape` is not set, then both brace escapes and
  13. * backslash escapes are removed.
  14. *
  15. * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
  16. * or unescaped.
  17. */
  18. const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
  19. return windowsPathsNoEscape
  20. ? s.replace(/\[([^\/\\])\]/g, '$1')
  21. : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
  22. };
  23. exports.unescape = unescape;
  24. //# sourceMappingURL=unescape.js.map