UNPKG

@kubb/plugin-client

Version:

API client generator plugin for Kubb, creating type-safe HTTP clients (Axios, Fetch) from OpenAPI specifications for making API requests.

42 lines (41 loc) 1.35 kB
// src/clients/fetch.ts var _config = {}; var getConfig = () => _config; var setConfig = (config) => { _config = config; return getConfig(); }; var client = async (paramsConfig) => { const normalizedParams = new URLSearchParams(); const globalConfig = getConfig(); const config = { ...globalConfig, ...paramsConfig }; Object.entries(config.params || {}).forEach(([key, value]) => { if (value !== void 0) { normalizedParams.append(key, value === null ? "null" : value.toString()); } }); let targetUrl = [config.baseURL, config.url].filter(Boolean).join(""); if (config.params) { targetUrl += `?${normalizedParams}`; } const response = await fetch(targetUrl, { credentials: config.credentials || "same-origin", method: config.method?.toUpperCase(), body: JSON.stringify(config.data), signal: config.signal, headers: config.headers }); const data = [204, 205, 304].includes(response.status) || !response.body ? {} : await response.json(); return { data, status: response.status, statusText: response.statusText, headers: response.headers }; }; client.getConfig = getConfig; client.setConfig = setConfig; var fetch_default = client; export { client, fetch_default as default, getConfig, setConfig }; //# sourceMappingURL=fetch.js.map //# sourceMappingURL=fetch.js.map