nodejs / nodejs/node

`path.escapeGlob`

Offen
#61,258 2 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature request
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

What is the problem this feature will solve?

Would allow to dynamically create glob patterns from arbitrary paths.

Example:

const pattern = `${path.escapeGlob(import.meta.dirname)}/*`;
What is the feature you are proposing to solve the problem?

Something similar in functionality to this:

// Wraps symbols which open groups `{`, `[`, `(`, and
// those with semantics independent of groups `*`, `?`
path.escapeGlob = (x = "") => x.replace(/[*{[(?]/g, "[$&]");

And this:

// inverse path.escapeGlob
path.unescapeGlob = (x = "") => x.replace(/\[.\]/g, "$&");

I was using #58988 as a reference for special chars.

What alternatives have you considered?

Using a user land package everywhere dynamic glob creation is required, or even for everything glob related to keep things consistent.

Edit: Shortened regex replacement from (...) -> $1 to ... -> $&.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, Issue #58988 sowie die vorhandene Dokumentation und die Tests der path API zu lesen, um die bereits abgedeckten Sonderzeichen und das Plattformverhalten zu verstehen. Vergleiche die vorgeschlagene Semantik für Escaping und Unescaping über beliebige Pfade hinweg; die Aufgabe ist abgeschlossen, wenn ein abgestimmter API-Vertrag mit passender Implementierung, Tests und Dokumentation vorliegt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
api
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.