QueryStringAddon | wretch
Methods
query
Converts a javascript object to query parameters, then appends this query string to the current url. String values are used as the query string verbatim.
Set
replacetotruein the options to replace existing query parameters. SetomitUndefinedOrNullValuestotruein the options to completely omit the key=value pair for undefined or null values.import QueryAddon from "wretch/addons/queryString"let w = wretch("http://example.com").addon(QueryStringAddon);
// url is http://example.com
w = w.query({ a: 1, b: 2 });
// url is now http://example.com?a=1&b=2
w = w.query({ c: 3, d: [4, 5] });
// url is now http://example.com?a=1&b=2c=3&d=4&d=5
w = w.query("five&six&seven=eight");
// url is now http://example.com?a=1&b=2c=3&d=4&d=5&five&six&seven=eight
w = w.query({ reset: true }, { replace: true });
// url is now http://example.com?reset=trueNote that .query is not meant to handle complex cases with nested objects.
For this kind of usage, you can use
wretchin conjunction with other libraries (likeqs).// Using wretch with qsconst queryObject = { some: { nested: "objects" } };
const w = wretch("https://example.com/").addon(QueryStringAddon)// Use .qs inside .query :
w.query(qs.stringify(queryObject));
// Use .defer :
const qsWretch = w.defer((w, url, { qsQuery, qsOptions }) => (
qsQuery ? w.query(qs.stringify(qsQuery, qsOptions)) : w
));qsWretch
.url("https://example.com/")
.options({ qs: { query: queryObject } });Type Parameters
- T extends QueryStringAddon
- C
- R
- E
Parameters
Returns this