import { f as useRequestFetch, M as MODULES_API_URL, g as useRuntimeConfig, S as SERVER_API_URL, A as APP_API_URL } from './server.mjs'; function getTenantId(defaultTenantId = "5") { return defaultTenantId; } function getFetch() { try { return useRequestFetch(); } catch { return globalThis.$fetch; } } function normalizeUrl(url) { const config = useRuntimeConfig(); const serverBase = config.public.serverApiBase; const modulesBase = config.public.modulesApiBase; const appBase = config.public.appApiBase; if (url.startsWith(serverBase)) { return SERVER_API_URL + url.slice(serverBase.length); } if (url.startsWith(modulesBase)) { return MODULES_API_URL + url.slice(modulesBase.length); } if (url.startsWith(appBase)) { return APP_API_URL + url.slice(appBase.length); } return url; } function mergeHeaders(headers) { const config = useRuntimeConfig(); const tenantId = headers?.TenantId ?? headers?.tenantId ?? getTenantId(String(config.public.tenantId)); const merged = { TenantId: String(tenantId) }; if (headers) { for (const [key, value] of Object.entries(headers)) { if (value === void 0 || value === null) continue; merged[key] = String(value); } } return merged; } function withDefaultModuleBase(url) { if (url.startsWith("http://") || url.startsWith("https://")) return url; if (url.startsWith("/api/_server") || url.startsWith("/api/_modules") || url.startsWith("/api/_file")) return url; if (url.startsWith("/api/app")) return "/api/_app" + url.slice("/api/app".length); if (!url.startsWith("/")) return MODULES_API_URL + "/" + url; return MODULES_API_URL + url; } async function request(method, url, body, config = {}) { const $fetch = getFetch(); const normalized = withDefaultModuleBase(normalizeUrl(url)); const data = await $fetch(normalized, { method, query: config.params, body: body ?? config.data, headers: mergeHeaders(config.headers), responseType: config.responseType }); return { data }; } const requestClient = { get: (url, config) => request("GET", url, void 0, config), delete: (url, config) => request("DELETE", url, void 0, config), post: (url, data, config) => request("POST", url, data, config), put: (url, data, config) => request("PUT", url, data, config) }; export { requestClient as r }; //# sourceMappingURL=request-BIxQh2im.mjs.map