react-native-nitro-fetch 0.1.1 → 0.1.3

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 CHANGED
@@ -1,123 +1,136 @@
1
- <p align="center">
2
- <img src="./assets/logo.png" alt="Nitro Fetch Logo" width="200" />
3
- </p>
1
+ <a href="https://margelo.com">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="./docs/static/img/banner-nitro-modules-dark.png" />
4
+ <source media="(prefers-color-scheme: light)" srcset="./docs/static/img/banner-nitro-modules-light.png" />
5
+ <img alt="Nitro Modules" src="./docs/static/img/banner-nitro-modules-light.png" />
6
+ </picture>
7
+ </a>
4
8
 
5
- # react-native-nitro-fetch
9
+ <br />
6
10
 
7
- Nitro-powered fetch for React Native. Android uses Chromium Cronet (via `org.chromium.net:cronet-embedded`); iOS currently falls back to the built-in fetch. Includes helpers for background prefetching and off-thread parsing with worklets.
11
+ **react-native-nitro-fetch** is a general purpose network fetching library for React Native. It can be used as a drop-in replacement for the built-in `fetch(...)` method, as well as provide additional features like prefetching and workletized mappers.
12
+
13
+ ## Features
14
+
15
+ - 🔧 Drop-in replacement for the built-in `fetch(...)` method
16
+ - ⚡️ Fast HTTP stack using [Cronet](https://chromium.googlesource.com/chromium/src/+/lkgr/components/cronet/README.md) on Android, and [URLSession](https://developer.apple.com/documentation/Foundation/URLSession) on iOS
17
+ - 💪 Supports [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2), [QUIC](https://www.chromium.org/quic/), [Brotli](https://github.com/google/brotli), and disk cache
18
+ - ⏰ Prefetching on app-startup for even faster initialization
19
+ - 🧵 Worklet support for parallel data mapping without blocking the JS Thread
20
+ - 🔥 Powered by [Nitro Modules](https://github.com/mrousavy/nitro)
8
21
 
9
22
  ## Installation
10
23
 
11
24
  ```sh
12
- npm install react-native-nitro-fetch react-native-nitro-modules
25
+ npm i react-native-nitro-fetch react-native-nitro-modules
13
26
  ```
14
27
 
15
- - `react-native-nitro-modules` is required as this library relies on Nitro Modules. Rebuild your app after installing.
28
+ > [Nitro Modules](https://github.com/mrousavy/nitro) requires react-native 0.75+ or higher
16
29
 
17
- ## Quick Start
30
+ ## Usage
31
+
32
+ To simply fetch data, import the `fetch(...)` method from `react-native-nitro-fetch`:
18
33
 
19
34
  ```ts
20
- import { fetch } from 'react-native-nitro-fetch';
35
+ import { fetch } from 'react-native-nitro-fetch'
21
36
 
22
- const res = await fetch('https://httpbin.org/get');
23
- const json = await res.json();
37
+ const res = await fetch('https://httpbin.org/get')
38
+ const json = await res.json()
24
39
  ```
25
40
 
26
- ## Features
41
+ This can be used as a drop-in-replacement for the built-in `fetch(...)` method.
27
42
 
28
- - Nitro-backed `fetch`: drop-in replacement for global fetch.
29
- - Android Cronet: fast HTTP stack via `org.chromium.net:cronet-embedded` (already wired in `android/build.gradle`).
30
- - Prefetch: start a background request tied to a `prefetchKey` and serve it later.
31
- - Android auto-prefetch: enqueue requests to MMKV so they warm up on next app start.
32
- - Worklets helper: run mapping/parsing off the JS thread with `react-native-worklets-core`.
43
+ ### Prefetching in JS
33
44
 
34
- ## Why Prefetch
45
+ You can prefetch a URL in JS, which keeps the result cached for the next actual `fetch(...)` call - this can be used shortly before navigating to a new screen to have results hot & ready:
35
46
 
36
- - Faster first paint of data: Prefetching lets you move network I/O earlier on the critical path so the screen can render with data sooner.
37
- - App start wins: With auto‑prefetch + MMKV, we can begin fetching immediately at process start. In our measurements on mid‑range Android devices (e.g., Samsung A16), this starts at least ~220 ms earlier than initiating the same request from JS after React is up.
38
- - UX hooks: Kick off prefetch on navigation intent (button press) and serve the result when the destination screen mounts.
39
-
40
- See `docs/prefetch.md` for patterns and examples.
47
+ ```ts
48
+ import { prefetch } from 'react-native-nitro-fetch'
41
49
 
42
- ## Why Cronet
50
+ await prefetch('https://httpbin.org/uuid', {
51
+ headers: { prefetchKey: 'uuid' }
52
+ })
53
+ ```
43
54
 
44
- - Performance: Enables HTTP/2 multiplexing and QUIC/HTTP/3, reducing latency and avoiding head‑of‑line blocking.
45
- - Efficiency: Advanced connection management, TLS/ALPN, Brotli, and robust on‑disk caching.
46
- - Battle‑tested: Built on Chromium’s networking stack (the same tech behind Chrome) and widely adopted across the ecosystem, including the Flutter community.
55
+ Then, on the new screen that was navigated to:
47
56
 
48
- ## Philosophy
57
+ ```ts
58
+ import { fetch } from 'react-native-nitro-fetch'
49
59
 
50
- - Nitro Fetch often outperforms built‑in fetch thanks to Cronet’s optimizations, but raw speed is not the primary goal.
51
- - The main goals are:
52
- - High‑quality prefetching (including auto‑prefetch on app start)
53
- - Enabling a multi‑threaded React Native architecture (e.g., off‑thread mapping with worklets)
54
- - Performance is a nice side‑effect.
60
+ const res = await fetch('https://httpbin.org/uuid', {
61
+ headers: { prefetchKey: 'uuid' }
62
+ })
63
+ console.log('prefetched header:', res.headers.get('nitroPrefetched'))
64
+ ```
55
65
 
56
- ## Usage Examples
66
+ ### Prefetching for the next app launch
57
67
 
58
- - Basic fetch (drop-in replacement):
68
+ Prefetching data on app launch (or _process start_) will make it hot & ready once your JS code actually runs. Call `prefetchOnAppStart(...)` to enqueue a prefetch for the **next** app start:
59
69
 
60
70
  ```ts
61
- import { fetch } from 'react-native-nitro-fetch';
62
- const res = await fetch('https://jsonplaceholder.typicode.com/todos/1');
63
- console.log(await res.json());
71
+ import { prefetchOnAppStart } from 'react-native-nitro-fetch'
72
+
73
+ await prefetchOnAppStart('https://httpbin.org/uuid', {
74
+ prefetchKey: 'uuid'
75
+ })
64
76
  ```
65
77
 
66
- - Prefetch and consume (Android or JS fallback):
78
+ Then, once the app opens the next time, a call to `fetch(...)` might resolve faster since it will contain already cached results:
67
79
 
68
80
  ```ts
69
- import { fetch, prefetch } from 'react-native-nitro-fetch';
81
+ import { fetch } from 'react-native-nitro-fetch'
70
82
 
71
- await prefetch('https://httpbin.org/uuid', { headers: { prefetchKey: 'uuid' } });
72
- const res = await fetch('https://httpbin.org/uuid', { headers: { prefetchKey: 'uuid' } });
73
- console.log('prefetched header:', res.headers.get('nitroPrefetched'));
83
+ const res = await fetch('https://httpbin.org/uuid', {
84
+ headers: { prefetchKey: 'uuid' }
85
+ })
86
+ console.log('prefetched header:', res.headers.get('nitroPrefetched'))
74
87
  ```
75
88
 
76
- - Schedule auto-prefetch on Android (requires `react-native-mmkv` in your app):
89
+ In our tests, prefetching alone yielded a **~220 ms** faster TTI (time-to-interactive) time! 🤯
77
90
 
78
- ```ts
79
- import { prefetchOnAppStart } from 'react-native-nitro-fetch';
80
- await prefetchOnAppStart('https://httpbin.org/uuid', { prefetchKey: 'uuid' });
81
- ```
91
+ ### Worklet Mapping
82
92
 
83
- - Off-thread parsing with worklets:
93
+ Since Nitro Fetch is a [Nitro Module](https://nitro.margelo.com), it can be used from Worklets.
94
+ This can be useful to parse data without blocking the main JS-Thread:
84
95
 
85
96
  ```ts
86
- import { nitroFetchOnWorklet } from 'react-native-nitro-fetch';
87
-
88
- const map = (payload: { bodyString?: string }) => {
89
- 'worklet';
90
- return JSON.parse(payload.bodyString ?? '{}');
91
- };
92
-
93
- const data = await nitroFetchOnWorklet('https://httpbin.org/get', undefined, map, { preferBytes: false });
97
+ import { nitroFetchOnWorklet } from 'react-native-nitro-fetch'
98
+
99
+ const data = await nitroFetchOnWorklet(
100
+ 'https://httpbin.org/get',
101
+ undefined,
102
+ (payload) => {
103
+ 'worklet'
104
+ return JSON.parse(payload.bodyString ?? '{}')
105
+ }
106
+ )
94
107
  ```
95
108
 
96
- ## Platform Notes
109
+ ## Project Status
97
110
 
98
- - Android: Uses Cronet Java API; no extra setup needed beyond install and rebuild. Cronet engine is initialized once and enables HTTP/2, QUIC, Brotli, and disk cache.
99
- - iOS: Uses a native `URLSession` client for requests and prefetch (in‑memory cache). Cronet integration is still planned for future releases.
111
+ Nitro Fetch is currently in an alpha stage. You can adopt it in production, but keep in mind that the library and it's API is subject to change.
100
112
 
101
113
  ## Limitations & Alternatives
102
114
 
103
- - HTTP streaming: Not supported yet. For streaming responses today, use Expos `expo-fetch`. Streaming is on the roadmap.
104
- - WebSockets: Not supported. For high‑performance sockets and binary streams, consider `react-native-fast-io`.
115
+ - [HTTP streaming](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) is not yet supported. As an alternative, use Expo's [expo-fetch](https://docs.expo.dev/versions/latest/sdk/expo/). Streaming is on the roadmap.
116
+ - [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) are not supported. For high‑performance sockets and binary streams, consider using [react-native-fast-io](https://github.com/callstackincubator/react-native-fast-io) by our friends at Callstack.
105
117
 
106
118
  ## Documentation
107
119
 
108
- - Getting Started: `docs/getting-started.md`
109
- - API Reference: `docs/api.md`
110
- - Android Details: `docs/android.md`
111
- - iOS Details: `docs/ios.md`
112
- - Prefetch & Auto-Prefetch: `docs/prefetch.md`
113
- - Worklets: `docs/worklets.md`
114
- - Troubleshooting: `docs/troubleshooting.md`
115
- - Cronet (Android) notes: `docs/cronet-android.md`
116
- - Cronet (iOS) notes: `docs/cronet-ios.md`
120
+ - [Getting Started](docs/getting-started.md)
121
+ - [API Reference](docs/api.md)
122
+ - [Android Details](docs/android.md)
123
+ - [iOS Details](docs/ios.md)
124
+ - [Prefetch & Auto-Prefetch](docs/prefetch.md)
125
+ - [Worklets](docs/worklets.md)
126
+ - [Troubleshooting](docs/troubleshooting.md)
127
+ - [Cronet (Android) notes](docs/cronet-android.md)
128
+ - [Cronet (iOS) notes](docs/cronet-ios.md)
117
129
 
118
- ## Work With Margelo
130
+ ## Margelo
119
131
 
120
- Need top‑notch React Native help or custom networking solutions? Reach out to Margelo: hello@margelo.com
132
+ Nitro Fetch is built with ❤️ by Margelo.
133
+ We build fast and beautiful apps. Contact us at [margelo.com](https://margelo.com) for high-end consultancy services.
121
134
 
122
135
  ## Contributing
123
136
 
@@ -125,10 +138,14 @@ Need top‑notch React Native help or custom networking solutions? Reach out to
125
138
  - Sending a pull request: `CONTRIBUTING.md#sending-a-pull-request`
126
139
  - Code of conduct: `CODE_OF_CONDUCT.md`
127
140
 
141
+ ## Authors
142
+
143
+ - [Szymon Kapala](https://github.com/Szymon20000)
144
+ - [Alex Shumihin](https://github.com/pioner92)
145
+ - [Ronald Goedeke](https://github.com/ronickg)
146
+ - [Marc Rousavy](https://github.com/mrousavy)
147
+
128
148
  ## License
129
149
 
130
150
  MIT
131
151
 
132
- ---
133
-
134
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
@@ -117,6 +117,7 @@ dependencies {
117
117
  implementation "com.facebook.react:react-android"
118
118
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
119
119
  implementation project(":react-native-nitro-modules")
120
+ implementation("com.tencent:mmkv:1.3.14")// or latest
120
121
  // Provide org.chromium.net Java API for CronetEngine in Kotlin
121
122
  // Cronet
122
123
  api "org.chromium.net:cronet-embedded:${cronetVersion}"
@@ -4,6 +4,8 @@ import android.app.Application
4
4
  import org.json.JSONArray
5
5
  import org.json.JSONObject
6
6
  import java.util.concurrent.CompletableFuture
7
+ import com.tencent.mmkv.MMKV;
8
+
7
9
 
8
10
  object AutoPrefetcher {
9
11
  @Volatile private var initialized = false
@@ -74,12 +76,12 @@ object AutoPrefetcher {
74
76
 
75
77
  private fun getMMKV(app: Application): Any? {
76
78
  return try {
77
- val cls = Class.forName("com.tencent.mmkv.MMKV")
78
- // Initialize if available
79
- try { cls.getMethod("initialize", Application::class.java).invoke(null, app) } catch (_: Throwable) {}
80
- // Get default instance
81
- cls.getMethod("defaultMMKV").invoke(null)
82
- } catch (_: Throwable) { null }
79
+ MMKV.initialize(app);
80
+
81
+ return MMKV.defaultMMKV()
82
+ } catch (_: Throwable) {
83
+ null
84
+ }
83
85
  }
84
86
 
85
87
  private fun invokeMMKVDecodeString(mmkv: Any, key: String): String? {
@@ -129,7 +129,7 @@ class NitroFetchClient(private val engine: CronetEngine, private val executor: E
129
129
  val bodyStr = req.bodyString
130
130
  if ((bodyBytes != null) || !bodyStr.isNullOrEmpty()) {
131
131
  val body: ByteArray = when {
132
- bodyBytes != null -> bodyBytes.getBuffer(true).toByteArray()
132
+ bodyBytes != null -> ByteArray(1);//bodyBytes.getBuffer(true).toByteArray()
133
133
  !bodyStr.isNullOrEmpty() -> bodyStr!!.toByteArray(Charsets.UTF_8)
134
134
  else -> ByteArray(0)
135
135
  }
@@ -114,7 +114,8 @@ function buildNitroRequest(input, init) {
114
114
  method: method?.toUpperCase() ?? 'GET',
115
115
  headers,
116
116
  bodyString: normalized?.bodyString,
117
- bodyBytes: normalized?.bodyBytes,
117
+ bodyBytes: "",
118
+ //normalized?.bodyBytes,
118
119
  followRedirects: true
119
120
  };
120
121
  }
@@ -142,7 +143,7 @@ async function nitroFetchRaw(input, init) {
142
143
  headers,
143
144
  bodyBytes: bytes,
144
145
  bodyString: undefined
145
- };
146
+ }; // bleee
146
147
  }
147
148
  const req = buildNitroRequest(input, init);
148
149
  ensureClient();
@@ -160,24 +161,6 @@ export async function nitroFetch(input, init) {
160
161
  return fetch(input, init);
161
162
  }
162
163
  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
164
 
182
165
  // Fallback lightweight Response-like object (minimal methods)
183
166
  const headersObj = res.headers.reduce((acc, {
@@ -194,9 +177,9 @@ export async function nitroFetch(input, init) {
194
177
  statusText: res.statusText,
195
178
  redirected: res.redirected,
196
179
  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))
180
+ arrayBuffer: async () => res.bodyBytes,
181
+ text: async () => res.bodyString,
182
+ json: async () => JSON.parse(res.bodyString ?? '{}')
200
183
  };
201
184
  return light;
202
185
  }
@@ -272,6 +255,9 @@ export async function prefetchOnAppStart(input, init) {
272
255
  } catch {
273
256
  arr = [];
274
257
  }
258
+ if (arr.some(e => e && e.prefetchKey === prefetchKey)) {
259
+ arr = arr.filter(e => e && e.prefetchKey !== prefetchKey);
260
+ }
275
261
  arr.push(entry);
276
262
  storage.set(KEY, JSON.stringify(arr));
277
263
  } catch (e) {
@@ -366,7 +352,7 @@ function getWorklets() {
366
352
  }
367
353
  export async function nitroFetchOnWorklet(input, init, mapWorklet, options) {
368
354
  console.log('nitroFetchOnWorklet: starting');
369
- const preferBytes = options?.preferBytes !== false; // default true
355
+ const preferBytes = options?.preferBytes === true; // default true
370
356
  console.log('nitroFetchOnWorklet: preferBytes:', preferBytes);
371
357
  let rt;
372
358
  let Worklets;
@@ -411,7 +397,7 @@ export async function nitroFetchOnWorklet(input, init, mapWorklet, options) {
411
397
  const ok = res.ok;
412
398
  const redirected = res.redirected;
413
399
  const headersPairs = res.headers;
414
- const bodyBytes = preferBytes ? res.bodyBytes : undefined;
400
+ const bodyBytes = undefined; // preferBytes ? res.bodyBytes : undefined;
415
401
  const bodyString = preferBytes ? undefined : res.bodyString;
416
402
  const payload = {
417
403
  url,
@@ -1 +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":[]}
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","headersObj","reduce","acc","light","text","json","JSON","parse","prefetch","hasKey","some","toLowerCase","fromInit","prefetchKey","concat","finalHasKey","prefetchOnAppStart","fromHeader","find","MMKV","require","storage","KEY","arr","raw","getString","e","filter","set","stringify","warn","removeFromAutoPrefetch","next","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":[]}
@@ -9,7 +9,7 @@ export interface NitroRequest {
9
9
  method?: NitroRequestMethod;
10
10
  headers?: NitroHeader[];
11
11
  bodyString?: string;
12
- bodyBytes?: ArrayBuffer;
12
+ bodyBytes?: string;
13
13
  timeoutMs?: number;
14
14
  followRedirects?: boolean;
15
15
  }
@@ -21,7 +21,7 @@ export interface NitroResponse {
21
21
  redirected: boolean;
22
22
  headers: NitroHeader[];
23
23
  bodyString?: string;
24
- bodyBytes?: ArrayBuffer;
24
+ bodyBytes?: string;
25
25
  }
26
26
  export interface NitroFetchClient extends HybridObject<{
27
27
  ios: 'swift';
@@ -1 +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"}
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,EAAG,MAAM,CAAC;IAEpB,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,MAAM,CAAC;CACpB;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"}
@@ -1 +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"}
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,CA6BhG;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,CA6Cf;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,CA8DZ;AAED,eAAO,MAAM,CAAC,KAAyB,CAAC;AACxC,eAAO,MAAM,CAAC,KAAgB,CAAC;AAE/B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -11,8 +11,6 @@
11
11
  namespace margelo::nitro::nitrofetch { struct NitroResponse; }
12
12
  // Forward declaration of `NitroHeader` to properly resolve imports.
13
13
  namespace margelo::nitro::nitrofetch { struct NitroHeader; }
14
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
15
- namespace NitroModules { class ArrayBuffer; }
16
14
  // Forward declaration of `NitroRequest` to properly resolve imports.
17
15
  namespace margelo::nitro::nitrofetch { struct NitroRequest; }
18
16
  // Forward declaration of `NitroRequestMethod` to properly resolve imports.
@@ -27,9 +25,6 @@ namespace margelo::nitro::nitrofetch { enum class NitroRequestMethod; }
27
25
  #include <vector>
28
26
  #include "JNitroHeader.hpp"
29
27
  #include <optional>
30
- #include <NitroModules/ArrayBuffer.hpp>
31
- #include <NitroModules/JArrayBuffer.hpp>
32
- #include <NitroModules/JUnit.hpp>
33
28
  #include "NitroRequest.hpp"
34
29
  #include "JNitroRequest.hpp"
35
30
  #include "NitroRequestMethod.hpp"
@@ -14,9 +14,6 @@
14
14
  #include "JNitroRequestMethod.hpp"
15
15
  #include "NitroHeader.hpp"
16
16
  #include "NitroRequestMethod.hpp"
17
- #include <NitroModules/ArrayBuffer.hpp>
18
- #include <NitroModules/JArrayBuffer.hpp>
19
- #include <NitroModules/JUnit.hpp>
20
17
  #include <optional>
21
18
  #include <string>
22
19
  #include <vector>
@@ -48,8 +45,8 @@ namespace margelo::nitro::nitrofetch {
48
45
  jni::local_ref<jni::JArrayClass<JNitroHeader>> headers = this->getFieldValue(fieldHeaders);
49
46
  static const auto fieldBodyString = clazz->getField<jni::JString>("bodyString");
50
47
  jni::local_ref<jni::JString> bodyString = this->getFieldValue(fieldBodyString);
51
- static const auto fieldBodyBytes = clazz->getField<JArrayBuffer::javaobject>("bodyBytes");
52
- jni::local_ref<JArrayBuffer::javaobject> bodyBytes = this->getFieldValue(fieldBodyBytes);
48
+ static const auto fieldBodyBytes = clazz->getField<jni::JString>("bodyBytes");
49
+ jni::local_ref<jni::JString> bodyBytes = this->getFieldValue(fieldBodyBytes);
53
50
  static const auto fieldTimeoutMs = clazz->getField<jni::JDouble>("timeoutMs");
54
51
  jni::local_ref<jni::JDouble> timeoutMs = this->getFieldValue(fieldTimeoutMs);
55
52
  static const auto fieldFollowRedirects = clazz->getField<jni::JBoolean>("followRedirects");
@@ -68,7 +65,7 @@ namespace margelo::nitro::nitrofetch {
68
65
  return __vector;
69
66
  }()) : std::nullopt,
70
67
  bodyString != nullptr ? std::make_optional(bodyString->toStdString()) : std::nullopt,
71
- bodyBytes != nullptr ? std::make_optional(bodyBytes->cthis()->getArrayBuffer()) : std::nullopt,
68
+ bodyBytes != nullptr ? std::make_optional(bodyBytes->toStdString()) : std::nullopt,
72
69
  timeoutMs != nullptr ? std::make_optional(timeoutMs->value()) : std::nullopt,
73
70
  followRedirects != nullptr ? std::make_optional(static_cast<bool>(followRedirects->value())) : std::nullopt
74
71
  );
@@ -93,7 +90,7 @@ namespace margelo::nitro::nitrofetch {
93
90
  return __array;
94
91
  }() : nullptr,
95
92
  value.bodyString.has_value() ? jni::make_jstring(value.bodyString.value()) : nullptr,
96
- value.bodyBytes.has_value() ? JArrayBuffer::wrap(value.bodyBytes.value()) : nullptr,
93
+ value.bodyBytes.has_value() ? jni::make_jstring(value.bodyBytes.value()) : nullptr,
97
94
  value.timeoutMs.has_value() ? jni::JDouble::valueOf(value.timeoutMs.value()) : nullptr,
98
95
  value.followRedirects.has_value() ? jni::JBoolean::valueOf(value.followRedirects.value()) : nullptr
99
96
  );
@@ -12,9 +12,6 @@
12
12
 
13
13
  #include "JNitroHeader.hpp"
14
14
  #include "NitroHeader.hpp"
15
- #include <NitroModules/ArrayBuffer.hpp>
16
- #include <NitroModules/JArrayBuffer.hpp>
17
- #include <NitroModules/JUnit.hpp>
18
15
  #include <optional>
19
16
  #include <string>
20
17
  #include <vector>
@@ -52,8 +49,8 @@ namespace margelo::nitro::nitrofetch {
52
49
  jni::local_ref<jni::JArrayClass<JNitroHeader>> headers = this->getFieldValue(fieldHeaders);
53
50
  static const auto fieldBodyString = clazz->getField<jni::JString>("bodyString");
54
51
  jni::local_ref<jni::JString> bodyString = this->getFieldValue(fieldBodyString);
55
- static const auto fieldBodyBytes = clazz->getField<JArrayBuffer::javaobject>("bodyBytes");
56
- jni::local_ref<JArrayBuffer::javaobject> bodyBytes = this->getFieldValue(fieldBodyBytes);
52
+ static const auto fieldBodyBytes = clazz->getField<jni::JString>("bodyBytes");
53
+ jni::local_ref<jni::JString> bodyBytes = this->getFieldValue(fieldBodyBytes);
57
54
  return NitroResponse(
58
55
  url->toStdString(),
59
56
  status,
@@ -71,7 +68,7 @@ namespace margelo::nitro::nitrofetch {
71
68
  return __vector;
72
69
  }(),
73
70
  bodyString != nullptr ? std::make_optional(bodyString->toStdString()) : std::nullopt,
74
- bodyBytes != nullptr ? std::make_optional(bodyBytes->cthis()->getArrayBuffer()) : std::nullopt
71
+ bodyBytes != nullptr ? std::make_optional(bodyBytes->toStdString()) : std::nullopt
75
72
  );
76
73
  }
77
74
 
@@ -97,7 +94,7 @@ namespace margelo::nitro::nitrofetch {
97
94
  return __array;
98
95
  }(),
99
96
  value.bodyString.has_value() ? jni::make_jstring(value.bodyString.value()) : nullptr,
100
- value.bodyBytes.has_value() ? JArrayBuffer::wrap(value.bodyBytes.value()) : nullptr
97
+ value.bodyBytes.has_value() ? jni::make_jstring(value.bodyBytes.value()) : nullptr
101
98
  );
102
99
  }
103
100
  };
@@ -35,7 +35,7 @@ data class NitroRequest
35
35
  val bodyString: String?,
36
36
  @DoNotStrip
37
37
  @Keep
38
- val bodyBytes: ArrayBuffer?,
38
+ val bodyBytes: String?,
39
39
  @DoNotStrip
40
40
  @Keep
41
41
  val timeoutMs: Double?,
@@ -44,7 +44,7 @@ data class NitroResponse
44
44
  val bodyString: String?,
45
45
  @DoNotStrip
46
46
  @Keep
47
- val bodyBytes: ArrayBuffer?
47
+ val bodyBytes: String?
48
48
  ) {
49
49
  /* main constructor */
50
50
  }
@@ -8,10 +8,6 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
- // Forward declaration of `ArrayBufferHolder` to properly resolve imports.
12
- namespace NitroModules { class ArrayBufferHolder; }
13
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
14
- namespace NitroModules { class ArrayBuffer; }
15
11
  // Forward declaration of `HybridNitroFetchClientSpec` to properly resolve imports.
16
12
  namespace margelo::nitro::nitrofetch { class HybridNitroFetchClientSpec; }
17
13
  // Forward declaration of `HybridNitroFetchSpec` to properly resolve imports.
@@ -35,8 +31,6 @@ namespace NitroFetch { class HybridNitroFetchSpec_cxx; }
35
31
  #include "NitroHeader.hpp"
36
32
  #include "NitroRequestMethod.hpp"
37
33
  #include "NitroResponse.hpp"
38
- #include <NitroModules/ArrayBuffer.hpp>
39
- #include <NitroModules/ArrayBufferHolder.hpp>
40
34
  #include <NitroModules/Promise.hpp>
41
35
  #include <NitroModules/PromiseHolder.hpp>
42
36
  #include <NitroModules/Result.hpp>
@@ -79,21 +73,6 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
79
73
  return *optional;
80
74
  }
81
75
 
82
- // pragma MARK: std::optional<std::shared_ptr<ArrayBuffer>>
83
- /**
84
- * Specialized version of `std::optional<std::shared_ptr<ArrayBuffer>>`.
85
- */
86
- using std__optional_std__shared_ptr_ArrayBuffer__ = std::optional<std::shared_ptr<ArrayBuffer>>;
87
- inline std::optional<std::shared_ptr<ArrayBuffer>> create_std__optional_std__shared_ptr_ArrayBuffer__(const std::shared_ptr<ArrayBuffer>& value) noexcept {
88
- return std::optional<std::shared_ptr<ArrayBuffer>>(value);
89
- }
90
- inline bool has_value_std__optional_std__shared_ptr_ArrayBuffer__(const std::optional<std::shared_ptr<ArrayBuffer>>& optional) noexcept {
91
- return optional.has_value();
92
- }
93
- inline std::shared_ptr<ArrayBuffer> get_std__optional_std__shared_ptr_ArrayBuffer__(const std::optional<std::shared_ptr<ArrayBuffer>>& optional) noexcept {
94
- return *optional;
95
- }
96
-
97
76
  // pragma MARK: std::shared_ptr<Promise<NitroResponse>>
98
77
  /**
99
78
  * Specialized version of `std::shared_ptr<Promise<NitroResponse>>`.
@@ -8,8 +8,6 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
12
- namespace NitroModules { class ArrayBuffer; }
13
11
  // Forward declaration of `HybridNitroFetchClientSpec` to properly resolve imports.
14
12
  namespace margelo::nitro::nitrofetch { class HybridNitroFetchClientSpec; }
15
13
  // Forward declaration of `HybridNitroFetchSpec` to properly resolve imports.
@@ -30,7 +28,6 @@ namespace margelo::nitro::nitrofetch { struct NitroResponse; }
30
28
  #include "NitroRequest.hpp"
31
29
  #include "NitroRequestMethod.hpp"
32
30
  #include "NitroResponse.hpp"
33
- #include <NitroModules/ArrayBuffer.hpp>
34
31
  #include <NitroModules/Promise.hpp>
35
32
  #include <NitroModules/Result.hpp>
36
33
  #include <exception>
@@ -16,10 +16,6 @@ namespace NitroFetch { class HybridNitroFetchClientSpec_cxx; }
16
16
  namespace margelo::nitro::nitrofetch { struct NitroResponse; }
17
17
  // Forward declaration of `NitroHeader` to properly resolve imports.
18
18
  namespace margelo::nitro::nitrofetch { struct NitroHeader; }
19
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
20
- namespace NitroModules { class ArrayBuffer; }
21
- // Forward declaration of `ArrayBufferHolder` to properly resolve imports.
22
- namespace NitroModules { class ArrayBufferHolder; }
23
19
  // Forward declaration of `NitroRequest` to properly resolve imports.
24
20
  namespace margelo::nitro::nitrofetch { struct NitroRequest; }
25
21
  // Forward declaration of `NitroRequestMethod` to properly resolve imports.
@@ -31,8 +27,6 @@ namespace margelo::nitro::nitrofetch { enum class NitroRequestMethod; }
31
27
  #include "NitroHeader.hpp"
32
28
  #include <vector>
33
29
  #include <optional>
34
- #include <NitroModules/ArrayBuffer.hpp>
35
- #include <NitroModules/ArrayBufferHolder.hpp>
36
30
  #include "NitroRequest.hpp"
37
31
  #include "NitroRequestMethod.hpp"
38
32
 
@@ -18,7 +18,7 @@ public extension NitroRequest {
18
18
  /**
19
19
  * Create a new instance of `NitroRequest`.
20
20
  */
21
- init(url: String, method: NitroRequestMethod?, headers: [NitroHeader]?, bodyString: String?, bodyBytes: ArrayBuffer?, timeoutMs: Double?, followRedirects: Bool?) {
21
+ init(url: String, method: NitroRequestMethod?, headers: [NitroHeader]?, bodyString: String?, bodyBytes: String?, timeoutMs: Double?, followRedirects: Bool?) {
22
22
  self.init(std.string(url), { () -> bridge.std__optional_NitroRequestMethod_ in
23
23
  if let __unwrappedValue = method {
24
24
  return bridge.create_std__optional_NitroRequestMethod_(__unwrappedValue)
@@ -43,9 +43,9 @@ public extension NitroRequest {
43
43
  } else {
44
44
  return .init()
45
45
  }
46
- }(), { () -> bridge.std__optional_std__shared_ptr_ArrayBuffer__ in
46
+ }(), { () -> bridge.std__optional_std__string_ in
47
47
  if let __unwrappedValue = bodyBytes {
48
- return bridge.create_std__optional_std__shared_ptr_ArrayBuffer__(__unwrappedValue.getArrayBuffer())
48
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
49
49
  } else {
50
50
  return .init()
51
51
  }
@@ -146,16 +146,23 @@ public extension NitroRequest {
146
146
  }
147
147
  }
148
148
 
149
- var bodyBytes: ArrayBuffer? {
149
+ var bodyBytes: String? {
150
150
  @inline(__always)
151
151
  get {
152
- return self.__bodyBytes.value
152
+ return { () -> String? in
153
+ if bridge.has_value_std__optional_std__string_(self.__bodyBytes) {
154
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyBytes)
155
+ return String(__unwrapped)
156
+ } else {
157
+ return nil
158
+ }
159
+ }()
153
160
  }
154
161
  @inline(__always)
155
162
  set {
156
- self.__bodyBytes = { () -> bridge.std__optional_std__shared_ptr_ArrayBuffer__ in
163
+ self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
157
164
  if let __unwrappedValue = newValue {
158
- return bridge.create_std__optional_std__shared_ptr_ArrayBuffer__(__unwrappedValue.getArrayBuffer())
165
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
159
166
  } else {
160
167
  return .init()
161
168
  }
@@ -18,7 +18,7 @@ public extension NitroResponse {
18
18
  /**
19
19
  * Create a new instance of `NitroResponse`.
20
20
  */
21
- init(url: String, status: Double, statusText: String, ok: Bool, redirected: Bool, headers: [NitroHeader], bodyString: String?, bodyBytes: ArrayBuffer?) {
21
+ init(url: String, status: Double, statusText: String, ok: Bool, redirected: Bool, headers: [NitroHeader], bodyString: String?, bodyBytes: String?) {
22
22
  self.init(std.string(url), status, std.string(statusText), ok, redirected, { () -> bridge.std__vector_NitroHeader_ in
23
23
  var __vector = bridge.create_std__vector_NitroHeader_(headers.count)
24
24
  for __item in headers {
@@ -31,9 +31,9 @@ public extension NitroResponse {
31
31
  } else {
32
32
  return .init()
33
33
  }
34
- }(), { () -> bridge.std__optional_std__shared_ptr_ArrayBuffer__ in
34
+ }(), { () -> bridge.std__optional_std__string_ in
35
35
  if let __unwrappedValue = bodyBytes {
36
- return bridge.create_std__optional_std__shared_ptr_ArrayBuffer__(__unwrappedValue.getArrayBuffer())
36
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
37
37
  } else {
38
38
  return .init()
39
39
  }
@@ -136,16 +136,23 @@ public extension NitroResponse {
136
136
  }
137
137
  }
138
138
 
139
- var bodyBytes: ArrayBuffer? {
139
+ var bodyBytes: String? {
140
140
  @inline(__always)
141
141
  get {
142
- return self.__bodyBytes.value
142
+ return { () -> String? in
143
+ if bridge.has_value_std__optional_std__string_(self.__bodyBytes) {
144
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyBytes)
145
+ return String(__unwrapped)
146
+ } else {
147
+ return nil
148
+ }
149
+ }()
143
150
  }
144
151
  @inline(__always)
145
152
  set {
146
- self.__bodyBytes = { () -> bridge.std__optional_std__shared_ptr_ArrayBuffer__ in
153
+ self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
147
154
  if let __unwrappedValue = newValue {
148
- return bridge.create_std__optional_std__shared_ptr_ArrayBuffer__(__unwrappedValue.getArrayBuffer())
155
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
149
156
  } else {
150
157
  return .init()
151
158
  }
@@ -22,15 +22,12 @@
22
22
  namespace margelo::nitro::nitrofetch { enum class NitroRequestMethod; }
23
23
  // Forward declaration of `NitroHeader` to properly resolve imports.
24
24
  namespace margelo::nitro::nitrofetch { struct NitroHeader; }
25
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
26
- namespace NitroModules { class ArrayBuffer; }
27
25
 
28
26
  #include <string>
29
27
  #include "NitroRequestMethod.hpp"
30
28
  #include <optional>
31
29
  #include "NitroHeader.hpp"
32
30
  #include <vector>
33
- #include <NitroModules/ArrayBuffer.hpp>
34
31
 
35
32
  namespace margelo::nitro::nitrofetch {
36
33
 
@@ -43,13 +40,13 @@ namespace margelo::nitro::nitrofetch {
43
40
  std::optional<NitroRequestMethod> method SWIFT_PRIVATE;
44
41
  std::optional<std::vector<NitroHeader>> headers SWIFT_PRIVATE;
45
42
  std::optional<std::string> bodyString SWIFT_PRIVATE;
46
- std::optional<std::shared_ptr<ArrayBuffer>> bodyBytes SWIFT_PRIVATE;
43
+ std::optional<std::string> bodyBytes SWIFT_PRIVATE;
47
44
  std::optional<double> timeoutMs SWIFT_PRIVATE;
48
45
  std::optional<bool> followRedirects SWIFT_PRIVATE;
49
46
 
50
47
  public:
51
48
  NitroRequest() = default;
52
- explicit NitroRequest(std::string url, std::optional<NitroRequestMethod> method, std::optional<std::vector<NitroHeader>> headers, std::optional<std::string> bodyString, std::optional<std::shared_ptr<ArrayBuffer>> bodyBytes, std::optional<double> timeoutMs, std::optional<bool> followRedirects): url(url), method(method), headers(headers), bodyString(bodyString), bodyBytes(bodyBytes), timeoutMs(timeoutMs), followRedirects(followRedirects) {}
49
+ explicit NitroRequest(std::string url, std::optional<NitroRequestMethod> method, std::optional<std::vector<NitroHeader>> headers, std::optional<std::string> bodyString, std::optional<std::string> bodyBytes, std::optional<double> timeoutMs, std::optional<bool> followRedirects): url(url), method(method), headers(headers), bodyString(bodyString), bodyBytes(bodyBytes), timeoutMs(timeoutMs), followRedirects(followRedirects) {}
53
50
  };
54
51
 
55
52
  } // namespace margelo::nitro::nitrofetch
@@ -66,7 +63,7 @@ namespace margelo::nitro {
66
63
  JSIConverter<std::optional<margelo::nitro::nitrofetch::NitroRequestMethod>>::fromJSI(runtime, obj.getProperty(runtime, "method")),
67
64
  JSIConverter<std::optional<std::vector<margelo::nitro::nitrofetch::NitroHeader>>>::fromJSI(runtime, obj.getProperty(runtime, "headers")),
68
65
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "bodyString")),
69
- JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::fromJSI(runtime, obj.getProperty(runtime, "bodyBytes")),
66
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "bodyBytes")),
70
67
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "timeoutMs")),
71
68
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "followRedirects"))
72
69
  );
@@ -77,7 +74,7 @@ namespace margelo::nitro {
77
74
  obj.setProperty(runtime, "method", JSIConverter<std::optional<margelo::nitro::nitrofetch::NitroRequestMethod>>::toJSI(runtime, arg.method));
78
75
  obj.setProperty(runtime, "headers", JSIConverter<std::optional<std::vector<margelo::nitro::nitrofetch::NitroHeader>>>::toJSI(runtime, arg.headers));
79
76
  obj.setProperty(runtime, "bodyString", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.bodyString));
80
- obj.setProperty(runtime, "bodyBytes", JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::toJSI(runtime, arg.bodyBytes));
77
+ obj.setProperty(runtime, "bodyBytes", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.bodyBytes));
81
78
  obj.setProperty(runtime, "timeoutMs", JSIConverter<std::optional<double>>::toJSI(runtime, arg.timeoutMs));
82
79
  obj.setProperty(runtime, "followRedirects", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.followRedirects));
83
80
  return obj;
@@ -91,7 +88,7 @@ namespace margelo::nitro {
91
88
  if (!JSIConverter<std::optional<margelo::nitro::nitrofetch::NitroRequestMethod>>::canConvert(runtime, obj.getProperty(runtime, "method"))) return false;
92
89
  if (!JSIConverter<std::optional<std::vector<margelo::nitro::nitrofetch::NitroHeader>>>::canConvert(runtime, obj.getProperty(runtime, "headers"))) return false;
93
90
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "bodyString"))) return false;
94
- if (!JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::canConvert(runtime, obj.getProperty(runtime, "bodyBytes"))) return false;
91
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "bodyBytes"))) return false;
95
92
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "timeoutMs"))) return false;
96
93
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "followRedirects"))) return false;
97
94
  return true;
@@ -20,14 +20,11 @@
20
20
 
21
21
  // Forward declaration of `NitroHeader` to properly resolve imports.
22
22
  namespace margelo::nitro::nitrofetch { struct NitroHeader; }
23
- // Forward declaration of `ArrayBuffer` to properly resolve imports.
24
- namespace NitroModules { class ArrayBuffer; }
25
23
 
26
24
  #include <string>
27
25
  #include "NitroHeader.hpp"
28
26
  #include <vector>
29
27
  #include <optional>
30
- #include <NitroModules/ArrayBuffer.hpp>
31
28
 
32
29
  namespace margelo::nitro::nitrofetch {
33
30
 
@@ -43,11 +40,11 @@ namespace margelo::nitro::nitrofetch {
43
40
  bool redirected SWIFT_PRIVATE;
44
41
  std::vector<NitroHeader> headers SWIFT_PRIVATE;
45
42
  std::optional<std::string> bodyString SWIFT_PRIVATE;
46
- std::optional<std::shared_ptr<ArrayBuffer>> bodyBytes SWIFT_PRIVATE;
43
+ std::optional<std::string> bodyBytes SWIFT_PRIVATE;
47
44
 
48
45
  public:
49
46
  NitroResponse() = default;
50
- explicit NitroResponse(std::string url, double status, std::string statusText, bool ok, bool redirected, std::vector<NitroHeader> headers, std::optional<std::string> bodyString, std::optional<std::shared_ptr<ArrayBuffer>> bodyBytes): url(url), status(status), statusText(statusText), ok(ok), redirected(redirected), headers(headers), bodyString(bodyString), bodyBytes(bodyBytes) {}
47
+ explicit NitroResponse(std::string url, double status, std::string statusText, bool ok, bool redirected, std::vector<NitroHeader> headers, std::optional<std::string> bodyString, std::optional<std::string> bodyBytes): url(url), status(status), statusText(statusText), ok(ok), redirected(redirected), headers(headers), bodyString(bodyString), bodyBytes(bodyBytes) {}
51
48
  };
52
49
 
53
50
  } // namespace margelo::nitro::nitrofetch
@@ -67,7 +64,7 @@ namespace margelo::nitro {
67
64
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "redirected")),
68
65
  JSIConverter<std::vector<margelo::nitro::nitrofetch::NitroHeader>>::fromJSI(runtime, obj.getProperty(runtime, "headers")),
69
66
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "bodyString")),
70
- JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::fromJSI(runtime, obj.getProperty(runtime, "bodyBytes"))
67
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "bodyBytes"))
71
68
  );
