react-native-nitro-fetch 1.3.3 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -11
- package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +6 -2
- package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +45 -0
- package/ios/NitroAutoPrefetcher.swift +4 -0
- package/ios/NitroFetchClient.swift +56 -0
- package/lib/module/NitroFetch.nitro.js.map +2 -1
- package/lib/module/Response.js +3 -1
- package/lib/module/fetch.js +147 -1
- package/lib/module/fetch.js.map +1 -2
- package/lib/module/index.web.js +1 -2
- package/lib/module/index.web.js.map +2 -1
- package/lib/module/tokenRefresh.js +1 -4
- package/lib/module/tokenRefresh.js.map +1 -2
- package/lib/module/utf8.js.map +2 -1
- package/lib/typescript/src/fetch.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/fetch.js +147 -1
- package/src/fetch.ts +170 -1
package/README.md
CHANGED
|
@@ -366,22 +366,23 @@ Authenticated prewarms: use **`registerTokenRefresh`** with `target: 'websocket'
|
|
|
366
366
|
|
|
367
367
|
More detail: **[docs/websockets.md](docs/websockets.md)** · UI sample: **[example/src/screens/WebSocketScreen.tsx](example/src/screens/WebSocketScreen.tsx)**.
|
|
368
368
|
|
|
369
|
+
## Benchmarks
|
|
370
|
+
|
|
371
|
+
These numbers are **without prefetch** — a common misconception is that nitro-fetch is only faster when prefetching. It isn't: plain `fetch` is faster on its own. In our testing it's around **15–25% faster** than the built-in `fetch` (release build, idle, Wi-Fi). The gap depends a lot on your backend — connection reuse, HTTP/2, and **HTTP/3 over QUIC** widen it. With [prefetch](#prefetching-in-js) the difference is far larger still.
|
|
372
|
+
|
|
373
|
+
| | Built-in | Nitro | Faster |
|
|
374
|
+
| --- | ---: | ---: | ---: |
|
|
375
|
+
| Average (10 runs) | 192 ms | 147 ms | **23.2%** (1.30×) |
|
|
376
|
+
| Median (10 runs) | 190 ms | 148 ms | **22.0%** (1.28×) |
|
|
377
|
+
|
|
378
|
+
Try it yourself in the example app → **Benchmark V2** (release build). See [Benchmarks](https://fetch.margelo.com/docs/benchmarks) for the method and full table. Concerns about the benchmark? [Open an issue](https://github.com/margelo/react-native-nitro-fetch/issues).
|
|
379
|
+
|
|
369
380
|
## Limitations & Alternatives
|
|
370
381
|
|
|
371
382
|
- **WebSockets** are not part of `react-native-nitro-fetch` itself; use the companion package **[react-native-nitro-websockets](docs/websockets.md)** (with **react-native-nitro-text-decoder**). For other stacks, [react-native-fast-io](https://github.com/callstackincubator/react-native-fast-io) is another option.
|
|
372
383
|
|
|
373
384
|
## Documentation
|
|
374
|
-
|
|
375
|
-
- [Getting Started](docs/getting-started.md)
|
|
376
|
-
- [API Reference](docs/api.md)
|
|
377
|
-
- [Android Details](docs/android.md)
|
|
378
|
-
- [iOS Details](docs/ios.md)
|
|
379
|
-
- [Prefetch & Auto-Prefetch](docs/prefetch.md)
|
|
380
|
-
- [WebSockets & prewarm](docs/websockets.md)
|
|
381
|
-
- [Worklets](docs/worklets.md)
|
|
382
|
-
- [Troubleshooting](docs/troubleshooting.md)
|
|
383
|
-
- [Cronet (Android) notes](docs/cronet-android.md)
|
|
384
|
-
- [Cronet (iOS) notes](docs/cronet-ios.md)
|
|
385
|
+
You can find documentation at https://fetch.margelo.com
|
|
385
386
|
|
|
386
387
|
## Margelo
|
|
387
388
|
|
|
@@ -101,7 +101,9 @@ object AutoPrefetcher {
|
|
|
101
101
|
|
|
102
102
|
val tokens: TokenRefreshResult = if (refreshed != null) {
|
|
103
103
|
android.util.Log.d("NitroFetch", "[TokenRefresh] ✅ Success — got ${refreshed.headers.size} header(s)")
|
|
104
|
-
|
|
104
|
+
if (BuildConfig.DEBUG) {
|
|
105
|
+
refreshed.headers.forEach { (k, v) -> android.util.Log.d("NitroFetch", "[TokenRefresh] $k: $v") }
|
|
106
|
+
}
|
|
105
107
|
// Cache fresh tokens for useStoredHeaders fallback on next cold start
|
|
106
108
|
NitroFetchSecureAtRest.putEncrypted(prefs, KEY_TOKEN_CACHE, serializeCache(refreshed))
|
|
107
109
|
refreshed
|
|
@@ -148,7 +150,9 @@ object AutoPrefetcher {
|
|
|
148
150
|
merged["prefetchKey"] = prefetchKey
|
|
149
151
|
|
|
150
152
|
android.util.Log.d("NitroFetch", "[TokenRefresh] Prefetching $url with ${merged.size} header(s)")
|
|
151
|
-
|
|
153
|
+
if (BuildConfig.DEBUG) {
|
|
154
|
+
merged.forEach { (k, v) -> android.util.Log.d("NitroFetch", "[TokenRefresh] $k: $v") }
|
|
155
|
+
}
|
|
152
156
|
val req = buildNitroRequestFromEntry(url, merged, o, tokens)
|
|
153
157
|
|
|
154
158
|
if (FetchCache.getPending(prefetchKey) != null) continue
|
|
@@ -85,6 +85,11 @@ class NitroFetchClient(private val engine: CronetEngine, private val executor: E
|
|
|
85
85
|
onFail: (Throwable) -> Unit
|
|
86
86
|
): UrlRequest? {
|
|
87
87
|
return try {
|
|
88
|
+
// Local resources (file://, content://, scheme-less paths) aren't HTTP; read off disk -> 200.
|
|
89
|
+
if (!isHttpURL(req.url)) {
|
|
90
|
+
onSuccess(makeLocalFileResponse(req))
|
|
91
|
+
return null
|
|
92
|
+
}
|
|
88
93
|
val engine = NitroFetch.getEngine()
|
|
89
94
|
val executor = NitroFetch.ioExecutor
|
|
90
95
|
startCronet(engine, executor, req, onSuccess, onFail)
|
|
@@ -375,6 +380,46 @@ class NitroFetchClient(private val engine: CronetEngine, private val executor: E
|
|
|
375
380
|
val path = if (uri.startsWith("file://")) uri.removePrefix("file://") else uri
|
|
376
381
|
return File(path).readBytes()
|
|
377
382
|
}
|
|
383
|
+
|
|
384
|
+
private fun isHttpURL(url: String): Boolean =
|
|
385
|
+
url.startsWith("http://") || url.startsWith("https://")
|
|
386
|
+
|
|
387
|
+
private fun guessMime(uri: String): String {
|
|
388
|
+
if (uri.startsWith("content://")) {
|
|
389
|
+
NitroModules.applicationContext?.contentResolver?.getType(Uri.parse(uri))?.let { return it }
|
|
390
|
+
}
|
|
391
|
+
val path = if (uri.startsWith("file://")) uri.removePrefix("file://") else uri
|
|
392
|
+
val ext = path.substringAfterLast('.', "").lowercase()
|
|
393
|
+
if (ext.isNotEmpty()) {
|
|
394
|
+
android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext)?.let { return it }
|
|
395
|
+
}
|
|
396
|
+
return java.net.URLConnection.guessContentTypeFromName(path) ?: "application/octet-stream"
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Read a local file -> synthetic 200, mirroring the HTTP path's strict text/bytes choice.
|
|
400
|
+
private fun makeLocalFileResponse(req: NitroRequest): NitroResponse {
|
|
401
|
+
val bytes = readFileBytes(req.url)
|
|
402
|
+
val mime = guessMime(req.url)
|
|
403
|
+
val bodyStr: String? = try {
|
|
404
|
+
strictDecoderFor(Charsets.UTF_8).decode(ByteBuffer.wrap(bytes)).toString()
|
|
405
|
+
} catch (_: Throwable) { null }
|
|
406
|
+
val bodyBytesAb: ArrayBuffer? = if (bodyStr == null && bytes.isNotEmpty())
|
|
407
|
+
bytes.toArrayBuffer()
|
|
408
|
+
else null
|
|
409
|
+
return NitroResponse(
|
|
410
|
+
url = req.url,
|
|
411
|
+
status = 200.0,
|
|
412
|
+
statusText = "OK",
|
|
413
|
+
ok = true,
|
|
414
|
+
redirected = false,
|
|
415
|
+
headers = arrayOf(
|
|
416
|
+
NitroHeader("Content-Type", mime),
|
|
417
|
+
NitroHeader("Content-Length", bytes.size.toString())
|
|
418
|
+
),
|
|
419
|
+
bodyString = bodyStr,
|
|
420
|
+
bodyBytes = bodyBytesAb
|
|
421
|
+
)
|
|
422
|
+
}
|
|
378
423
|
}
|
|
379
424
|
|
|
380
425
|
// Helper function to add prefetch header to response (reused by both sync/async)
|
|
@@ -150,7 +150,9 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
150
150
|
let refreshed = try? await callTokenRefresh(config: refreshObj)
|
|
151
151
|
if let refreshed = refreshed {
|
|
152
152
|
print("[NitroFetch][TokenRefresh] ✅ Success — got \(refreshed.headers.count) header(s)")
|
|
153
|
+
#if DEBUG
|
|
153
154
|
for (k, v) in refreshed.headers { print("[NitroFetch][TokenRefresh] \(k): \(v)") }
|
|
155
|
+
#endif
|
|
154
156
|
// Cache fresh tokens for useStoredHeaders fallback on next cold start
|
|
155
157
|
if let cacheStr = serializeCache(refreshed) {
|
|
156
158
|
try? NitroFetchSecureAtRest.setEncrypted(cacheStr, forKey: tokenCacheKey, defaults: userDefaults)
|
|
@@ -188,7 +190,9 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
188
190
|
headers.append(NitroHeader(key: "prefetchKey", value: prefetchKey))
|
|
189
191
|
|
|
190
192
|
print("[NitroFetch][TokenRefresh] Prefetching \(url) with \(merged.count) header(s)")
|
|
193
|
+
#if DEBUG
|
|
191
194
|
for (k, v) in merged { print("[NitroFetch][TokenRefresh] \(k): \(v)") }
|
|
195
|
+
#endif
|
|
192
196
|
|
|
193
197
|
let req = buildNitroRequest(from: obj, mergedHeaders: headers, tokens: tokens)
|
|
194
198
|
Task {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import NitroModules
|
|
3
3
|
import os
|
|
4
|
+
import UniformTypeIdentifiers
|
|
4
5
|
|
|
5
6
|
#if NITROFETCH_TRACING
|
|
6
7
|
private let fetchLog = OSLog(subsystem: "com.margelo.nitrofetch", category: "network")
|
|
@@ -117,6 +118,10 @@ final class NitroFetchClient: HybridNitroFetchClientSpec {
|
|
|
117
118
|
|
|
118
119
|
|
|
119
120
|
public class func requestStatic(_ req: NitroRequest) async throws -> NitroResponse {
|
|
121
|
+
// Local resources (file://, scheme-less paths) aren't HTTP; read off disk -> 200.
|
|
122
|
+
if !isHttpURL(req.url) {
|
|
123
|
+
return try makeLocalFileResponse(req)
|
|
124
|
+
}
|
|
120
125
|
if let key = findPrefetchKey(req) {
|
|
121
126
|
// If a prefetched result is fresh, return immediately
|
|
122
127
|
if let cached = FetchCache.getResultIfFresh(key, maxAgeMs: Int64(req.prefetchCacheTtlMs ?? 5_000)) {
|
|
@@ -380,6 +385,57 @@ final class NitroFetchClient: HybridNitroFetchClientSpec {
|
|
|
380
385
|
return data
|
|
381
386
|
}
|
|
382
387
|
|
|
388
|
+
private static func isHttpURL(_ url: String) -> Bool {
|
|
389
|
+
return url.hasPrefix("http://") || url.hasPrefix("https://")
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
private static func localData(forURI uri: String) throws -> Data {
|
|
393
|
+
// file:// via URL (honors percent-encoding); bare paths read directly.
|
|
394
|
+
if uri.hasPrefix("file://"), let fileURL = URL(string: uri) {
|
|
395
|
+
return try Data(contentsOf: fileURL)
|
|
396
|
+
}
|
|
397
|
+
let path = uri.hasPrefix("file://") ? String(uri.dropFirst(7)) : uri
|
|
398
|
+
guard let data = FileManager.default.contents(atPath: path) else {
|
|
399
|
+
throw NSError(domain: "NitroFetch", code: -4,
|
|
400
|
+
userInfo: [NSLocalizedDescriptionKey: "Cannot read file at: \(uri)"])
|
|
401
|
+
}
|
|
402
|
+
return data
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
private static func mimeType(forURI uri: String) -> String {
|
|
406
|
+
let path = uri.hasPrefix("file://") ? String(uri.dropFirst(7)) : uri
|
|
407
|
+
let ext = (path as NSString).pathExtension
|
|
408
|
+
if !ext.isEmpty, let type = UTType(filenameExtension: ext),
|
|
409
|
+
let mime = type.preferredMIMEType {
|
|
410
|
+
return mime
|
|
411
|
+
}
|
|
412
|
+
return "application/octet-stream"
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// Read a local file -> synthetic 200, mirroring the HTTP path's text/bytes choice.
|
|
416
|
+
private static func makeLocalFileResponse(_ req: NitroRequest) throws -> NitroResponse {
|
|
417
|
+
let data = try localData(forURI: req.url)
|
|
418
|
+
let mime = mimeType(forURI: req.url)
|
|
419
|
+
let bodyStr = String(data: data, encoding: .utf8)
|
|
420
|
+
var bodyBytesAb: ArrayBuffer? = nil
|
|
421
|
+
if bodyStr == nil && !data.isEmpty {
|
|
422
|
+
bodyBytesAb = try ArrayBuffer.copy(data: data)
|
|
423
|
+
}
|
|
424
|
+
return NitroResponse(
|
|
425
|
+
url: req.url,
|
|
426
|
+
status: 200,
|
|
427
|
+
statusText: "OK",
|
|
428
|
+
ok: true,
|
|
429
|
+
redirected: false,
|
|
430
|
+
headers: [
|
|
431
|
+
NitroHeader(key: "Content-Type", value: mime),
|
|
432
|
+
NitroHeader(key: "Content-Length", value: String(data.count)),
|
|
433
|
+
],
|
|
434
|
+
bodyString: bodyStr,
|
|
435
|
+
bodyBytes: bodyBytesAb
|
|
436
|
+
)
|
|
437
|
+
}
|
|
438
|
+
|
|
383
439
|
private static func detectCharset(from http: HTTPURLResponse) -> String.Encoding? {
|
|
384
440
|
if let ct = http.value(forHTTPHeaderField: "Content-Type")?.lowercased() {
|
|
385
441
|
if let range = ct.range(of: "charset=") {
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroFetch.nitro.
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroFetch.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
2
|
+
":[]}
|
package/lib/module/Response.js
CHANGED
|
@@ -187,7 +187,9 @@ export class NitroResponse {
|
|
|
187
187
|
async formData() {
|
|
188
188
|
throw new TypeError('formData() is not supported in NitroResponse');
|
|
189
189
|
}
|
|
190
|
+
|
|
190
191
|
// --- Static methods ---
|
|
192
|
+
|
|
191
193
|
static error() {
|
|
192
194
|
return new NitroResponse({
|
|
193
195
|
url: '',
|
|
@@ -232,4 +234,4 @@ export class NitroResponse {
|
|
|
232
234
|
});
|
|
233
235
|
}
|
|
234
236
|
}
|
|
235
|
-
//# sourceMappingURL=Response.js.
|
|
237
|
+
//# sourceMappingURL=Response.js.map
|
package/lib/module/fetch.js
CHANGED
|
@@ -398,6 +398,145 @@ async function resolveBlobBody(init) {
|
|
|
398
398
|
}
|
|
399
399
|
return init;
|
|
400
400
|
}
|
|
401
|
+
|
|
402
|
+
// http(s) -> native client; anything else is a local resource (hot path).
|
|
403
|
+
function isHttpUrl(url) {
|
|
404
|
+
if (url.startsWith('http://') || url.startsWith('https://')) return true;
|
|
405
|
+
const c = url.charCodeAt(0);
|
|
406
|
+
if (c !== 104 && c !== 72) return false; // not 'h'/'H'
|
|
407
|
+
return /^https?:/i.test(url);
|
|
408
|
+
}
|
|
409
|
+
function getUrlString(input) {
|
|
410
|
+
if (typeof input === 'string') return input;
|
|
411
|
+
if (input instanceof URL) return input.toString();
|
|
412
|
+
const u = input?.url;
|
|
413
|
+
return typeof u === 'string' ? u : String(input);
|
|
414
|
+
}
|
|
415
|
+
function base64ToBytes(b64) {
|
|
416
|
+
const decode = globalThis.atob;
|
|
417
|
+
if (typeof decode === 'function') {
|
|
418
|
+
const bin = decode(b64);
|
|
419
|
+
const out = new Uint8Array(bin.length);
|
|
420
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
421
|
+
return out;
|
|
422
|
+
}
|
|
423
|
+
// base64 fallback for runtimes without a global atob.
|
|
424
|
+
/* eslint-disable no-bitwise */
|
|
425
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
426
|
+
const clean = b64.replace(/[^A-Za-z0-9+/]/g, '');
|
|
427
|
+
const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
|
|
428
|
+
let p = 0;
|
|
429
|
+
let buf = 0;
|
|
430
|
+
let bits = 0;
|
|
431
|
+
for (let i = 0; i < clean.length; i++) {
|
|
432
|
+
buf = buf << 6 | chars.indexOf(clean[i]);
|
|
433
|
+
bits += 6;
|
|
434
|
+
if (bits >= 8) {
|
|
435
|
+
bits -= 8;
|
|
436
|
+
out[p++] = buf >> bits & 0xff;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
return out;
|
|
440
|
+
/* eslint-enable no-bitwise */
|
|
441
|
+
}
|
|
442
|
+
// Cached: our nitro-text-decoder if the app bundles it (aliased require keeps it optional, not a dep), else a global TextDecoder.
|
|
443
|
+
let _decoder;
|
|
444
|
+
function resolveTextDecoder() {
|
|
445
|
+
if (_decoder !== undefined) return _decoder;
|
|
446
|
+
try {
|
|
447
|
+
const dynamicRequire = require;
|
|
448
|
+
const mod = dynamicRequire('react-native-nitro-text-decoder');
|
|
449
|
+
if (mod && typeof mod.TextDecoder === 'function') {
|
|
450
|
+
_decoder = new mod.TextDecoder('utf-8', {
|
|
451
|
+
fatal: true
|
|
452
|
+
});
|
|
453
|
+
return _decoder;
|
|
454
|
+
}
|
|
455
|
+
} catch {
|
|
456
|
+
// optional, not bundled
|
|
457
|
+
}
|
|
458
|
+
const GlobalTextDecoder = globalThis.TextDecoder;
|
|
459
|
+
if (typeof GlobalTextDecoder === 'function') {
|
|
460
|
+
_decoder = new GlobalTextDecoder('utf-8', {
|
|
461
|
+
fatal: true
|
|
462
|
+
});
|
|
463
|
+
return _decoder;
|
|
464
|
+
}
|
|
465
|
+
_decoder = null;
|
|
466
|
+
return _decoder;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// data: text via a TextDecoder; null (bytes-only) + a one-time warn if none.
|
|
470
|
+
let _warnedNoTextDecoder = false;
|
|
471
|
+
function decodeUtf8(bytes) {
|
|
472
|
+
const decoder = resolveTextDecoder();
|
|
473
|
+
if (decoder) {
|
|
474
|
+
try {
|
|
475
|
+
return decoder.decode(bytes);
|
|
476
|
+
} catch {
|
|
477
|
+
return null; // invalid UTF-8 -> keep bytes only
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
if (!_warnedNoTextDecoder) {
|
|
481
|
+
_warnedNoTextDecoder = true;
|
|
482
|
+
console.warn('[nitro-fetch] Reading a data: URL as text needs a TextDecoder. Install ' + 'react-native-nitro-text-decoder or expose a global TextDecoder. The ' + 'body is still available via response.arrayBuffer()/bytes().');
|
|
483
|
+
}
|
|
484
|
+
return null;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// Decode a data: URL into a synthetic 200 response, entirely in JS.
|
|
488
|
+
function decodeDataUrl(url) {
|
|
489
|
+
const comma = url.indexOf(',');
|
|
490
|
+
if (comma < 0) throw new TypeError('Failed to fetch: invalid data: URL');
|
|
491
|
+
const meta = url.slice(5, comma); // strip leading "data:"
|
|
492
|
+
const rawData = url.slice(comma + 1);
|
|
493
|
+
const isBase64 = /;base64\s*$/i.test(meta);
|
|
494
|
+
const mediaType = (isBase64 ? meta.replace(/;base64\s*$/i, '') : meta).trim() || 'text/plain;charset=US-ASCII';
|
|
495
|
+
let bodyString;
|
|
496
|
+
let bodyBytes;
|
|
497
|
+
let length;
|
|
498
|
+
if (isBase64) {
|
|
499
|
+
const bytes = base64ToBytes(rawData);
|
|
500
|
+
length = bytes.byteLength;
|
|
501
|
+
// bytes for arrayBuffer/bytes; string for text/json when a decoder exists.
|
|
502
|
+
bodyBytes = bytes.buffer;
|
|
503
|
+
const decoded = decodeUtf8(bytes);
|
|
504
|
+
if (decoded != null) bodyString = decoded;
|
|
505
|
+
} else {
|
|
506
|
+
bodyString = decodeURIComponent(rawData);
|
|
507
|
+
length = typeof TextEncoder !== 'undefined' ? new TextEncoder().encode(bodyString).length : bodyString.length;
|
|
508
|
+
}
|
|
509
|
+
return {
|
|
510
|
+
url,
|
|
511
|
+
status: 200,
|
|
512
|
+
statusText: 'OK',
|
|
513
|
+
ok: true,
|
|
514
|
+
redirected: false,
|
|
515
|
+
headers: [{
|
|
516
|
+
key: 'Content-Type',
|
|
517
|
+
value: mediaType
|
|
518
|
+
}, {
|
|
519
|
+
key: 'Content-Length',
|
|
520
|
+
value: String(length)
|
|
521
|
+
}],
|
|
522
|
+
bodyString,
|
|
523
|
+
bodyBytes
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
// Non-http(s): decode data: in JS, reject blob:, read file/content/path natively.
|
|
528
|
+
async function fetchLocalResource(req) {
|
|
529
|
+
const url = req.url;
|
|
530
|
+
if (url.startsWith('data:')) return decodeDataUrl(url);
|
|
531
|
+
if (url.startsWith('blob:')) {
|
|
532
|
+
throw new TypeError('nitro-fetch cannot read blob: URLs (the React Native blob registry is not ' + 'reachable from native). Read blobs with the platform fetch/FileReader instead.');
|
|
533
|
+
}
|
|
534
|
+
ensureClient();
|
|
535
|
+
if (!client || typeof client.request !== 'function') {
|
|
536
|
+
throw new Error('NitroFetch client not available');
|
|
537
|
+
}
|
|
538
|
+
return client.request(req);
|
|
539
|
+
}
|
|
401
540
|
async function nitroFetchRaw(input, init) {
|
|
402
541
|
const signal = init?.signal;
|
|
403
542
|
|
|
@@ -435,6 +574,11 @@ async function nitroFetchRaw(input, init) {
|
|
|
435
574
|
}
|
|
436
575
|
const req = buildNitroRequest(input, init);
|
|
437
576
|
|
|
577
|
+
// Route non-http(s) (data:/file://content://scheme-less) off the HTTP client.
|
|
578
|
+
if (!isHttpUrl(req.url)) {
|
|
579
|
+
return fetchLocalResource(req);
|
|
580
|
+
}
|
|
581
|
+
|
|
438
582
|
// Inspector: record start (zero cost when disabled — single boolean check)
|
|
439
583
|
let inspectorId;
|
|
440
584
|
if (NetworkInspector.isEnabled()) {
|
|
@@ -594,7 +738,9 @@ export async function nitroFetch(input, init) {
|
|
|
594
738
|
cache: init?.cache ?? input.cache
|
|
595
739
|
};
|
|
596
740
|
}
|
|
597
|
-
|
|
741
|
+
|
|
742
|
+
// Streaming is http(s)-only; local URLs fall through to nitroFetchRaw (check runs only when streaming).
|
|
743
|
+
if (init?.stream === true && isHttpUrl(getUrlString(input))) {
|
|
598
744
|
return nitroStreamFetch(input, init);
|
|
599
745
|
}
|
|
600
746
|
const redirectOption = init?.redirect ?? 'follow';
|
package/lib/module/fetch.js.map
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroFetch","NitroFetchSingleton","NitroCronetSingleton","NativeStorage","NativeStorageSingleton","NitroHeaders","NitroResponse","NitroRequest","NitroRequestClass","NetworkInspector","headersToPairs","headers","undefined","pairs","Headers","forEach","v","k","push","key","value","Array","isArray","entry","length","String","hasForEach","keys","Object","i","serializeFormData","fd","parts","getParts","rnParts","part","string","name","fieldName","uri","fileUri","fileName","mimeType","type","isFormData","body","FormData","append","normalizeBody","bodyString","bodyFormData","URLSearchParams","toString","ArrayBuffer","bodyBytes","isView","view","buffer","slice","byteOffset","byteLength","Error","NitroFetchHybrid","client","ensureClient","createClient","err","console","error","buildNitroRequest","input","init","url","method","headersInit","redirectOption","redirect","cacheOption","cache","URL","normalized","followRedirects","prefetchCacheTtlMs","toUpperCase","headersToPairsPure","normalizeBodyPure","prototype","call","buildNitroRequestPure","isUrlObject","req","createAbortError","resolveRequestBody","clone","text","resolveBlobBody","Blob","blob","Promise","resolve","reject","reader","FileReader","onload","result","onerror","readAsText","hasContentType","some","h","toLowerCase","map","nitroFetchRaw","signal","aborted","hasNative","res","fetch","bytes","arrayBuffer","status","statusText","ok","redirected","inspectorId","isEnabled","Date","now","Math","random","_recordStart","requestId","request","abortListener","cancelRequest","addEventListener","once","_recordEnd","e","removeEventListener","nitroStreamFetch","builder","newUrlRequestBuilder","setHttpMethod","addHeader","setUploadBody","resolveResponse","rejectResponse","streamController","stream","ReadableStream","start","controller","responseResolved","streamBytesReceived","onResponseStarted","info","httpStatusCode","responseHeaders","entries","allHeaders","response","httpStatusText","read","onReadCompleted","_info","byteBuffer","bytesRead","chunk","Uint8Array","enqueue","isDone","onSucceeded","close","hdrs","allHeadersAsList","onFailed","message","onCanceled","build","nitroFetch","TypeError","prefetch","hasKey","fromInit","prefetchKey","concat","finalHasKey","AUTOPREFETCH_QUEUE_KEY","prefetchOnAppStart","fromHeader","find","headersObj","reduce","acc","timeoutMs","arr","raw","getString","JSON","parse","filter","setString","stringify","warn","removeFromAutoPrefetch","next","removeString","removeAllFromAutoprefetch","__readAutoPrefetchQueue","parsed","nitroRuntime","ensureWorkletRuntime","createWorkletRuntime","require","nitroFetchOnWorklet","mapWorklet","options","preferBytes","runOnRuntimeAsync","rt","runtimeName","worklets","payload","nitroFetchClient","requestSync"],"sourceRoot":"../../src","sources":["fetch.js"],"mappings":"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","ignoreList":[]}
|
|
2
|
-
CAACO,OAAc,CAAC;EACnC,CAAC,CAAC;AACJ;AAOA,SAAS1N,YAAY,QAAQ,cAAW;AACxC,SAASC,aAAa,QAAQ,eAAY;AAC1C,SAASC,YAAY,IAAIC,iBAAiB,QAAQ,cAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NitroFetch","NitroFetchSingleton","NitroCronetSingleton","NativeStorage","NativeStorageSingleton","NitroHeaders","NitroResponse","NitroRequest","NitroRequestClass","NetworkInspector","headersToPairs","headers","undefined","pairs","Headers","forEach","v","k","push","key","value","Array","isArray","entry","length","String","hasForEach","keys","Object","i","serializeFormData","fd","parts","getParts","rnParts","part","string","name","fieldName","uri","fileUri","fileName","mimeType","type","isFormData","body","FormData","append","normalizeBody","bodyString","bodyFormData","URLSearchParams","toString","ArrayBuffer","bodyBytes","isView","view","buffer","slice","byteOffset","byteLength","Error","NitroFetchHybrid","client","ensureClient","createClient","err","console","error","buildNitroRequest","input","init","url","method","headersInit","redirectOption","redirect","cacheOption","cache","URL","normalized","followRedirects","prefetchCacheTtlMs","toUpperCase","headersToPairsPure","normalizeBodyPure","prototype","call","buildNitroRequestPure","isUrlObject","req","createAbortError","resolveRequestBody","clone","text","resolveBlobBody","Blob","blob","Promise","resolve","reject","reader","FileReader","onload","result","onerror","readAsText","hasContentType","some","h","toLowerCase","map","isHttpUrl","startsWith","c","charCodeAt","test","getUrlString","u","base64ToBytes","b64","decode","globalThis","atob","bin","out","Uint8Array","chars","clean","replace","Math","floor","p","buf","bits","indexOf","_decoder","resolveTextDecoder","dynamicRequire","require","mod","TextDecoder","fatal","GlobalTextDecoder","_warnedNoTextDecoder","decodeUtf8","bytes","decoder","warn","decodeDataUrl","comma","TypeError","meta","rawData","isBase64","mediaType","trim","decoded","decodeURIComponent","TextEncoder","encode","status","statusText","ok","redirected","fetchLocalResource","request","nitroFetchRaw","signal","aborted","hasNative","res","fetch","arrayBuffer","inspectorId","isEnabled","Date","now","random","_recordStart","requestId","abortListener","cancelRequest","addEventListener","once","_recordEnd","e","removeEventListener","nitroStreamFetch","builder","newUrlRequestBuilder","setHttpMethod","addHeader","setUploadBody","resolveResponse","rejectResponse","streamController","stream","ReadableStream","start","controller","responseResolved","streamBytesReceived","onResponseStarted","info","httpStatusCode","responseHeaders","entries","allHeaders","response","httpStatusText","read","onReadCompleted","_info","byteBuffer","bytesRead","chunk","enqueue","isDone","onSucceeded","close","hdrs","allHeadersAsList","onFailed","message","onCanceled","build","nitroFetch","prefetch","hasKey","fromInit","prefetchKey","concat","finalHasKey","AUTOPREFETCH_QUEUE_KEY","prefetchOnAppStart","fromHeader","find","headersObj","reduce","acc","timeoutMs","arr","raw","getString","JSON","parse","filter","setString","stringify","removeFromAutoPrefetch","next","removeString","removeAllFromAutoprefetch","__readAutoPrefetchQueue","parsed","nitroRuntime","ensureWorkletRuntime","createWorkletRuntime","nitroFetchOnWorklet","mapWorklet","options","preferBytes","runOnRuntimeAsync","rt","runtimeName","worklets","payload","nitroFetchClient","requestSync"],"sourceRoot":"../../src","sources":["fetch.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.web.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Web entry for react-native-nitro-fetch.
|
|
4
4
|
// Native (Cronet/URLSession) is unavailable on the web, so we delegate to the
|
|
5
5
|
// browser's built-in fetch and stub native-only APIs with console.warn.
|
|
6
|
-
|
|
7
6
|
import { NitroRequest as NitroRequestClass } from "./Request.js";
|
|
8
7
|
export { NitroHeaders as Headers } from "./Headers.js";
|
|
9
8
|
export { NitroResponse as Response } from "./Response.js";
|
|
@@ -105,4 +104,4 @@ export function getNestedField(obj, dotPath) {
|
|
|
105
104
|
export function applyTemplate(template, value) {
|
|
106
105
|
return template.replace(/\{\{value\}\}/g, value);
|
|
107
106
|
}
|
|
108
|
-
//# sourceMappingURL=index.web.js.
|
|
107
|
+
//# sourceMappingURL=index.web.js.mapp
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["NitroRequest","NitroRequestClass","NitroHeaders","Headers","NitroResponse","Response","Request","NetworkInspector","generateCurl","profileFetch","fetch","input","init","resolvedInput","resolvedInit","method","toUpperCase","hasBodyMethod","body","undefined","bytes","arrayBuffer","catch","byteLength","url","headers","redirect","cache","signal","globalThis","nitroFetchOnWorklet","mapWorklet","_options","console","warn","res","bodyBytes","clone","bodyString","text","forEach","v","k","push","key","value","status","statusText","ok","redirected","prefetch","_input","_init","prefetchOnAppStart","removeFromAutoPrefetch","_prefetchKey","removeAllFromAutoprefetch","NitroFetch","Proxy","get","_target","prop","String","registerTokenRefresh","clearTokenRefresh","callRefreshEndpoint","_config","getStoredTokenRefreshConfig","getNestedField","obj","dotPath","parts","split","current","part","applyTemplate","template","replace"],"sourceRoot":"../../src","sources":["index.web.
|
|
1
|
+
{"version":3,"names":["NitroRequest","NitroRequestClass","NitroHeaders","Headers","NitroResponse","Response","Request","NetworkInspector","generateCurl","profileFetch","fetch","input","init","resolvedInput","resolvedInit","method","toUpperCase","hasBodyMethod","body","undefined","bytes","arrayBuffer","catch","byteLength","url","headers","redirect","cache","signal","globalThis","nitroFetchOnWorklet","mapWorklet","_options","console","warn","res","bodyBytes","clone","bodyString","text","forEach","v","k","push","key","value","status","statusText","ok","redirected","prefetch","_input","_init","prefetchOnAppStart","removeFromAutoPrefetch","_prefetchKey","removeAllFromAutoprefetch","NitroFetch","Proxy","get","_target","prop","String","registerTokenRefresh","clearTokenRefresh","callRefreshEndpoint","_config","getStoredTokenRefreshConfig","getNestedField","obj","dotPath","parts","split","current","part","applyTemplate","template","replace"],"sourceRoot":"../../src","sources":["index.web.js"],"mappings":"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","ignoreList":[]}
|
|
2
|
+
BAAgB,EAAEhC,KAAK,CAAC;AAClD","ignoreList":[]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { NativeStorage as NativeStorageSingleton } from "./NitroInstances.js";
|
|
4
|
-
|
|
5
4
|
// Storage keys
|
|
6
5
|
const KEY_WS = 'nitro_token_refresh_websocket';
|
|
7
6
|
const KEY_FETCH = 'nitro_token_refresh_fetch';
|
|
8
7
|
const KEY_WS_CACHE = 'nitro_token_refresh_ws_cache';
|
|
9
8
|
const KEY_FETCH_CACHE = 'nitro_token_refresh_fetch_cache';
|
|
10
9
|
// — Helpers —
|
|
11
|
-
|
|
12
10
|
/**
|
|
13
11
|
* Resolve a dot-notation path inside a parsed JSON object.
|
|
14
12
|
*/
|
|
@@ -45,7 +43,6 @@ export async function callRefreshEndpoint(config) {
|
|
|
45
43
|
}
|
|
46
44
|
return headers;
|
|
47
45
|
}
|
|
48
|
-
|
|
49
46
|
// Default: json
|
|
50
47
|
const json = await response.json();
|
|
51
48
|
if (config.mappings) {
|
|
@@ -102,4 +99,4 @@ export function getStoredTokenRefreshConfig(target) {
|
|
|
102
99
|
return null;
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
|
-
//# sourceMappingURL=tokenRefresh.js.
|
|
102
|
+
//# sourceMappingURL=tokenRefresh.js.mapmap
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeStorage","NativeStorageSingleton","KEY_WS","KEY_FETCH","KEY_WS_CACHE","KEY_FETCH_CACHE","getNestedField","obj","dotPath","parts","split","current","part","undefined","String","applyTemplate","template","value","replace","applyCompositeTemplate","values","_","key","callRefreshEndpoint","config","method","response","fetch","url","headers","body","ok","Error","status","statusText","responseType","text","textHeader","textTemplate","json","mappings","mapping","jsonPath","header","valueTemplate","compositeHeaders","comp","placeholder","Object","entries","paths","val","registerTokenRefresh","options","target","raw","JSON","stringify","setSecureString","clearTokenRefresh","t","removeSecureString","getStoredTokenRefreshConfig","getSecureString","parse"],"sourceRoot":"../../src","sources":["tokenRefresh.
|
|
2
|
-
AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["NativeStorage","NativeStorageSingleton","KEY_WS","KEY_FETCH","KEY_WS_CACHE","KEY_FETCH_CACHE","getNestedField","obj","dotPath","parts","split","current","part","undefined","String","applyTemplate","template","value","replace","applyCompositeTemplate","values","_","key","callRefreshEndpoint","config","method","response","fetch","url","headers","body","ok","Error","status","statusText","responseType","text","textHeader","textTemplate","json","mappings","mapping","jsonPath","header","valueTemplate","compositeHeaders","comp","placeholder","Object","entries","paths","val","registerTokenRefresh","options","target","raw","JSON","stringify","setSecureString","clearTokenRefresh","t","removeSecureString","getStoredTokenRefreshConfig","getSecureString","parse"],"sourceRoot":"../../src","sources":["tokenRefresh.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/utf8.js.map
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["_TextEncoder","_TextDecoder","NITRO_TEXT_DECODER_PKG","loadOptionalTextCodec","dynamicRequire","Function","TextEncoder","TextDecoder","stringToUTF8","str","console","warn","Uint8Array","encode","utf8ToString","bytes","decode"],"sourceRoot":"../../src","sources":["utf8.
|
|
1
|
+
{"version":3,"names":["_TextEncoder","_TextDecoder","NITRO_TEXT_DECODER_PKG","loadOptionalTextCodec","dynamicRequire","Function","TextEncoder","TextDecoder","stringToUTF8","str","console","warn","Uint8Array","encode","utf8ToString","bytes","decode"],"sourceRoot":"../../src","sources":["utf8.js"],"mappings":";;AAAA,IAAIA,YAAY;AAChB,IAAIC,YAAY;AAChB,MAAMC,sBAAsB,GAAG,iCAAiC;AAChE,SAASC,qBAAqBA,CAAA,EAAG;EAC/B,IAAI;IACF;IACA;IACA,MAAMC,cAAc,GAAG,IAAIC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IAClE,OAAOD,cAAc,CAACF,sBAAsB,CAAC;EAC/C,CAAC,CAAC,MAAM;IACN,OAAO,CAAC,CAAC;EACX;AACF;AACA,IAAI,OAAOI,WAAW,KAAK,WAAW,EAAE;EACtCN,YAAY,GAAGM,WAAW;AAC5B,CAAC,MAAM;EACLN,YAAY,GAAGG,qBAAqB,CAAC,CAAC,CAACG,WAAW;AACpD;AACA,IAAI,OAAOC,WAAW,KAAK,WAAW,EAAE;EACtCN,YAAY,GAAGM,WAAW;AAC5B,CAAC,MAAM;EACLN,YAAY,GAAGE,qBAAqB,CAAC,CAAC,CAACI,WAAW;AACpD;AACA,OAAO,SAASC,YAAYA,CAACC,GAAG,EAAE;EAChC,IAAI,CAACT,YAAY,EAAE;IACjBU,OAAO,CAACC,IAAI,CACV,mFACF,CAAC;IACD,OAAO,IAAIC,UAAU,CAAC,CAAC,CAAC;EAC1B;EACA,OAAO,IAAIZ,YAAY,CAAC,CAAC,CAACa,MAAM,CAACJ,GAAG,CAAC;AACvC;AACA,OAAO,SAASK,YAAYA,CAACC,KAAK,EAAE;EAClC,IAAI,CAACd,YAAY,EAAE;IACjBS,OAAO,CAACC,IAAI,CACV,mFACF,CAAC;IACD,OAAO,EAAE;EACX;EACA,OAAO,IAAIV,YAAY,CAAC,CAAC,CAACe,MAAM,CAACD,KAAK,CAAC;AACzC","ignoreList":[]}
|
|
2
|
+
]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAGV,WAAW,EACX,YAAY,IAAI,kBAAkB,EAEnC,MAAM,oBAAoB,CAAC;AAS5B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA8T/D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,kBAAkB,CA8CpB;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAGV,WAAW,EACX,YAAY,IAAI,kBAAkB,EAEnC,MAAM,oBAAoB,CAAC;AAS5B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA8T/D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,kBAAkB,CA8CpB;AAidD,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,GACA,OAAO,CAAC,QAAQ,CAAC,CAsCnB;AAGD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAKD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CA4Df;AAGD,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAGD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED,wBAAgB,uBAAuB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CASpE;AAID,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAK,CAAC,CAAC;AAcR,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,EACjC,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,CAAC,CAAC,CA6CZ;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EACV,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-fetch",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Awesome Fetch :)",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"@eslint/eslintrc": "^3.3.0",
|
|
77
77
|
"@eslint/js": "^9.22.0",
|
|
78
78
|
"@evilmartians/lefthook": "^1.5.0",
|
|
79
|
-
"@react-native/babel-preset": "0.
|
|
80
|
-
"@react-native/eslint-config": "^0.
|
|
79
|
+
"@react-native/babel-preset": "0.86.0",
|
|
80
|
+
"@react-native/eslint-config": "^0.86.0",
|
|
81
81
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
82
82
|
"@types/jest": "^29.5.5",
|
|
83
83
|
"@types/react": "^19.2.0",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"nitrogen": "^0.35.2",
|
|
93
93
|
"prettier": "^3.0.3",
|
|
94
94
|
"react": "19.2.3",
|
|
95
|
-
"react-native": "0.
|
|
95
|
+
"react-native": "0.86.0",
|
|
96
96
|
"react-native-builder-bob": "^0.40.13",
|
|
97
97
|
"react-native-nitro-modules": "^0.35.2",
|
|
98
98
|
"release-it": "^17.10.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"react": "*",
|
|
104
104
|
"react-native": "*",
|
|
105
105
|
"react-native-nitro-modules": "^0.35.2",
|
|
106
|
-
"react-native-worklets": "
|
|
106
|
+
"react-native-worklets": ">=0.8.0"
|
|
107
107
|
},
|
|
108
108
|
"peerDependenciesMeta": {
|
|
109
109
|
"react-native-worklets": {
|
package/src/fetch.js
CHANGED
|
@@ -364,6 +364,147 @@ async function resolveBlobBody(init) {
|
|
|
364
364
|
}
|
|
365
365
|
return init;
|
|
366
366
|
}
|
|
367
|
+
// http(s) -> native client; anything else is a local resource (hot path).
|
|
368
|
+
function isHttpUrl(url) {
|
|
369
|
+
if (url.startsWith('http://') || url.startsWith('https://')) return true;
|
|
370
|
+
const c = url.charCodeAt(0);
|
|
371
|
+
if (c !== 104 && c !== 72) return false; // not 'h'/'H'
|
|
372
|
+
return /^https?:/i.test(url);
|
|
373
|
+
}
|
|
374
|
+
function getUrlString(input) {
|
|
375
|
+
if (typeof input === 'string') return input;
|
|
376
|
+
if (input instanceof URL) return input.toString();
|
|
377
|
+
const u = input?.url;
|
|
378
|
+
return typeof u === 'string' ? u : String(input);
|
|
379
|
+
}
|
|
380
|
+
function base64ToBytes(b64) {
|
|
381
|
+
const decode = globalThis.atob;
|
|
382
|
+
if (typeof decode === 'function') {
|
|
383
|
+
const bin = decode(b64);
|
|
384
|
+
const out = new Uint8Array(bin.length);
|
|
385
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
386
|
+
return out;
|
|
387
|
+
}
|
|
388
|
+
// base64 fallback for runtimes without a global atob.
|
|
389
|
+
/* eslint-disable no-bitwise */
|
|
390
|
+
const chars =
|
|
391
|
+
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
392
|
+
const clean = b64.replace(/[^A-Za-z0-9+/]/g, '');
|
|
393
|
+
const out = new Uint8Array(Math.floor((clean.length * 3) / 4));
|
|
394
|
+
let p = 0;
|
|
395
|
+
let buf = 0;
|
|
396
|
+
let bits = 0;
|
|
397
|
+
for (let i = 0; i < clean.length; i++) {
|
|
398
|
+
buf = (buf << 6) | chars.indexOf(clean[i]);
|
|
399
|
+
bits += 6;
|
|
400
|
+
if (bits >= 8) {
|
|
401
|
+
bits -= 8;
|
|
402
|
+
out[p++] = (buf >> bits) & 0xff;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return out;
|
|
406
|
+
/* eslint-enable no-bitwise */
|
|
407
|
+
}
|
|
408
|
+
// Cached: our nitro-text-decoder if the app bundles it (aliased require keeps it optional, not a dep), else a global TextDecoder.
|
|
409
|
+
let _decoder;
|
|
410
|
+
function resolveTextDecoder() {
|
|
411
|
+
if (_decoder !== undefined) return _decoder;
|
|
412
|
+
try {
|
|
413
|
+
const dynamicRequire = require;
|
|
414
|
+
const mod = dynamicRequire('react-native-nitro-text-decoder');
|
|
415
|
+
if (mod && typeof mod.TextDecoder === 'function') {
|
|
416
|
+
_decoder = new mod.TextDecoder('utf-8', { fatal: true });
|
|
417
|
+
return _decoder;
|
|
418
|
+
}
|
|
419
|
+
} catch {
|
|
420
|
+
// optional, not bundled
|
|
421
|
+
}
|
|
422
|
+
const GlobalTextDecoder = globalThis.TextDecoder;
|
|
423
|
+
if (typeof GlobalTextDecoder === 'function') {
|
|
424
|
+
_decoder = new GlobalTextDecoder('utf-8', { fatal: true });
|
|
425
|
+
return _decoder;
|
|
426
|
+
}
|
|
427
|
+
_decoder = null;
|
|
428
|
+
return _decoder;
|
|
429
|
+
}
|
|
430
|
+
// data: text via a TextDecoder; null (bytes-only) + a one-time warn if none.
|
|
431
|
+
let _warnedNoTextDecoder = false;
|
|
432
|
+
function decodeUtf8(bytes) {
|
|
433
|
+
const decoder = resolveTextDecoder();
|
|
434
|
+
if (decoder) {
|
|
435
|
+
try {
|
|
436
|
+
return decoder.decode(bytes);
|
|
437
|
+
} catch {
|
|
438
|
+
return null; // invalid UTF-8 -> keep bytes only
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
if (!_warnedNoTextDecoder) {
|
|
442
|
+
_warnedNoTextDecoder = true;
|
|
443
|
+
console.warn(
|
|
444
|
+
'[nitro-fetch] Reading a data: URL as text needs a TextDecoder. Install ' +
|
|
445
|
+
'react-native-nitro-text-decoder or expose a global TextDecoder. The ' +
|
|
446
|
+
'body is still available via response.arrayBuffer()/bytes().'
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
return null;
|
|
450
|
+
}
|
|
451
|
+
// Decode a data: URL into a synthetic 200 response, entirely in JS.
|
|
452
|
+
function decodeDataUrl(url) {
|
|
453
|
+
const comma = url.indexOf(',');
|
|
454
|
+
if (comma < 0) throw new TypeError('Failed to fetch: invalid data: URL');
|
|
455
|
+
const meta = url.slice(5, comma); // strip leading "data:"
|
|
456
|
+
const rawData = url.slice(comma + 1);
|
|
457
|
+
const isBase64 = /;base64\s*$/i.test(meta);
|
|
458
|
+
const mediaType =
|
|
459
|
+
(isBase64 ? meta.replace(/;base64\s*$/i, '') : meta).trim() ||
|
|
460
|
+
'text/plain;charset=US-ASCII';
|
|
461
|
+
let bodyString;
|
|
462
|
+
let bodyBytes;
|
|
463
|
+
let length;
|
|
464
|
+
if (isBase64) {
|
|
465
|
+
const bytes = base64ToBytes(rawData);
|
|
466
|
+
length = bytes.byteLength;
|
|
467
|
+
// bytes for arrayBuffer/bytes; string for text/json when a decoder exists.
|
|
468
|
+
bodyBytes = bytes.buffer;
|
|
469
|
+
const decoded = decodeUtf8(bytes);
|
|
470
|
+
if (decoded != null) bodyString = decoded;
|
|
471
|
+
} else {
|
|
472
|
+
bodyString = decodeURIComponent(rawData);
|
|
473
|
+
length =
|
|
474
|
+
typeof TextEncoder !== 'undefined'
|
|
475
|
+
? new TextEncoder().encode(bodyString).length
|
|
476
|
+
: bodyString.length;
|
|
477
|
+
}
|
|
478
|
+
return {
|
|
479
|
+
url,
|
|
480
|
+
status: 200,
|
|
481
|
+
statusText: 'OK',
|
|
482
|
+
ok: true,
|
|
483
|
+
redirected: false,
|
|
484
|
+
headers: [
|
|
485
|
+
{ key: 'Content-Type', value: mediaType },
|
|
486
|
+
{ key: 'Content-Length', value: String(length) },
|
|
487
|
+
],
|
|
488
|
+
bodyString,
|
|
489
|
+
bodyBytes,
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
// Non-http(s): decode data: in JS, reject blob:, read file/content/path natively.
|
|
493
|
+
async function fetchLocalResource(req) {
|
|
494
|
+
const url = req.url;
|
|
495
|
+
if (url.startsWith('data:')) return decodeDataUrl(url);
|
|
496
|
+
if (url.startsWith('blob:')) {
|
|
497
|
+
throw new TypeError(
|
|
498
|
+
'nitro-fetch cannot read blob: URLs (the React Native blob registry is not ' +
|
|
499
|
+
'reachable from native). Read blobs with the platform fetch/FileReader instead.'
|
|
500
|
+
);
|
|
501
|
+
}
|
|
502
|
+
ensureClient();
|
|
503
|
+
if (!client || typeof client.request !== 'function') {
|
|
504
|
+
throw new Error('NitroFetch client not available');
|
|
505
|
+
}
|
|
506
|
+
return client.request(req);
|
|
507
|
+
}
|
|
367
508
|
async function nitroFetchRaw(input, init) {
|
|
368
509
|
const signal = init?.signal;
|
|
369
510
|
// Fast-abort: reject synchronously before any bridge work.
|
|
@@ -395,6 +536,10 @@ async function nitroFetchRaw(input, init) {
|
|
|
395
536
|
}; // bleee
|
|
396
537
|
}
|
|
397
538
|
const req = buildNitroRequest(input, init);
|
|
539
|
+
// Route non-http(s) (data:/file://content://scheme-less) off the HTTP client.
|
|
540
|
+
if (!isHttpUrl(req.url)) {
|
|
541
|
+
return fetchLocalResource(req);
|
|
542
|
+
}
|
|
398
543
|
// Inspector: record start (zero cost when disabled — single boolean check)
|
|
399
544
|
let inspectorId;
|
|
400
545
|
if (NetworkInspector.isEnabled()) {
|
|
@@ -581,7 +726,8 @@ export async function nitroFetch(input, init) {
|
|
|
581
726
|
cache: init?.cache ?? input.cache,
|
|
582
727
|
};
|
|
583
728
|
}
|
|
584
|
-
|
|
729
|
+
// Streaming is http(s)-only; local URLs fall through to nitroFetchRaw (check runs only when streaming).
|
|
730
|
+
if (init?.stream === true && isHttpUrl(getUrlString(input))) {
|
|
585
731
|
return nitroStreamFetch(input, init);
|
|
586
732
|
}
|
|
587
733
|
const redirectOption = init?.redirect ?? 'follow';
|
package/src/fetch.ts
CHANGED
|
@@ -438,6 +438,169 @@ async function resolveBlobBody(
|
|
|
438
438
|
return init;
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
+
// http(s) -> native client; anything else is a local resource (hot path).
|
|
442
|
+
function isHttpUrl(url: string): boolean {
|
|
443
|
+
if (url.startsWith('http://') || url.startsWith('https://')) return true;
|
|
444
|
+
const c = url.charCodeAt(0);
|
|
445
|
+
if (c !== 104 && c !== 72) return false; // not 'h'/'H'
|
|
446
|
+
return /^https?:/i.test(url);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
function getUrlString(input: RequestInfo | URL): string {
|
|
450
|
+
if (typeof input === 'string') return input;
|
|
451
|
+
if (input instanceof URL) return input.toString();
|
|
452
|
+
const u = (input as { url?: unknown } | null)?.url;
|
|
453
|
+
return typeof u === 'string' ? u : String(input);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
function base64ToBytes(b64: string): Uint8Array {
|
|
457
|
+
const decode = (globalThis as { atob?: (s: string) => string }).atob;
|
|
458
|
+
if (typeof decode === 'function') {
|
|
459
|
+
const bin = decode(b64);
|
|
460
|
+
const out = new Uint8Array(bin.length);
|
|
461
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
462
|
+
return out;
|
|
463
|
+
}
|
|
464
|
+
// base64 fallback for runtimes without a global atob.
|
|
465
|
+
/* eslint-disable no-bitwise */
|
|
466
|
+
const chars =
|
|
467
|
+
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
468
|
+
const clean = b64.replace(/[^A-Za-z0-9+/]/g, '');
|
|
469
|
+
const out = new Uint8Array(Math.floor((clean.length * 3) / 4));
|
|
470
|
+
let p = 0;
|
|
471
|
+
let buf = 0;
|
|
472
|
+
let bits = 0;
|
|
473
|
+
for (let i = 0; i < clean.length; i++) {
|
|
474
|
+
buf = (buf << 6) | chars.indexOf(clean[i]!);
|
|
475
|
+
bits += 6;
|
|
476
|
+
if (bits >= 8) {
|
|
477
|
+
bits -= 8;
|
|
478
|
+
out[p++] = (buf >> bits) & 0xff;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
return out;
|
|
482
|
+
/* eslint-enable no-bitwise */
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
type MinimalTextDecoder = {
|
|
486
|
+
decode(input: ArrayBufferView): string;
|
|
487
|
+
};
|
|
488
|
+
type TextDecoderCtor = new (
|
|
489
|
+
label?: string,
|
|
490
|
+
options?: { fatal?: boolean }
|
|
491
|
+
) => MinimalTextDecoder;
|
|
492
|
+
|
|
493
|
+
// Cached: our nitro-text-decoder if the app bundles it (aliased require keeps it optional, not a dep), else a global TextDecoder.
|
|
494
|
+
let _decoder: MinimalTextDecoder | null | undefined;
|
|
495
|
+
function resolveTextDecoder(): MinimalTextDecoder | null {
|
|
496
|
+
if (_decoder !== undefined) return _decoder;
|
|
497
|
+
try {
|
|
498
|
+
const dynamicRequire = require;
|
|
499
|
+
const mod = dynamicRequire('react-native-nitro-text-decoder') as {
|
|
500
|
+
TextDecoder?: TextDecoderCtor;
|
|
501
|
+
};
|
|
502
|
+
if (mod && typeof mod.TextDecoder === 'function') {
|
|
503
|
+
_decoder = new mod.TextDecoder('utf-8', { fatal: true });
|
|
504
|
+
return _decoder;
|
|
505
|
+
}
|
|
506
|
+
} catch {
|
|
507
|
+
// optional, not bundled
|
|
508
|
+
}
|
|
509
|
+
const GlobalTextDecoder = (globalThis as { TextDecoder?: TextDecoderCtor })
|
|
510
|
+
.TextDecoder;
|
|
511
|
+
if (typeof GlobalTextDecoder === 'function') {
|
|
512
|
+
_decoder = new GlobalTextDecoder('utf-8', { fatal: true });
|
|
513
|
+
return _decoder;
|
|
514
|
+
}
|
|
515
|
+
_decoder = null;
|
|
516
|
+
return _decoder;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
// data: text via a TextDecoder; null (bytes-only) + a one-time warn if none.
|
|
520
|
+
let _warnedNoTextDecoder = false;
|
|
521
|
+
function decodeUtf8(bytes: Uint8Array): string | null {
|
|
522
|
+
const decoder = resolveTextDecoder();
|
|
523
|
+
if (decoder) {
|
|
524
|
+
try {
|
|
525
|
+
return decoder.decode(bytes);
|
|
526
|
+
} catch {
|
|
527
|
+
return null; // invalid UTF-8 -> keep bytes only
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
if (!_warnedNoTextDecoder) {
|
|
531
|
+
_warnedNoTextDecoder = true;
|
|
532
|
+
console.warn(
|
|
533
|
+
'[nitro-fetch] Reading a data: URL as text needs a TextDecoder. Install ' +
|
|
534
|
+
'react-native-nitro-text-decoder or expose a global TextDecoder. The ' +
|
|
535
|
+
'body is still available via response.arrayBuffer()/bytes().'
|
|
536
|
+
);
|
|
537
|
+
}
|
|
538
|
+
return null;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
// Decode a data: URL into a synthetic 200 response, entirely in JS.
|
|
542
|
+
function decodeDataUrl(url: string): NitroResponseNative {
|
|
543
|
+
const comma = url.indexOf(',');
|
|
544
|
+
if (comma < 0) throw new TypeError('Failed to fetch: invalid data: URL');
|
|
545
|
+
const meta = url.slice(5, comma); // strip leading "data:"
|
|
546
|
+
const rawData = url.slice(comma + 1);
|
|
547
|
+
const isBase64 = /;base64\s*$/i.test(meta);
|
|
548
|
+
const mediaType =
|
|
549
|
+
(isBase64 ? meta.replace(/;base64\s*$/i, '') : meta).trim() ||
|
|
550
|
+
'text/plain;charset=US-ASCII';
|
|
551
|
+
|
|
552
|
+
let bodyString: string | undefined;
|
|
553
|
+
let bodyBytes: ArrayBuffer | undefined;
|
|
554
|
+
let length: number;
|
|
555
|
+
if (isBase64) {
|
|
556
|
+
const bytes = base64ToBytes(rawData);
|
|
557
|
+
length = bytes.byteLength;
|
|
558
|
+
// bytes for arrayBuffer/bytes; string for text/json when a decoder exists.
|
|
559
|
+
bodyBytes = bytes.buffer as ArrayBuffer;
|
|
560
|
+
const decoded = decodeUtf8(bytes);
|
|
561
|
+
if (decoded != null) bodyString = decoded;
|
|
562
|
+
} else {
|
|
563
|
+
bodyString = decodeURIComponent(rawData);
|
|
564
|
+
length =
|
|
565
|
+
typeof TextEncoder !== 'undefined'
|
|
566
|
+
? new TextEncoder().encode(bodyString).length
|
|
567
|
+
: bodyString.length;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
return {
|
|
571
|
+
url,
|
|
572
|
+
status: 200,
|
|
573
|
+
statusText: 'OK',
|
|
574
|
+
ok: true,
|
|
575
|
+
redirected: false,
|
|
576
|
+
headers: [
|
|
577
|
+
{ key: 'Content-Type', value: mediaType },
|
|
578
|
+
{ key: 'Content-Length', value: String(length) },
|
|
579
|
+
],
|
|
580
|
+
bodyString,
|
|
581
|
+
bodyBytes,
|
|
582
|
+
} as NitroResponseNative;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// Non-http(s): decode data: in JS, reject blob:, read file/content/path natively.
|
|
586
|
+
async function fetchLocalResource(
|
|
587
|
+
req: NitroRequestNative
|
|
588
|
+
): Promise<NitroResponseNative> {
|
|
589
|
+
const url = req.url;
|
|
590
|
+
if (url.startsWith('data:')) return decodeDataUrl(url);
|
|
591
|
+
if (url.startsWith('blob:')) {
|
|
592
|
+
throw new TypeError(
|
|
593
|
+
'nitro-fetch cannot read blob: URLs (the React Native blob registry is not ' +
|
|
594
|
+
'reachable from native). Read blobs with the platform fetch/FileReader instead.'
|
|
595
|
+
);
|
|
596
|
+
}
|
|
597
|
+
ensureClient();
|
|
598
|
+
if (!client || typeof client.request !== 'function') {
|
|
599
|
+
throw new Error('NitroFetch client not available');
|
|
600
|
+
}
|
|
601
|
+
return client.request(req);
|
|
602
|
+
}
|
|
603
|
+
|
|
441
604
|
async function nitroFetchRaw(
|
|
442
605
|
input: RequestInfo | URL,
|
|
443
606
|
init?: RequestInit
|
|
@@ -478,6 +641,11 @@ async function nitroFetchRaw(
|
|
|
478
641
|
|
|
479
642
|
const req = buildNitroRequest(input, init);
|
|
480
643
|
|
|
644
|
+
// Route non-http(s) (data:/file://content://scheme-less) off the HTTP client.
|
|
645
|
+
if (!isHttpUrl(req.url)) {
|
|
646
|
+
return fetchLocalResource(req);
|
|
647
|
+
}
|
|
648
|
+
|
|
481
649
|
// Inspector: record start (zero cost when disabled — single boolean check)
|
|
482
650
|
let inspectorId: string | undefined;
|
|
483
651
|
if (NetworkInspector.isEnabled()) {
|
|
@@ -696,7 +864,8 @@ export async function nitroFetch(
|
|
|
696
864
|
} as any;
|
|
697
865
|
}
|
|
698
866
|
|
|
699
|
-
|
|
867
|
+
// Streaming is http(s)-only; local URLs fall through to nitroFetchRaw (check runs only when streaming).
|
|
868
|
+
if ((init as any)?.stream === true && isHttpUrl(getUrlString(input))) {
|
|
700
869
|
return nitroStreamFetch(input, init);
|
|
701
870
|
}
|
|
702
871
|
|