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 +93 -76
- package/android/build.gradle +1 -0
- package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +8 -6
- package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +1 -1
- package/lib/module/fetch.js +11 -25
- package/lib/module/fetch.js.map +1 -1
- package/lib/typescript/src/NitroFetch.nitro.d.ts +2 -2
- package/lib/typescript/src/NitroFetch.nitro.d.ts.map +1 -1
- package/lib/typescript/src/fetch.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.cpp +0 -5
- package/nitrogen/generated/android/c++/JNitroRequest.hpp +4 -7
- package/nitrogen/generated/android/c++/JNitroResponse.hpp +4 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequest.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroResponse.kt +1 -1
- package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.hpp +0 -21
- package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Umbrella.hpp +0 -3
- package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.hpp +0 -6
- package/nitrogen/generated/ios/swift/NitroRequest.swift +14 -7
- package/nitrogen/generated/ios/swift/NitroResponse.swift +14 -7
- package/nitrogen/generated/shared/c++/NitroRequest.hpp +5 -8
- package/nitrogen/generated/shared/c++/NitroResponse.hpp +5 -8
- package/package.json +1 -1
- package/src/NitroFetch.nitro.ts +2 -2
- package/src/fetch.ts +11 -28
package/README.md
CHANGED
|
@@ -1,123 +1,136 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
|
|
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
|
-
|
|
9
|
+
<br />
|
|
6
10
|
|
|
7
|
-
|
|
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
|
|
25
|
+
npm i react-native-nitro-fetch react-native-nitro-modules
|
|
13
26
|
```
|
|
14
27
|
|
|
15
|
-
|
|
28
|
+
> [Nitro Modules](https://github.com/mrousavy/nitro) requires react-native 0.75+ or higher
|
|
16
29
|
|
|
17
|
-
##
|
|
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
|
-
|
|
41
|
+
This can be used as a drop-in-replacement for the built-in `fetch(...)` method.
|
|
27
42
|
|
|
28
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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
|
-
|
|
50
|
+
await prefetch('https://httpbin.org/uuid', {
|
|
51
|
+
headers: { prefetchKey: 'uuid' }
|
|
52
|
+
})
|
|
53
|
+
```
|
|
43
54
|
|
|
44
|
-
|
|
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
|
-
|
|
57
|
+
```ts
|
|
58
|
+
import { fetch } from 'react-native-nitro-fetch'
|
|
49
59
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
66
|
+
### Prefetching for the next app launch
|
|
57
67
|
|
|
58
|
-
|
|
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 {
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
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
|
|
81
|
+
import { fetch } from 'react-native-nitro-fetch'
|
|
70
82
|
|
|
71
|
-
await
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
89
|
+
In our tests, prefetching alone yielded a **~220 ms** faster TTI (time-to-interactive) time! 🤯
|
|
77
90
|
|
|
78
|
-
|
|
79
|
-
import { prefetchOnAppStart } from 'react-native-nitro-fetch';
|
|
80
|
-
await prefetchOnAppStart('https://httpbin.org/uuid', { prefetchKey: 'uuid' });
|
|
81
|
-
```
|
|
91
|
+
### Worklet Mapping
|
|
82
92
|
|
|
83
|
-
|
|
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
|
|
89
|
-
'
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
##
|
|
109
|
+
## Project Status
|
|
97
110
|
|
|
98
|
-
|
|
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
|
|
104
|
-
- WebSockets
|
|
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
|
|
109
|
-
- API Reference
|
|
110
|
-
- Android Details
|
|
111
|
-
- iOS Details
|
|
112
|
-
- Prefetch & Auto-Prefetch
|
|
113
|
-
- Worklets
|
|
114
|
-
- Troubleshooting
|
|
115
|
-
- Cronet (Android) notes
|
|
116
|
-
- Cronet (iOS) notes
|
|
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
|
-
##
|
|
130
|
+
## Margelo
|
|
119
131
|
|
|
120
|
-
|
|
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)
|
package/android/build.gradle
CHANGED
|
@@ -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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
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
|
}
|
package/lib/module/fetch.js
CHANGED
|
@@ -114,7 +114,8 @@ function buildNitroRequest(input, init) {
|
|
|
114
114
|
method: method?.toUpperCase() ?? 'GET',
|
|
115
115
|
headers,
|
|
116
116
|
bodyString: normalized?.bodyString,
|
|
117
|
-
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
|
|
198
|
-
text: async () => res.bodyString
|
|
199
|
-
json: async () => JSON.parse(res.bodyString ??
|
|
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
|
|
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,
|
package/lib/module/fetch.js.map
CHANGED
|
@@ -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?:
|
|
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?:
|
|
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,
|
|
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,
|
|
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<
|
|
52
|
-
jni::local_ref<
|
|
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->
|
|
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() ?
|
|
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<
|
|
56
|
-
jni::local_ref<
|
|
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->
|
|
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() ?
|
|
97
|
+
value.bodyBytes.has_value() ? jni::make_jstring(value.bodyBytes.value()) : nullptr
|
|
101
98
|
);
|
|
102
99
|
}
|
|
103
100
|
};
|
|
@@ -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:
|
|
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.
|
|
46
|
+
}(), { () -> bridge.std__optional_std__string_ in
|
|
47
47
|
if let __unwrappedValue = bodyBytes {
|
|
48
|
-
return bridge.
|
|
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:
|
|
149
|
+
var bodyBytes: String? {
|
|
150
150
|
@inline(__always)
|
|
151
151
|
get {
|
|
152
|
-
return
|
|
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.
|
|
163
|
+
self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
|
|
157
164
|
if let __unwrappedValue = newValue {
|
|
158
|
-
return bridge.
|
|
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:
|
|
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.
|
|
34
|
+
}(), { () -> bridge.std__optional_std__string_ in
|
|
35
35
|
if let __unwrappedValue = bodyBytes {
|
|
36
|
-
return bridge.
|
|
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:
|
|
139
|
+
var bodyBytes: String? {
|
|
140
140
|
@inline(__always)
|
|
141
141
|
get {
|
|
142
|
-
return
|
|
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.
|
|
153
|
+
self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
|
|
147
154
|
if let __unwrappedValue = newValue {
|
|
148
|
-
return bridge.
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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::
|
|
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
package/src/NitroFetch.nitro.ts
CHANGED
|
@@ -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 () =>
|
|
184
|
-
text: async () => res.bodyString
|
|
185
|
-
json: async () => JSON.parse(res.bodyString ??
|
|
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
|
|
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);
|