72
69
  }
73
70
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitrofetch::NitroResponse& arg) {
@@ -79,7 +76,7 @@ namespace margelo::nitro {
79
76
  obj.setProperty(runtime, "redirected", JSIConverter<bool>::toJSI(runtime, arg.redirected));
80
77
  obj.setProperty(runtime, "headers", JSIConverter<std::vector<margelo::nitro::nitrofetch::NitroHeader>>::toJSI(runtime, arg.headers));
81
78
  obj.setProperty(runtime, "bodyString", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.bodyString));
82
- obj.setProperty(runtime, "bodyBytes", JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::toJSI(runtime, arg.bodyBytes));
79
+ obj.setProperty(runtime, "bodyBytes", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.bodyBytes));
83
80
  return obj;
84
81
  }
85
82
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -94,7 +91,7 @@ namespace margelo::nitro {
94
91
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "redirected"))) return false;
95
92
  if (!JSIConverter<std::vector<margelo::nitro::nitrofetch::NitroHeader>>::canConvert(runtime, obj.getProperty(runtime, "headers"))) return false;
96
93
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "bodyString"))) return false;
97
- if (!JSIConverter<std::optional<std::shared_ptr<ArrayBuffer>>>::canConvert(runtime, obj.getProperty(runtime, "bodyBytes"))) return false;
94
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "bodyBytes"))) return false;
98
95
  return true;
