const isReactNative = typeof navigator > "u" ? !1 : navigator.product === "ReactNative", defaultOptions = { timeout: isReactNative ? 6e4 : 12e4 }, processOptions = function(opts) { const options = { ...defaultOptions, ...typeof opts == "string" ? { url: opts } : opts }, { searchParams } = new URL(options.url, "http://localhost"); if (options.timeout = normalizeTimeout(options.timeout), options.query) { for (const [key, value] of Object.entries(options.query)) if (value !== void 0) if (Array.isArray(value)) for (const v of value) searchParams.append(key, v); else searchParams.append(key, value); } const [url] = options.url.split("?"), search = searchParams.toString(); return search && (options.url = `${url}?${search}`), options.method = options.body && !options.method ? "POST" : (options.method || "GET").toUpperCase(), options; }; function normalizeTimeout(time) { if (time === !1 || time === 0) return !1; if (time.connect || time.socket) return time; const delay = Number(time); return isNaN(delay) ? normalizeTimeout(defaultOptions.timeout) : { connect: delay, socket: delay }; } const validUrl = /^https?:\/\//i, validateOptions = function(options) { if (!validUrl.test(options.url)) throw new Error(`"${options.url}" is not a valid URL`); }; export { processOptions, validateOptions }; //# sourceMappingURL=defaultOptionsValidator-DdN0wke7.js.map