interface QueryStringAddon {
    query<T, C, R>(this: T & Wretch<T, C, R>, qp: string | object, replace?: boolean, omitUndefinedOrNullValues?: boolean): this;
}

Methods

Methods

  • 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.

    Pass true as the second argument to replace existing query parameters. Pass true as the third argument 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 }, true);
    // url is now http://example.com?reset=true

    For this kind of usage, you can use wretch in conjunction with other libraries (like qs).

    // Using wretch with qs

    const 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

    Parameters

    • this: T & Wretch<T, C, R>
    • qp: string | object

      An object which will be converted, or a string which will be used verbatim.

    • Optionalreplace: boolean
    • OptionalomitUndefinedOrNullValues: boolean

    Returns this