99
96
  }
100
97
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nitro-fetch",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Awesome Fetch :)",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -21,7 +21,7 @@ export interface NitroRequest {
21
21
  headers?: NitroHeader[];
22
22
  // Body as either UTF-8 string or raw bytes.
23
23
  bodyString?: string;
24
- bodyBytes?: ArrayBuffer;
24
+ bodyBytes?: string; //will be ArrayBuffer in future
25
25
  // Controls
26
26
  timeoutMs?: number;
27
27
  followRedirects?: boolean; // default true
@@ -36,7 +36,7 @@ export interface NitroResponse {
36
36
  headers: NitroHeader[];
37
37
  // Body as either UTF-8 string or raw bytes (first implementation target)
38
38
  bodyString?: string;
39
- bodyBytes?: ArrayBuffer;
39
+ bodyBytes?: string; //will be ArrayBuffer in future
40
40
  }
41
41
 
42
42
  export interface NitroFetchClient
package/src/fetch.ts CHANGED
@@ -102,7 +102,7 @@ function buildNitroRequest(input: RequestInfo | URL, init?: RequestInit): NitroR
102
102
  method: (method?.toUpperCase() as any) ?? 'GET',
103
103
  headers,
104
104
  bodyString: normalized?.bodyString,
105
- bodyBytes: normalized?.bodyBytes,
105
+ bodyBytes: "",//normalized?.bodyBytes,
106
106
  followRedirects: true,
107
107
  };
