UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

34 lines 1.26 kB
/** * Un-escape a string that has been escaped with {@link escape}. * * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then * square-bracket escapes are removed, but not backslash escapes. * * For example, it will turn the string `'[*]'` into `*`, but it will not * turn `'\\*'` into `'*'`, because `\` is a path separator in * `windowsPathsNoEscape` mode. * * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and * backslash escapes are removed. * * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped * or unescaped. * * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be * unescaped. */ export const unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => { if (magicalBraces) { return windowsPathsNoEscape ? s.replace(/\[([^/\\])\]/g, '$1') : s .replace(/((?!\\).|^)\[([^/\\])\]/g, '$1$2') .replace(/\\([^/])/g, '$1'); } return windowsPathsNoEscape ? s.replace(/\[([^/\\{}])\]/g, '$1') : s .replace(/((?!\\).|^)\[([^/\\{}])\]/g, '$1$2') .replace(/\\([^/{}])/g, '$1'); }; //# sourceMappingURL=unescape.js.map