react-native-nitro-fetch 0.1.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.
Files changed (90) hide show
  1. package/LICENSE +20 -0
  2. package/NitroFetch.podspec +30 -0
  3. package/README.md +134 -0
  4. package/android/CMakeLists.txt +70 -0
  5. package/android/build.gradle +131 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +2 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +91 -0
  10. package/android/src/main/java/com/margelo/nitro/nitrofetch/FetchCache.kt +48 -0
  11. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetch.kt +94 -0
  12. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +256 -0
  13. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchPackage.kt +22 -0
  14. package/ios/FetchCache.swift +56 -0
  15. package/ios/NitroAutoPrefetcher.swift +81 -0
  16. package/ios/NitroBootstrap.mm +27 -0
  17. package/ios/NitroFetch.swift +9 -0
  18. package/ios/NitroFetchClient.swift +205 -0
  19. package/lib/module/NitroFetch.nitro.js +7 -0
  20. package/lib/module/NitroFetch.nitro.js.map +1 -0
  21. package/lib/module/NitroInstances.js +6 -0
  22. package/lib/module/NitroInstances.js.map +1 -0
  23. package/lib/module/fetch.js +441 -0
  24. package/lib/module/fetch.js.map +1 -0
  25. package/lib/module/index.js +12 -0
  26. package/lib/module/index.js.map +1 -0
  27. package/lib/module/package.json +1 -0
  28. package/lib/typescript/package.json +1 -0
  29. package/lib/typescript/src/NitroFetch.nitro.d.ts +39 -0
  30. package/lib/typescript/src/NitroFetch.nitro.d.ts.map +1 -0
  31. package/lib/typescript/src/NitroInstances.d.ts +3 -0
  32. package/lib/typescript/src/NitroInstances.d.ts.map +1 -0
  33. package/lib/typescript/src/fetch.d.ts +26 -0
  34. package/lib/typescript/src/fetch.d.ts.map +1 -0
  35. package/lib/typescript/src/index.d.ts +6 -0
  36. package/lib/typescript/src/index.d.ts.map +1 -0
  37. package/nitro.json +21 -0
  38. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.cpp +96 -0
  39. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.hpp +65 -0
  40. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.cpp +49 -0
  41. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.hpp +64 -0
  42. package/nitrogen/generated/android/c++/JNitroHeader.hpp +57 -0
  43. package/nitrogen/generated/android/c++/JNitroRequest.hpp +103 -0
  44. package/nitrogen/generated/android/c++/JNitroRequestMethod.hpp +74 -0
  45. package/nitrogen/generated/android/c++/JNitroResponse.hpp +105 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec.kt +56 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchSpec.kt +52 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroHeader.kt +32 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequest.kt +47 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequestMethod.kt +26 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroResponse.kt +50 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/nitrofetchOnLoad.kt +35 -0
  53. package/nitrogen/generated/android/nitrofetch+autolinking.cmake +80 -0
  54. package/nitrogen/generated/android/nitrofetch+autolinking.gradle +27 -0
  55. package/nitrogen/generated/android/nitrofetchOnLoad.cpp +54 -0
  56. package/nitrogen/generated/android/nitrofetchOnLoad.hpp +25 -0
  57. package/nitrogen/generated/ios/NitroFetch+autolinking.rb +60 -0
  58. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.cpp +73 -0
  59. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.hpp +298 -0
  60. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Umbrella.hpp +67 -0
  61. package/nitrogen/generated/ios/NitroFetchAutolinking.mm +41 -0
  62. package/nitrogen/generated/ios/NitroFetchAutolinking.swift +40 -0
  63. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.cpp +11 -0
  64. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.hpp +101 -0
  65. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.cpp +11 -0
  66. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.hpp +75 -0
  67. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  68. package/nitrogen/generated/ios/swift/Func_void_NitroResponse.swift +47 -0
  69. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  70. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec.swift +50 -0
  71. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec_cxx.swift +149 -0
  72. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec.swift +49 -0
  73. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec_cxx.swift +126 -0
  74. package/nitrogen/generated/ios/swift/NitroHeader.swift +46 -0
  75. package/nitrogen/generated/ios/swift/NitroRequest.swift +199 -0
  76. package/nitrogen/generated/ios/swift/NitroRequestMethod.swift +60 -0
  77. package/nitrogen/generated/ios/swift/NitroResponse.swift +155 -0
  78. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.cpp +22 -0
  79. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.hpp +68 -0
  80. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.cpp +21 -0
  81. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.hpp +64 -0
  82. package/nitrogen/generated/shared/c++/NitroHeader.hpp +71 -0
  83. package/nitrogen/generated/shared/c++/NitroRequest.hpp +101 -0
  84. package/nitrogen/generated/shared/c++/NitroRequestMethod.hpp +96 -0
  85. package/nitrogen/generated/shared/c++/NitroResponse.hpp +102 -0
  86. package/package.json +177 -0
  87. package/src/NitroFetch.nitro.ts +57 -0
  88. package/src/NitroInstances.ts +8 -0
  89. package/src/fetch.ts +426 -0
  90. package/src/index.tsx +17 -0
