- Drop-in replacement for the global
fetch. - Accepts
Headers, array pairs, or plain object forinit.headers. - Body supports:
string,URLSearchParams,ArrayBuffer, and typed arrays. - Returns a
Responsewhen available; otherwise a minimal object witharrayBuffer(),text(),json(), andheaders.
Example
import { fetch } from 'react-native-nitro-fetch';
const res = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const data = await res.json();- Runs the network request and then invokes
mapWorkleton a worklet runtime (Android) or on JS as a fallback (iOS or when worklets not available). mapWorklet(payload)receives{ url, status, statusText, ok, redirected, headers, bodyBytes?, bodyString? }.options.preferBytes(defaultfalse) controls whetherbodyBytesorbodyStringis sent to the mapper.
Example
import { nitroFetchOnWorklet } from 'react-native-nitro-fetch';
const map = (payload: { bodyString?: string }) => {
'worklet';
return JSON.parse(payload.bodyString ?? '{}');
};
const data = await nitroFetchOnWorklet('https://httpbin.org/get', undefined, map, { preferBytes: false });- Starts a background request in native when possible. Requires a
prefetchKeyprovided either viaheaders: { prefetchKey }orinit.prefetchKey. - Later, call
fetch(url, { headers: { prefetchKey } })to consume a fresh or pending prefetched result. - On success, response will include header
nitroPrefetched: true.
- Enqueues a request to be prefetched at the next app start by writing into Shared Preferences under
nitrofetch_autoprefetch_queue.
- Utilities to manage the auto-prefetch queue.
NitroRequest:{ url, method?, headers?: { key, value }[], bodyString?, bodyBytes?, timeoutMs?, followRedirects? }.NitroResponse:{ url, status, statusText, ok, redirected, headers, bodyString?, bodyBytes? }.