diff --git a/dist/index.js b/dist/index.js index 77cabe3..8924c4e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -500,7 +500,9 @@ exports.stringifyUrl = function (input, options) { }, options); var url = removeHash(input.url).split('?')[0] || ''; var queryFromUrl = exports.extract(input.url); - var parsedQueryFromUrl = exports.parse(queryFromUrl); + var parsedQueryFromUrl = exports.parse(queryFromUrl, { + sort: false + }); var query = Object.assign(parsedQueryFromUrl, input.query); var queryString = exports.stringify(query, options); diff --git a/index.js b/index.js index f8ca0df..de1d7b1 100644 --- a/index.js +++ b/index.js @@ -361,7 +361,7 @@ exports.stringifyUrl = (input, options) => { const url = removeHash(input.url).split('?')[0] || ''; const queryFromUrl = exports.extract(input.url); - const parsedQueryFromUrl = exports.parse(queryFromUrl); + const parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false}); const query = Object.assign(parsedQueryFromUrl, input.query); let queryString = exports.stringify(query, options); diff --git a/package.json b/package.json index 2bf44d4..630fc03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "query-string-for-all", - "version": "6.13.0", + "version": "6.13.1", "description": "Parse and stringify URL query strings", "license": "MIT", "repository": "cdeutsch/query-string-for-all", diff --git a/test/stringify-url.js b/test/stringify-url.js index 98055cc..2b3c372 100644 --- a/test/stringify-url.js +++ b/test/stringify-url.js @@ -52,3 +52,7 @@ test('stringify URL from the result of `parseUrl` with query string that contain const parsedUrl = queryString.parseUrl(url); t.deepEqual(queryString.stringifyUrl(parsedUrl, {encode: false}), url); }); + +test('stringify URL without sorting existing query params', t => { + t.deepEqual(queryString.stringifyUrl({url: 'https://foo.bar?C=3&A=1', query: {D: 4, B: 2}}, {sort: false}), 'https://foo.bar?C=3&A=1&D=4&B=2'); +});