@@ -0,0 +1,441 @@
1
+ "use strict";
2
+
3
+ import { NitroFetch as NitroFetchSingleton } from "./NitroInstances.js";
4
+
5
+ // No base64: pass strings/ArrayBuffers directly
6
+
7
+ function headersToPairs(headers) {
8
+ 'worklet';
9
+
10
+ if (!headers) return undefined;
11
+ const pairs = [];
12
+ if (headers instanceof Headers) {
13
+ headers.forEach((v, k) => pairs.push({
14
+ key: k,
15
+ value: v
16
+ }));
17
+ return pairs;
18
+ }
19
+ if (Array.isArray(headers)) {
20
+ // Convert tuple pairs to objects if needed
21
+ for (const entry of headers) {
22
+ if (Array.isArray(entry) && entry.length >= 2) {
23
+ pairs.push({
24
+ key: String(entry[0]),
25
+ value: String(entry[1])
26
+ });
27
+ } else if (entry && typeof entry === 'object' && 'key' in entry && 'value' in entry) {
28
+ pairs.push(entry);
29
+ }
30
+ }
31
+ return pairs;
32
+ }
33
+ // Record<string, string>
34
+ for (const [k, v] of Object.entries(headers)) {
35
+ pairs.push({
36
+ key: k,
37
+ value: String(v)
38
+ });
39
+ }
40
+ return pairs;
41
+ }
42
+ function normalizeBody(body) {
43
+ 'worklet';
44
+
45
+ if (body == null) return undefined;
46
+ if (typeof body === 'string') return {
47
+ bodyString: body
48
+ };
49
+ if (body instanceof URLSearchParams) return {
50
+ bodyString: body.toString()
51
+ };
52
+ if (typeof ArrayBuffer !== 'undefined' && body instanceof ArrayBuffer) return {
53
+ bodyBytes: body
54
+ };
55
+ if (ArrayBuffer.isView(body)) {
56
+ const view = body;
57
+ // Pass a copy/slice of the underlying bytes without base64
58
+ //@ts-ignore
59
+ return {
60
+ bodyBytes: view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength)
61
+ };
62
+ }
63
+ // TODO: Blob/FormData support can be added later
64
+ throw new Error('Unsupported body type for nitro fetch');
65
+ }
66
+
67
+ // @ts-ignore
68
+ function pairsToHeaders(pairs) {
69
+ 'worklet';
70
+
71
+ const h = new Headers();
72
+ for (const {
73
+ key,
74
+ value
75
+ } of pairs) h.append(key, value);
76
+ return h;
77
+ }
78
+ const NitroFetchHybrid = NitroFetchSingleton;
79
+ let client;
80
+ function ensureClient() {
81
+ if (client) return client;
82
+ try {
83
+ client = NitroFetchHybrid.createClient();
84
+ } catch (err) {
85
+ console.error('Failed to create NitroFetch client', err);
86
+ // native not ready; keep undefined
87
+ }
88
+ return client;
89
+ }
90
+ function buildNitroRequest(input, init) {
91
+ 'worklet';
92
+
93
+ let url;
94
+ let method;
95
+ let headersInit;
96
+ let body;
97
+ if (typeof input === 'string' || input instanceof URL) {
98
+ url = String(input);
99
+ method = init?.method;
100
+ headersInit = init?.headers;
101
+ body = init?.body ?? null;
102
+ } else {
103
+ // Request object
104
+ url = input.url;
105
+ method = input.method;
106
+ headersInit = input.headers;
107
+ // Clone body if needed – Request objects in RN typically allow direct access
108
+ body = init?.body ?? null;
109
+ }
110
+ const headers = headersToPairs(headersInit);
111
+ const normalized = normalizeBody(body);
112
+ return {
113
+ url,
114
+ method: method?.toUpperCase() ?? 'GET',
115
+ headers,
116
+ bodyString: normalized?.bodyString,
117
+ bodyBytes: normalized?.bodyBytes,
118
+ followRedirects: true
119
+ };
120
+ }
121
+ async function nitroFetchRaw(input, init) {
122
+ 'worklet';
123
+
124
+ const hasNative = typeof NitroFetchHybrid?.createClient === 'function';
125
+ if (!hasNative) {
126
+ // Fallback path not supported for raw; use global fetch and synthesize minimal shape
127
+ // @ts-ignore: global fetch exists in RN
128
+ const res = await fetch(input, init);
129
+ const url = res.url ?? String(input);
130
+ const bytes = await res.arrayBuffer();
131
+ const headers = [];
132
+ res.headers.forEach((v, k) => headers.push({
133
+ key: k,
134
+ value: v
135
+ }));
136
+ return {
137
+ url,
138
+ status: res.status,
139
+ statusText: res.statusText,
140
+ ok: res.ok,
141
+ redirected: res.redirected ?? false,
142
+ headers,
143
+ bodyBytes: bytes,
144
+ bodyString: undefined
145
+ };
146
+ }
147
+ const req = buildNitroRequest(input, init);
148
+ ensureClient();
149
+ if (!client || typeof client.request !== 'function') throw new Error('NitroFetch client not available');
150
+ const res = await client.request(req);
151
+ return res;
152
+ }
153
+ export async function nitroFetch(input, init) {
154
+ 'worklet';
155
+
156
+ // If native implementation is not present yet, fallback to global fetch
157
+ const hasNative = typeof NitroFetchHybrid?.createClient === 'function';
158
+ if (!hasNative) {
159
+ // @ts-ignore: global fetch exists in RN
160
+ return fetch(input, init);
161
+ }
162
+ const res = await nitroFetchRaw(input, init);
163
+ const bytes = res.bodyBytes ? new Uint8Array(res.bodyBytes) : res.bodyString != null ? new TextEncoder().encode(res.bodyString) : new Uint8Array();
164
+
165
+ // If Response is available, construct a real Response object for compatibility
166
+ if (typeof Response !== 'undefined') {
167
+ const respInit = {
168
+ status: res.status,
169
+ statusText: res.statusText,
170
+ headers: res.headers.reduce((acc, {
171
+ key,
172
+ value
173
+ }) => {
174
+ acc[key] = value;
175
+ return acc;
176
+ }, {})
177
+ };
178
+ // Prefer native bytes if available
179
+ return new Response(res.bodyBytes ?? bytes, respInit);
180
+ }
181
+
182
+ // Fallback lightweight Response-like object (minimal methods)
183
+ const headersObj = res.headers.reduce((acc, {
184
+ key,
185
+ value
186
+ }) => {
187
+ acc[key] = value;
188
+ return acc;
189
+ }, {});
190
+ const light = {
191
+ url: res.url,
192
+ ok: res.ok,
193
+ status: res.status,
194
+ statusText: res.statusText,
195
+ redirected: res.redirected,
196
+ headers: headersObj,
197
+ arrayBuffer: async () => res.bodyBytes ?? bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength),
198
+ text: async () => res.bodyString ?? new TextDecoder().decode(bytes),
199
+ json: async () => JSON.parse(res.bodyString ?? new TextDecoder().decode(bytes))
200
+ };
201
+ return light;
202
+ }
203
+
204
+ // Start a native prefetch. Requires a `prefetchKey` header on the request.
205
+ export async function prefetch(input, init) {
206
+ // If native implementation is not present yet, do nothing
207
+ const hasNative = typeof NitroFetchHybrid?.createClient === 'function';
208
+ if (!hasNative) return;
209
+
210
+ // Build NitroRequest and ensure prefetchKey header exists
211
+ const req = buildNitroRequest(input, init);
212
+ const hasKey = req.headers?.some(h => h.key.toLowerCase() === 'prefetchkey') ?? false;
213
+ // Also support passing prefetchKey via non-standard field on init
214
+ const fromInit = init?.prefetchKey;
215
+ if (!hasKey && fromInit) {
216
+ req.headers = (req.headers ?? []).concat([{
217
+ key: 'prefetchKey',
218
+ value: fromInit
219
+ }]);
220
+ }
221
+ const finalHasKey = req.headers?.some(h => h.key.toLowerCase() === 'prefetchkey');
222
+ if (!finalHasKey) {
223
+ throw new Error('prefetch requires a \"prefetchKey\" header');
224
+ }
225
+
226
+ // Ensure client and call native prefetch
227
+ ensureClient();
228
+ if (!client || typeof client.prefetch !== 'function') return;
229
+ await client.prefetch(req);
230
+ }
231
+
232
+ // Persist a request to MMKV so native can prefetch it on app start.
233
+ // Stores an array of entries under the same key Android reads: "nitrofetch_autoprefetch_queue".
234
+ export async function prefetchOnAppStart(input, init) {
235
+ // Resolve request and prefetchKey
236
+ const req = buildNitroRequest(input, init);
237
+ const fromHeader = req.headers?.find(h => h.key.toLowerCase() === 'prefetchkey')?.value;
238
+ const fromInit = init?.prefetchKey;
239
+ const prefetchKey = fromHeader ?? fromInit;
240
+ if (!prefetchKey) {
241
+ throw new Error('prefetchOnAppStart requires a "prefetchKey" (header or init.prefetchKey)');
242
+ }
243
+
244
+ // Convert headers to a plain object for storage
245
+ const headersObj = (req.headers ?? []).reduce((acc, {
246
+ key,
247
+ value
248
+ }) => {
249
+ acc[String(key)] = String(value);
250
+ return acc;
251
+ }, {});
252
+ const entry = {
253
+ url: req.url,
254
+ prefetchKey,
255
+ headers: headersObj
256
+ };
257
+
258
+ // Write or append to MMKV queue
259
+ try {
260
+ // Dynamically require to keep it optional for consumers
261
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
262
+ const {
263
+ MMKV
264
+ } = require('react-native-mmkv');
265
+ const storage = new MMKV(); // default instance matches Android's defaultMMKV
266
+ const KEY = 'nitrofetch_autoprefetch_queue';
267
+ let arr = [];
268
+ try {
269
+ const raw = storage.getString(KEY);
270
+ if (raw) arr = JSON.parse(raw);
271
+ if (!Array.isArray(arr)) arr = [];
272
+ } catch {
273
+ arr = [];
274
+ }
275
+ arr.push(entry);
276
+ storage.set(KEY, JSON.stringify(arr));
277
+ } catch (e) {
278
+ console.warn('react-native-mmkv not available; prefetchOnAppStart is a no-op', e);
279
+ }
280
+ }
281
+
282
+ // Remove one entry (by prefetchKey) from the auto-prefetch queue in MMKV.
283
+ export async function removeFromAutoPrefetch(prefetchKey) {
284
+ // No-op on iOS
285
+ try {
286
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
287
+ const {
288
+ MMKV
289
+ } = require('react-native-mmkv');
290
+ const storage = new MMKV();
291
+ const KEY = 'nitrofetch_autoprefetch_queue';
292
+ let arr = [];
293
+ try {
294
+ const raw = storage.getString(KEY);
295
+ if (raw) arr = JSON.parse(raw);
296
+ if (!Array.isArray(arr)) arr = [];
297
+ } catch {
298
+ arr = [];
299
+ }
300
+ const next = arr.filter(e => e && e.prefetchKey !== prefetchKey);
301
+ if (next.length === 0) {
302
+ if (typeof storage.delete === 'function') {
303
+ storage.delete(KEY);
304
+ } else {
305
+ storage.set(KEY, JSON.stringify([]));
306
+ }
307
+ } else if (next.length !== arr.length) {
308
+ storage.set(KEY, JSON.stringify(next));
309
+ }
310
+ } catch (e) {
311
+ console.warn('react-native-mmkv not available; removeFromAutoPrefetch is a no-op', e);
312
+ }
313
+ }
314
+
315
+ // Remove all entries from the auto-prefetch queue in MMKV.
316
+ export async function removeAllFromAutoprefetch() {
317
+ try {
318
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
319
+ const {
320
+ MMKV
321
+ } = require('react-native-mmkv');
322
+ const storage = new MMKV();
323
+ const KEY = 'nitrofetch_autoprefetch_queue';
324
+ if (typeof storage.delete === 'function') {
325
+ storage.delete(KEY);
326
+ } else {
327
+ storage.set(KEY, JSON.stringify([]));
328
+ }
329
+ } catch (e) {
330
+ console.warn('react-native-mmkv not available; removeAllFromAutoprefetch is a no-op', e);
331
+ }
332
+ }
333
+
334
+ // Optional off-thread processing using react-native-worklets-core
335
+
336
+ let nitroRuntime;
337
+ let WorkletsRef;
338
+ function ensureWorkletRuntime(name = 'nitro-fetch') {
339
+ console.log('ensuring worklet runtime');
340
+ try {
341
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
342
+ const {
343
+ Worklets
344
+ } = require('react-native-worklets-core');
345
+ nitroRuntime = nitroRuntime ?? Worklets.createRuntime(name);
346
+ console.log('nitroRuntime:', !!nitroRuntime);
347
+ return nitroRuntime;
348
+ } catch {
349
+ console.warn('react-native-worklets-core not available');
350
+ return undefined;
351
+ }
352
+ }
353
+ function getWorklets() {
354
+ try {
355
+ if (WorkletsRef) return WorkletsRef;
356
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
357
+ const {
358
+ Worklets
359
+ } = require('react-native-worklets-core');
360
+ WorkletsRef = Worklets;
361
+ return WorkletsRef;
362
+ } catch {
363
+ console.warn('react-native-worklets-core not available');
364
+ return undefined;
365
+ }
366
+ }
367
+ export async function nitroFetchOnWorklet(input, init, mapWorklet, options) {
368
+ console.log('nitroFetchOnWorklet: starting');
369
+ const preferBytes = options?.preferBytes !== false; // default true
370
+ console.log('nitroFetchOnWorklet: preferBytes:', preferBytes);
371
+ let rt;
372
+ let Worklets;
373
+ try {
374
+ rt = ensureWorkletRuntime(options?.runtimeName);
375
+ console.log('nitroFetchOnWorklet: runtime created?', !!rt);
376
+ Worklets = getWorklets();
377
+ console.log('nitroFetchOnWorklet: Worklets available?', !!Worklets);
378
+ } catch (e) {
379
+ console.error('nitroFetchOnWorklet: setup failed', e);
380
+ }
381
+
382
+ // Fallback: if runtime is not available, do the work on JS
383
+ if (!rt || !Worklets || typeof rt.run !== 'function') {
384
+ console.warn('nitroFetchOnWorklet: no runtime, mapping on JS thread');
385
+ const res = await nitroFetchRaw(input, init);
386
+ const payload = {
387
+ url: res.url,
388
+ status: res.status,
389
+ statusText: res.statusText,
390
+ ok: res.ok,
391
+ redirected: res.redirected,
392
+ headers: res.headers,
393
+ bodyBytes: preferBytes ? res.bodyBytes : undefined,
394
+ bodyString: preferBytes ? undefined : res.bodyString
395
+ };
396
+ return mapWorklet(payload);
397
+ }
398
+ return await new Promise((resolve, reject) => {
399
+ try {
400
+ console.log('nitroFetchOnWorklet: about to call rt.run');
401
+ rt.run(async map => {
402
+ 'worklet';
403
+
404
+ try {
405
+ console.log('nitroFetchOnWorklet: running fetch on worklet thread');
406
+ const res = await nitroFetchRaw(input, init);
407
+ console.log('nitroFetchOnWorklet: fetch completed');
408
+ const url = res.url;
409
+ const status = res.status;
410
+ const statusText = res.statusText;
411
+ const ok = res.ok;
412
+ const redirected = res.redirected;
413
+ const headersPairs = res.headers;
414
+ const bodyBytes = preferBytes ? res.bodyBytes : undefined;
415
+ const bodyString = preferBytes ? undefined : res.bodyString;
416
+ const payload = {
417
+ url,
418
+ status,
419
+ statusText,
420
+ ok,
421
+ redirected,
422
+ headers: headersPairs,
423
+ bodyBytes,
424
+ bodyString
425
+ };
426
+ const out = map(payload);
427
+ // Resolve back on JS thread
428
+ Worklets.runOnJS(resolve)(out);
429
+ } catch (e) {
430
+ Worklets.runOnJS(reject)(e);
431
+ }
432
+ }, mapWorklet);
433
+ } catch (e) {
434
+ console.error('nitroFetchOnWorklet: rt.run failed', e);
435
+ reject(e);
436
+ }
437
+ });
438
+ }
439
+ export const x = ensureWorkletRuntime();
440
+ export const y = getWorklets();
441
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroFetch","NitroFetchSingleton","headersToPairs","headers","undefined","pairs","Headers","forEach","v","k","push","key","value","Array","isArray","entry","length","String","Object","entries","normalizeBody","body","bodyString","URLSearchParams","toString","ArrayBuffer","bodyBytes","isView","view","buffer","slice","byteOffset","byteLength","Error","pairsToHeaders","h","append","NitroFetchHybrid","client","ensureClient","createClient","err","console","error","buildNitroRequest","input","init","url","method","headersInit","URL","normalized","toUpperCase","followRedirects","nitroFetchRaw","hasNative","res","fetch","bytes","arrayBuffer","status","statusText","ok","redirected","req","request","nitroFetch","Uint8Array","TextEncoder","encode","Response","respInit","reduce","acc","headersObj","light","text","TextDecoder","decode","json","JSON","parse","prefetch","hasKey","some","toLowerCase","fromInit","prefetchKey","concat","finalHasKey","prefetchOnAppStart","fromHeader","find","MMKV","require","storage","KEY","arr","raw","getString","set","stringify","e","warn","removeFromAutoPrefetch","next","filter","delete","removeAllFromAutoprefetch","nitroRuntime","WorkletsRef","ensureWorkletRuntime","name","log","Worklets","createRuntime","getWorklets","nitroFetchOnWorklet","mapWorklet","options","preferBytes","rt","runtimeName","run","payload","Promise","resolve","reject","map","headersPairs","out","runOnJS","x","y"],"sourceRoot":"../../src","sources":["fetch.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ export { nitroFetch as fetch, nitroFetchOnWorklet, prefetch, prefetchOnAppStart, removeFromAutoPrefetch, removeAllFromAutoprefetch } from "./fetch.js";
4
+ export { NitroFetch } from "./NitroInstances.js";
5
+ import "./fetch.js";
6
+
7
+ // Keep legacy export to avoid breaking any local tests/usages during scaffolding.
8
+ // Will be removed once native Cronet path is ready.
9
+ export function multiply(a, b) {
10
+ return a * b;
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nitroFetch","fetch","nitroFetchOnWorklet","prefetch","prefetchOnAppStart","removeFromAutoPrefetch","removeAllFromAutoprefetch","NitroFetch","multiply","a","b"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SACEA,UAAU,IAAIC,KAAK,EACnBC,mBAAmB,EACnBC,QAAQ,EACRC,kBAAkB,EAClBC,sBAAsB,EACtBC,yBAAyB,QACpB,YAAS;AAEhB,SAASC,UAAU,QAAQ,qBAAkB;AAC7C,OAAO,YAAS;;AAEhB;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAU;EACrD,OAAOD,CAAC,GAAGC,CAAC;AACd","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,39 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ export type NitroRequestMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
3
+ export interface NitroHeader {
4
+ key: string;
5
+ value: string;
6
+ }
7
+ export interface NitroRequest {
8
+ url: string;
9
+ method?: NitroRequestMethod;
10
+ headers?: NitroHeader[];
11
+ bodyString?: string;
12
+ bodyBytes?: ArrayBuffer;
13
+ timeoutMs?: number;
14
+ followRedirects?: boolean;
15
+ }
16
+ export interface NitroResponse {
17
+ url: string;
18
+ status: number;
19
+ statusText: string;
20
+ ok: boolean;
21
+ redirected: boolean;
22
+ headers: NitroHeader[];
23
+ bodyString?: string;
24
+ bodyBytes?: ArrayBuffer;
25
+ }
26
+ export interface NitroFetchClient extends HybridObject<{
27
+ ios: 'swift';
28
+ android: 'kotlin';
29
+ }> {
30
+ request(req: NitroRequest): Promise<NitroResponse>;
31
+ prefetch(req: NitroRequest): Promise<void>;
32
+ }
33
+ export interface NitroFetch extends HybridObject<{
34
+ ios: 'swift';
35
+ android: 'kotlin';
36
+ }> {
37
+ createClient(): NitroFetchClient;
38
+ }
39
+ //# sourceMappingURL=NitroFetch.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NitroFetch.nitro.d.ts","sourceRoot":"","sources":["../../../src/NitroFetch.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,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;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,gBACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC;CAAE,CAAC;IAE1D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnD,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,UACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC;CAAE,CAAC;IAE1D,YAAY,IAAI,gBAAgB,CAAC;CAIlC"}
@@ -0,0 +1,3 @@
1
+ import type { NitroFetch as NitroFetchType } from './NitroFetch.nitro';
2
+ export declare const NitroFetch: NitroFetchType;
3
+ //# sourceMappingURL=NitroInstances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NitroInstances.d.ts","sourceRoot":"","sources":["../../../src/NitroInstances.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,UAAU,EAAE,cACsC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { NitroHeader } from './NitroFetch.nitro';
2
+ export declare function nitroFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
3
+ export declare function prefetch(input: RequestInfo | URL, init?: RequestInit): Promise<void>;
4
+ export declare function prefetchOnAppStart(input: RequestInfo | URL, init?: RequestInit & {
5
+ prefetchKey?: string;
6
+ }): Promise<void>;
7
+ export declare function removeFromAutoPrefetch(prefetchKey: string): Promise<void>;
8
+ export declare function removeAllFromAutoprefetch(): Promise<void>;
9
+ export type NitroWorkletMapper<T> = (payload: {
10
+ url: string;
11
+ status: number;
12
+ statusText: string;
13
+ ok: boolean;
14
+ redirected: boolean;
15
+ headers: NitroHeader[];
16
+ bodyBytes?: ArrayBuffer;
17
+ bodyString?: string;
18
+ }) => T;
19
+ export declare function nitroFetchOnWorklet<T>(input: RequestInfo | URL, init: RequestInit | undefined, mapWorklet: NitroWorkletMapper<T>, options?: {
20
+ preferBytes?: boolean;
21
+ runtimeName?: string;
22
+ }): Promise<T>;
23
+ export declare const x: any;
24
+ export declare const y: any;
25
+ export type { NitroRequest, NitroResponse } from './NitroFetch.nitro';
26
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAGZ,MAAM,oBAAoB,CAAC;AAsI5B,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgDhG;AAGD,wBAAsB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB1F;AAID,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,CA0Cf;AAGD,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B/E;AAGD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAc/D;AAGD,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;AA+BR,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,CA+DZ;AAED,eAAO,MAAM,CAAC,KAAyB,CAAC;AACxC,eAAO,MAAM,CAAC,KAAgB,CAAC;AAE/B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { nitroFetch as fetch, nitroFetchOnWorklet, prefetch, prefetchOnAppStart, removeFromAutoPrefetch, removeAllFromAutoprefetch, } from './fetch';
2
+ export type { NitroRequest, NitroResponse } from './fetch';
3
+ export { NitroFetch } from './NitroInstances';
4
+ import './fetch';
5
+ export declare function multiply(a: number, b: number): number;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,KAAK,EACnB,mBAAmB,EACnB,QAAQ,EACR,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,SAAS,CAAC;AAIjB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD"}
package/nitro.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "cxxNamespace": ["nitrofetch"],
3
+ "ios": {
4
+ "iosModuleName": "NitroFetch"
5
+ },
6
+ "android": {
7
+ "androidNamespace": ["nitrofetch"],
8
+ "androidCxxLibName": "nitrofetch"
9
+ },
10
+ "autolinking": {
11
+ "NitroFetch": {
12
+ "kotlin": "NitroFetch",
13
+ "swift": "NitroFetch"
14
+ },
15
+ "NitroFetchClient": {
16
+ "kotlin": "NitroFetchClient",
17
+ "swift": "NitroFetchClient"
18
+ }
19
+ },
20
+ "ignorePaths": ["node_modules"]
21
+ }