diff --git a/base.js b/base.js index ba41935..0ca95bb 100644 --- a/base.js +++ b/base.js @@ -353,7 +353,13 @@ export function parse(query, options) { continue; } - let [key, value] = splitOnFirst(options.decode ? parameter.replace(/\+/g, ' ') : parameter, '='); + const parameter_ = options.decode ? parameter.replace(/\+/g, ' ') : parameter; + + let [key, value] = splitOnFirst(parameter_, '='); + + if (key === undefined) { + key = parameter_; + } // Missing `=` should be `null`: // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters @@ -454,7 +460,11 @@ export function parseUrl(url, options) { ...options, }; - const [url_, hash] = splitOnFirst(url, '#'); + let [url_, hash] = splitOnFirst(url, '#'); + + if (url_ === undefined) { + url_ = url; + } return { url: url_?.split('?')?.[0] ?? '', diff --git a/package.json b/package.json index fe13a13..75f21fc 100644 --- a/package.json +++ b/package.json @@ -45,9 +45,9 @@ "filter" ], "dependencies": { - "decode-uri-component": "^0.2.2", + "decode-uri-component": "^0.4.1", "filter-obj": "^5.1.0", - "split-on-first": "^1.0.0" + "split-on-first": "^3.0.0" }, "devDependencies": { "ava": "^5.1.0",