UNPKG

wretch

Version:

A tiny wrapper built around fetch with an intuitive syntax.

47 lines 1.54 kB
const appendQueryParams = (url, qp, replace, omitUndefinedOrNullValues) => { let queryString; if (typeof qp === "string") { queryString = qp; } else { const usp = new URLSearchParams(); for (const key in qp) { const value = qp[key]; if (omitUndefinedOrNullValues && (value === null || value === undefined)) continue; if (Array.isArray(value)) { for (const val of value) usp.append(key, val !== null && val !== void 0 ? val : ""); } else { usp.append(key, value !== null && value !== void 0 ? value : ""); } } queryString = usp.toString(); } const split = url.split("?"); if (!queryString) return replace ? split[0] : url; if (replace || split.length < 2) return split[0] + "?" + queryString; return url + "&" + queryString; }; /** * Adds the ability to append query parameters from a javascript object. * * ```js * import QueryAddon from "wretch/addons/queryString" * * wretch().addon(QueryAddon) * ``` */ const queryString = { wretch: { query(qp, options = {}) { var _a, _b; return { ...this, _url: appendQueryParams(this._url, qp, (_a = options.replace) !== null && _a !== void 0 ? _a : false, (_b = options.omitUndefinedOrNullValues) !== null && _b !== void 0 ? _b : false) }; } } }; export default queryString; //# sourceMappingURL=queryString.js.map