108
108
  }
@@ -127,7 +127,7 @@ async function nitroFetchRaw(input: RequestInfo | URL, init?: RequestInit): Prom
127
127
  headers,
128
128
  bodyBytes: bytes,
129
129
  bodyString: undefined,
130
- } as NitroResponse;
130
+ } as any as NitroResponse; // bleee
131
131
  }
132
132
 
133
133
  const req = buildNitroRequest(input, init);
@@ -148,31 +148,12 @@ export async function nitroFetch(input: RequestInfo | URL, init?: RequestInit):
148
148
 
149
149
  const res = await nitroFetchRaw(input, init);
150
150
 
151
- const bytes = res.bodyBytes
152
- ? new Uint8Array(res.bodyBytes)
153
- : res.bodyString != null
154
- ? new TextEncoder().encode(res.bodyString)
155
- : new Uint8Array();
156
-
157
- // If Response is available, construct a real Response object for compatibility
158
- if (typeof Response !== 'undefined') {
159
- const respInit: ResponseInit = {
160
- status: res.status,
161
- statusText: res.statusText,
162
- headers: res.headers.reduce((acc, { key, value }) => {
163
- acc[key] = value;
164
- return acc;
165
- }, {} as Record<string, string>),
166
- };
167
- // Prefer native bytes if available
168
- return new Response(res.bodyBytes ?? bytes, respInit);
169
- }
170
-
171
151
  // Fallback lightweight Response-like object (minimal methods)
