UNPKG

@openapi-qraft/react

Version:

OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.

52 lines (49 loc) 1.79 kB
'use strict'; /** * Processes the response from the server. * @beta */ async function processResponse(response) { if (response.status === 204 || response.headers.get('Content-Length') === '0') return response.ok ? { data: null, response } : { error: null, response }; const contentType = response.headers.get('Content-Type')?.toLowerCase(); const isJsonResponse = contentType?.includes('/json') || contentType?.includes('+json'); if (isJsonResponse) { // clone response before parsing every time to allow multiple reads const jsonResponse = response.clone().json(); return resolveResponse(response, response.ok ? jsonResponse : Promise.reject(await jsonResponse)); } const textResponse = response.clone().text(); return resolveResponse(response, response.ok ? textResponse : Promise.reject(await textResponse)); } function resolveResponse(responseToReturn, responsePromise) { if (!responsePromise) { if (responseToReturn instanceof Response) { return Promise.resolve({ error: new Error('Unhandled response without promise to resolve'), response: responseToReturn, data: undefined }); } else { return Promise.resolve({ error: responseToReturn, response: undefined, data: undefined }); } } return responsePromise.then((data)=>({ data, response: responseToReturn })).catch((error)=>({ error, response: responseToReturn })); } exports.processResponse = processResponse; exports.resolveResponse = resolveResponse; //# sourceMappingURL=responseUtils.cjs.map