Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
escape.js26 linesDownload Raw Back to esm
1/**
2 * Escape all magic characters in a glob pattern.
3 *
4 * If the {@link MinimatchOptions.windowsPathsNoEscape}
5 * option is used, then characters are escaped by wrapping in `[]`, because
6 * a magic character wrapped in a character class can only be satisfied by
7 * that exact character.  In this mode, `\` is _not_ escaped, because it is
8 * not interpreted as a magic character, but instead as a path separator.
9 *
10 * If the {@link MinimatchOptions.magicalBraces} option is used,
11 * then braces (`{` and `}`) will be escaped.
12 */
13export const escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => {
14    // don't need to escape +@! because we escape the parens
15    // that make those magic, and escaping ! as [!] isn't valid,
16    // because [!]] is a valid glob class meaning not ']'.
17    if (magicalBraces) {
18        return windowsPathsNoEscape ?
19            s.replace(/[?*()[\]{}]/g, '[$&]')
20            : s.replace(/[?*()[\]\\{}]/g, '\\$&');
21    }
22    return windowsPathsNoEscape ?
23        s.replace(/[?*()[\]]/g, '[$&]')
24        : s.replace(/[?*()[\]\\]/g, '\\$&');
25};
26//# sourceMappingURL=escape.js.map
codekingpro/portable-devtools · Team Ai