172
152
  const headersObj = res.headers.reduce((acc, { key, value }) => {
173
153
  acc[key] = value;
174
154
  return acc;
175
155
  }, {} as Record<string, string>);
156
+
176
157
  const light: any = {
177
158
  url: res.url,
178
159
  ok: res.ok,
@@ -180,9 +161,9 @@ export async function nitroFetch(input: RequestInfo | URL, init?: RequestInit):
180
161
  statusText: res.statusText,
181
162
  redirected: res.redirected,
182
163
  headers: headersObj,
183
- arrayBuffer: async () => (res.bodyBytes ?? bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength)),
184
- text: async () => res.bodyString ?? new TextDecoder().decode(bytes),
185
- json: async () => JSON.parse(res.bodyString ?? new TextDecoder().decode(bytes)),
164
+ arrayBuffer: async () => res.bodyBytes,
165
+ text: async () => res.bodyString,
166
+ json: async () => JSON.parse(res.bodyString ?? '{}'),
186
167
  };
187
168
  return light as Response;
188
169
  }
@@ -254,6 +235,9 @@ export async function prefetchOnAppStart(
254
235
  } catch {
255
236
  arr = [];
256
237
  }
238
+ if (arr.some(e => e && e.prefetchKey === prefetchKey)) {
239
+ arr = arr.filter(e => e && e.prefetchKey !== prefetchKey);
240
+ }
257
241
  arr.push(entry);
