
Format url with query (string or object), simple and fast, with the power of qs.
The typical usage of this library is building URL for Fetch API. It can be used both on server side and browser side.

const withQuery = require('with-query').default;
fetch(withQuery('https://api.github.com/search/repositories', {
q: 'query',
sort: 'stars',
order: 'asc',
}))
.then(res => res.json())
.then((json) => {
console.info(json);
})
.catch((err) => {
console.error(err);
});
Installation
npm install with-query --save
yarn add with-query
Usage
var withQuery = require('with-query').default;
var assert = require('assert');
const result1 = withQuery('http://example.com', {
a: 1,
b: 'hello',
});
assert.equal(result1, 'http://example.com?a=1&b=hello');
const result2 = withQuery('http://example.com?a=3&c=4&d=5', {
a: 1,
b: 'hello',
});
assert.equal(result2, 'http://example.com?a=1&c=4&d=5&b=hello');
const result3 = withQuery('http://example.com?a=3&c=4&d=5#Append', {
a: 1,
b: 'hello',
});
assert.equal(result3, 'http://example.com?a=1&c=4&d=5&b=hello#Append');
const result4 = withQuery('http://example.com?a=3&c=4&d=5#Append', {
a: 1,
b: 'hello',
}, { noHash: true });
assert.equal(result4, 'http://example.com?a=1&c=4&d=5&b=hello');
const result5 = withQuery('http://example.com?e[]=f', {
a: {
b: 'c',
},
});
assert.equal(result5, 'http://example.com?e%5B0%5D=f&a%5Bb%5D=c');
const result6 = withQuery('http://example.com&e[]=f', {
a: {
b: 'c',
},
}, {
stringifyOpt: {
encode: false,
},
parseOpt: {
parseArray: false,
},
});
assert.equal(result6, 'http://example.com&e[]=f?a[b]=c');
License
MIT