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.

49 lines (46 loc) 1.48 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); // 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; exports.client = client; exports.default = fetch_default; exports.getConfig = getConfig; exports.setConfig = setConfig; //# sourceMappingURL=fetch.cjs.map //# sourceMappingURL=fetch.cjs.map