258
242
  storage.set(KEY, JSON.stringify(arr));
259
243
  } catch (e) {
@@ -356,9 +340,8 @@ export async function nitroFetchOnWorklet<T>(
356
340
  mapWorklet: NitroWorkletMapper<T>,
357
341
  options?: { preferBytes?: boolean; runtimeName?: string }
358
342
  ): Promise<T> {
359
-
360
343
  console.log('nitroFetchOnWorklet: starting');
361
- const preferBytes = options?.preferBytes !== false; // default true
344
+ const preferBytes = options?.preferBytes === true; // default true
362
345
  console.log('nitroFetchOnWorklet: preferBytes:', preferBytes);
363
346
  let rt: any | undefined;
364
347
  let Worklets: any | undefined;
@@ -403,7 +386,7 @@ export async function nitroFetchOnWorklet<T>(
403
386
  const ok = res.ok;
404
387
  const redirected = res.redirected;
405
388
  const headersPairs: NitroHeader[] = res.headers;
406
- const bodyBytes: ArrayBuffer | undefined = preferBytes ? res.bodyBytes : undefined;
389
+ const bodyBytes: ArrayBuffer | undefined = undefined; // preferBytes ? res.bodyBytes : undefined;
407
390
  const bodyString: string | undefined = preferBytes ? undefined : res.bodyString;
408
391
  const payload = { url, status, statusText, ok, redirected, headers: headersPairs, bodyBytes, bodyString };
409
392
  const out = map(payload);