ljharb/qs

Add the ability to enable strict RFC 3986 conformance for decoding as well as encoding

Offen

#205 geöffnet am 10.04.2017

 (1 Kommentar) (5 Reaktionen) (0 zugewiesene Personen)JavaScript (904 Forks)batch import
enhancementhelp wantedparsesemver-minor: new features

Repository-Metriken

Stars
 (8.943 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 6T 22h) (2 gemergte PRs in 30 T)

Beschreibung

To achieve strict RFC 3986 conformance (specifically, '+' in query strings is a LITERAL '+' and not a placeholder for ' ' as per the W3C's URL recommendations, the following is necessary:

qs.parse(s, {
    decoder: (str) => {
        try {
            return decodeURIComponent(str);
        } catch (e) {
            return str;
        }
    },
})

For those of us who prefer strict RFC 3986 conformance, I suggest an option like:

qs.parse(s, {
    format: 'RFC3986',
})

which would be much more concise and not require knowing the implementation details of the default decode function.

Contributor Guide