Configuración
La configuración se fusiona desde defaults del cliente y opciones por llamada mediante mergeConfig (ver reglas abajo).
OpenFetchConfig (petición)
URL y consulta
url— Absoluta o relativa (conbaseURL).baseURL— Prefijo para rutas no absolutas.params— Objeto serializado a query string (serializador por defecto; sustituye conparamsSerializer).
Método y cuerpo
method— Los helpers lo fijan automáticamente.data— TrastransformRequest, los objetos (salvoFormData,URLSearchParams,Blob,ArrayBuffer, vistas tipadas) se serializan a JSON;content-typepor defectoapplication/jsonsi falta.body— Cuerpo crudo defetchsi no usasdataasí; dispatch usadatasi está definido, si nobody.
Cabeceras y autenticación
headers—Record<string, string>(claves en minúsculas internamente).auth—{ username, password }→Authorization: Basic ….withCredentials: true— Ponecredentials: 'include'salvo quecredentialsesté definido.
Tiempo de espera y cancelación
timeout— ms;AbortControllerinterno fusionado consignal.signal—AbortSignalexterno.
Respuesta
responseType—"json"|"text"|"arraybuffer"|"blob"|"stream".
Si se omite, se infiere JSON porContent-Type: application/json, si no texto.validateStatus—(status) => boolean. Por defecto 200–299. Si falla, lanzaOpenFetchErrorconERR_BAD_RESPONSE.
Transformaciones
transformRequest—(data, headers) => unknownen orden.transformResponse—(data) => Ttras el parseo en éxito.
Middleware, reintentos, caché
middlewares— Array (concatenado con defaults).retry— Opciones fusionadas en plano paracreateRetryMiddleware.memoryCache—ttlMs,staleWhileRevalidateMs,skippor petición.
Ergonomía
unwrapResponse— Si estrue, los helpers devuelven solodata.
RequestInit
Se reenvían a fetch: cache, credentials, integrity, keepalive, mode, redirect, referrer, referrerPolicy.
OpenFetchResponse
ts
type OpenFetchResponse<T = unknown> = {
data: T;
status: number;
statusText: string;
headers: Record<string, string>;
config: OpenFetchConfig;
};Fusión (mergeConfig)
- Claves de primer nivel: gana la config de la llamada.
headers: fusión superficial.middlewares,transformRequest,transformResponse: concatenación (defaults primero).retry,memoryCache: fusión superficial.- Se eliminan claves de contaminación de prototipo en objetos fusionados.
