react-native-nitro-fetch 0.1.7 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +3 -1
  2. package/android/src/main/java/com/margelo/nitro/nitrofetch/CronetExtensions.kt +31 -0
  3. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroCronet.kt +89 -0
  4. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +115 -28
  5. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroUrlRequest.kt +35 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroUrlRequestBuilder.kt +181 -0
  7. package/ios/HybridNitroCronet.swift +31 -0
  8. package/ios/HybridUrlRequest.swift +41 -0
  9. package/ios/HybridUrlRequestBuilder.swift +255 -0
  10. package/ios/NitroAutoPrefetcher.swift +3 -1
  11. package/ios/NitroFetchClient.swift +87 -5
  12. package/ios/URLSessionExtensions.swift +36 -0
  13. package/lib/module/NitroCronet.nitro.js +4 -0
  14. package/lib/module/NitroCronet.nitro.js.map +1 -0
  15. package/lib/module/NitroInstances.js +1 -0
  16. package/lib/module/NitroInstances.js.map +1 -1
  17. package/lib/module/fetch.js +179 -9
  18. package/lib/module/fetch.js.map +1 -1
  19. package/lib/typescript/src/NitroCronet.nitro.d.ts +53 -0
  20. package/lib/typescript/src/NitroCronet.nitro.d.ts.map +1 -0
  21. package/lib/typescript/src/NitroFetch.nitro.d.ts +10 -0
  22. package/lib/typescript/src/NitroFetch.nitro.d.ts.map +1 -1
  23. package/lib/typescript/src/NitroInstances.d.ts +3 -1
  24. package/lib/typescript/src/NitroInstances.d.ts.map +1 -1
  25. package/lib/typescript/src/fetch.d.ts +5 -2
  26. package/lib/typescript/src/fetch.d.ts.map +1 -1
  27. package/lib/typescript/src/index.d.ts +1 -1
  28. package/lib/typescript/src/index.d.ts.map +1 -1
  29. package/nitro.json +34 -6
  30. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo.hpp +82 -0
  31. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.hpp +84 -0
  32. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo_std__string.hpp +82 -0
  33. package/nitrogen/generated/android/c++/JFunc_void_std__optional_UrlResponseInfo_.hpp +83 -0
  34. package/nitrogen/generated/android/c++/JFunc_void_std__optional_UrlResponseInfo__RequestException.hpp +85 -0
  35. package/nitrogen/generated/android/c++/JHttpHeader.hpp +61 -0
  36. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.cpp +23 -16
  37. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.hpp +20 -21
  38. package/nitrogen/generated/android/c++/JHybridNitroCronetSpec.cpp +57 -0
  39. package/nitrogen/generated/android/c++/JHybridNitroCronetSpec.hpp +63 -0
  40. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.cpp +32 -16
  41. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.hpp +21 -21
  42. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.cpp +22 -15
  43. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.hpp +20 -21
  44. package/nitrogen/generated/android/c++/JHybridUrlRequestBuilderSpec.cpp +123 -0
  45. package/nitrogen/generated/android/c++/JHybridUrlRequestBuilderSpec.hpp +73 -0
  46. package/nitrogen/generated/android/c++/JHybridUrlRequestSpec.cpp +69 -0
  47. package/nitrogen/generated/android/c++/JHybridUrlRequestSpec.hpp +67 -0
  48. package/nitrogen/generated/android/c++/JNitroFormDataPart.hpp +74 -0
  49. package/nitrogen/generated/android/c++/JNitroHeader.hpp +7 -3
  50. package/nitrogen/generated/android/c++/JNitroRequest.hpp +39 -6
  51. package/nitrogen/generated/android/c++/JNitroRequestMethod.hpp +9 -10
  52. package/nitrogen/generated/android/c++/JNitroResponse.hpp +9 -4
  53. package/nitrogen/generated/android/c++/JRequestException.hpp +57 -0
  54. package/nitrogen/generated/android/c++/JUrlResponseInfo.hpp +146 -0
  55. package/nitrogen/generated/android/c++/JVariant_ArrayBuffer_String.cpp +26 -0
  56. package/nitrogen/generated/android/c++/JVariant_ArrayBuffer_String.hpp +70 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo.kt +80 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.kt +80 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__string.kt +80 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo_.kt +80 -0
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo__RequestException.kt +80 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HttpHeader.kt +41 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNativeStorageSpec.kt +18 -16
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroCronetSpec.kt +54 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec.kt +23 -16
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchSpec.kt +18 -16
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridUrlRequestBuilderSpec.kt +125 -0
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridUrlRequestSpec.kt +70 -0
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroFormDataPart.kt +50 -0
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroHeader.kt +19 -10
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequest.kt +40 -25
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequestMethod.kt +3 -1
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroResponse.kt +39 -30
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/RequestException.kt +38 -0
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/UrlResponseInfo.kt +65 -0
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Variant_ArrayBuffer_String.kt +53 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/nitrofetchOnLoad.kt +1 -1
  78. package/nitrogen/generated/android/nitrofetch+autolinking.cmake +8 -1
  79. package/nitrogen/generated/android/nitrofetch+autolinking.gradle +1 -1
  80. package/nitrogen/generated/android/nitrofetchOnLoad.cpp +85 -33
  81. package/nitrogen/generated/android/nitrofetchOnLoad.hpp +14 -5
  82. package/nitrogen/generated/ios/NitroFetch+autolinking.rb +2 -2
  83. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.cpp +102 -10
  84. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.hpp +359 -24
  85. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Umbrella.hpp +32 -1
  86. package/nitrogen/generated/ios/NitroFetchAutolinking.mm +9 -1
  87. package/nitrogen/generated/ios/NitroFetchAutolinking.swift +29 -22
  88. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.cpp +1 -1
  89. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.hpp +10 -1
  90. package/nitrogen/generated/ios/c++/HybridNitroCronetSpecSwift.cpp +11 -0
  91. package/nitrogen/generated/ios/c++/HybridNitroCronetSpecSwift.hpp +85 -0
  92. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.cpp +1 -1
  93. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.hpp +22 -4
  94. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.cpp +1 -1
  95. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.hpp +10 -1
  96. package/nitrogen/generated/ios/c++/HybridUrlRequestBuilderSpecSwift.cpp +11 -0
  97. package/nitrogen/generated/ios/c++/HybridUrlRequestBuilderSpecSwift.hpp +163 -0
  98. package/nitrogen/generated/ios/c++/HybridUrlRequestSpecSwift.cpp +11 -0
  99. package/nitrogen/generated/ios/c++/HybridUrlRequestSpecSwift.hpp +106 -0
  100. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  101. package/nitrogen/generated/ios/swift/Func_void_NitroResponse.swift +1 -2
  102. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo.swift +46 -0
  103. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.swift +46 -0
  104. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo_std__string.swift +46 -0
  105. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  106. package/nitrogen/generated/ios/swift/Func_void_std__optional_UrlResponseInfo_.swift +46 -0
  107. package/nitrogen/generated/ios/swift/Func_void_std__optional_UrlResponseInfo__RequestException.swift +46 -0
  108. package/nitrogen/generated/ios/swift/HttpHeader.swift +34 -0
  109. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec.swift +10 -4
  110. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec_cxx.swift +18 -3
  111. package/nitrogen/generated/ios/swift/HybridNitroCronetSpec.swift +55 -0
  112. package/nitrogen/generated/ios/swift/HybridNitroCronetSpec_cxx.swift +141 -0
  113. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec.swift +11 -4
  114. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec_cxx.swift +29 -3
  115. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec.swift +10 -4
  116. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec_cxx.swift +18 -3
  117. package/nitrogen/generated/ios/swift/HybridUrlRequestBuilderSpec.swift +65 -0
  118. package/nitrogen/generated/ios/swift/HybridUrlRequestBuilderSpec_cxx.swift +305 -0
  119. package/nitrogen/generated/ios/swift/HybridUrlRequestSpec.swift +59 -0
  120. package/nitrogen/generated/ios/swift/HybridUrlRequestSpec_cxx.swift +182 -0
  121. package/nitrogen/generated/ios/swift/NitroFormDataPart.swift +101 -0
  122. package/nitrogen/generated/ios/swift/NitroHeader.swift +5 -17
  123. package/nitrogen/generated/ios/swift/NitroRequest.swift +111 -121
  124. package/nitrogen/generated/ios/swift/NitroRequestMethod.swift +1 -1
  125. package/nitrogen/generated/ios/swift/NitroResponse.swift +40 -97
  126. package/nitrogen/generated/ios/swift/RequestException.swift +29 -0
  127. package/nitrogen/generated/ios/swift/UrlResponseInfo.swift +118 -0
  128. package/nitrogen/generated/ios/swift/Variant_ArrayBuffer_String.swift +18 -0
  129. package/nitrogen/generated/shared/c++/HttpHeader.hpp +87 -0
  130. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.cpp +1 -1
  131. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.hpp +1 -1
  132. package/nitrogen/generated/shared/c++/HybridNitroCronetSpec.cpp +21 -0
  133. package/nitrogen/generated/shared/c++/HybridNitroCronetSpec.hpp +65 -0
  134. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.cpp +2 -1
  135. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.hpp +3 -1
  136. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.cpp +1 -1
  137. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.hpp +1 -1
  138. package/nitrogen/generated/shared/c++/HybridUrlRequestBuilderSpec.cpp +31 -0
  139. package/nitrogen/generated/shared/c++/HybridUrlRequestBuilderSpec.hpp +85 -0
  140. package/nitrogen/generated/shared/c++/HybridUrlRequestSpec.cpp +25 -0
  141. package/nitrogen/generated/shared/c++/HybridUrlRequestSpec.hpp +66 -0
  142. package/nitrogen/generated/shared/c++/NitroFormDataPart.hpp +100 -0
  143. package/nitrogen/generated/shared/c++/NitroHeader.hpp +24 -8
  144. package/nitrogen/generated/shared/c++/NitroRequest.hpp +51 -24
  145. package/nitrogen/generated/shared/c++/NitroRequestMethod.hpp +1 -1
  146. package/nitrogen/generated/shared/c++/NitroResponse.hpp +42 -26
  147. package/nitrogen/generated/shared/c++/RequestException.hpp +83 -0
  148. package/nitrogen/generated/shared/c++/UrlResponseInfo.hpp +123 -0
  149. package/package.json +13 -10
  150. package/src/NitroCronet.nitro.ts +72 -0
  151. package/src/NitroFetch.nitro.ts +28 -6
  152. package/src/NitroInstances.ts +4 -0
  153. package/src/fetch.ts +214 -13
  154. package/src/index.tsx +1 -1
@@ -2,7 +2,7 @@
2
2
  /// nitrofetch+autolinking.gradle
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  /// This is a Gradle file that adds all files generated by Nitrogen
@@ -2,7 +2,7 @@
2
2
  /// nitrofetchOnLoad.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #ifndef BUILDING_NITROFETCH_WITH_GENERATED_CMAKE_PROJECT
@@ -15,6 +15,14 @@
15
15
  #include <fbjni/fbjni.h>
16
16
  #include <NitroModules/HybridObjectRegistry.hpp>
17
17
 
18
+ #include "JHybridUrlRequestSpec.hpp"
19
+ #include "JHybridUrlRequestBuilderSpec.hpp"
20
+ #include "JFunc_void_UrlResponseInfo.hpp"
21
+ #include "JFunc_void_std__optional_UrlResponseInfo__RequestException.hpp"
22
+ #include "JFunc_void_std__optional_UrlResponseInfo_.hpp"
23
+ #include "JFunc_void_UrlResponseInfo_std__string.hpp"
24
+ #include "JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.hpp"
25
+ #include "JHybridNitroCronetSpec.hpp"
18
26
  #include "JHybridNitroFetchClientSpec.hpp"
19
27
  #include "JHybridNitroFetchSpec.hpp"
20
28
  #include "JHybridNativeStorageSpec.hpp"
@@ -23,42 +31,86 @@
23
31
  namespace margelo::nitro::nitrofetch {
24
32
 
25
33
  int initialize(JavaVM* vm) {
34
+ return facebook::jni::initialize(vm, []() {
35
+ ::margelo::nitro::nitrofetch::registerAllNatives();
36
+ });
37
+ }
38
+
39
+ struct JHybridNitroFetchSpecImpl: public jni::JavaClass<JHybridNitroFetchSpecImpl, JHybridNitroFetchSpec::JavaPart> {
40
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/NitroFetch;";
41
+ static std::shared_ptr<JHybridNitroFetchSpec> create() {
42
+ static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroFetchSpecImpl::javaobject()>();
43
+ jni::local_ref<JHybridNitroFetchSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
44
+ return javaPart->getJHybridNitroFetchSpec();
45
+ }
46
+ };
47
+ struct JHybridNitroFetchClientSpecImpl: public jni::JavaClass<JHybridNitroFetchClientSpecImpl, JHybridNitroFetchClientSpec::JavaPart> {
48
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/NitroFetchClient;";
49
+ static std::shared_ptr<JHybridNitroFetchClientSpec> create() {
50
+ static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroFetchClientSpecImpl::javaobject()>();
51
+ jni::local_ref<JHybridNitroFetchClientSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
52
+ return javaPart->getJHybridNitroFetchClientSpec();
53
+ }
54
+ };
55
+ struct JHybridNativeStorageSpecImpl: public jni::JavaClass<JHybridNativeStorageSpecImpl, JHybridNativeStorageSpec::JavaPart> {
56
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/NativeStorage;";
57
+ static std::shared_ptr<JHybridNativeStorageSpec> create() {
58
+ static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNativeStorageSpecImpl::javaobject()>();
59
+ jni::local_ref<JHybridNativeStorageSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
60
+ return javaPart->getJHybridNativeStorageSpec();
61
+ }
62
+ };
63
+ struct JHybridNitroCronetSpecImpl: public jni::JavaClass<JHybridNitroCronetSpecImpl, JHybridNitroCronetSpec::JavaPart> {
64
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/NitroCronet;";
65
+ static std::shared_ptr<JHybridNitroCronetSpec> create() {
66
+ static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroCronetSpecImpl::javaobject()>();
67
+ jni::local_ref<JHybridNitroCronetSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
68
+ return javaPart->getJHybridNitroCronetSpec();
69
+ }
70
+ };
71
+
72
+ void registerAllNatives() {
26
73
  using namespace margelo::nitro;
27
74
  using namespace margelo::nitro::nitrofetch;
28
- using namespace facebook;
29
75
 
30
- return facebook::jni::initialize(vm, [] {
31
- // Register native JNI methods
32
- margelo::nitro::nitrofetch::JHybridNitroFetchClientSpec::registerNatives();
33
- margelo::nitro::nitrofetch::JHybridNitroFetchSpec::registerNatives();
34
- margelo::nitro::nitrofetch::JHybridNativeStorageSpec::registerNatives();
76
+ // Register native JNI methods
77
+ margelo::nitro::nitrofetch::JHybridUrlRequestSpec::CxxPart::registerNatives();
78
+ margelo::nitro::nitrofetch::JHybridUrlRequestBuilderSpec::CxxPart::registerNatives();
79
+ margelo::nitro::nitrofetch::JFunc_void_UrlResponseInfo_cxx::registerNatives();
80
+ margelo::nitro::nitrofetch::JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx::registerNatives();
81
+ margelo::nitro::nitrofetch::JFunc_void_std__optional_UrlResponseInfo__cxx::registerNatives();
82
+ margelo::nitro::nitrofetch::JFunc_void_UrlResponseInfo_std__string_cxx::registerNatives();
83
+ margelo::nitro::nitrofetch::JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx::registerNatives();
84
+ margelo::nitro::nitrofetch::JHybridNitroCronetSpec::CxxPart::registerNatives();
85
+ margelo::nitro::nitrofetch::JHybridNitroFetchClientSpec::CxxPart::registerNatives();
86
+ margelo::nitro::nitrofetch::JHybridNitroFetchSpec::CxxPart::registerNatives();
87
+ margelo::nitro::nitrofetch::JHybridNativeStorageSpec::CxxPart::registerNatives();
35
88
 
36
- // Register Nitro Hybrid Objects
37
- HybridObjectRegistry::registerHybridObjectConstructor(
38
- "NitroFetch",
39
- []() -> std::shared_ptr<HybridObject> {
40
- static DefaultConstructableObject<JHybridNitroFetchSpec::javaobject> object("com/margelo/nitro/nitrofetch/NitroFetch");
41
- auto instance = object.create();
42
- return instance->cthis()->shared();
43
- }
44
- );
45
- HybridObjectRegistry::registerHybridObjectConstructor(
46
- "NitroFetchClient",
47
- []() -> std::shared_ptr<HybridObject> {
48
- static DefaultConstructableObject<JHybridNitroFetchClientSpec::javaobject> object("com/margelo/nitro/nitrofetch/NitroFetchClient");
49
- auto instance = object.create();
50
- return instance->cthis()->shared();
51
- }
52
- );
53
- HybridObjectRegistry::registerHybridObjectConstructor(
54
- "NativeStorage",
55
- []() -> std::shared_ptr<HybridObject> {
56
- static DefaultConstructableObject<JHybridNativeStorageSpec::javaobject> object("com/margelo/nitro/nitrofetch/NativeStorage");
57
- auto instance = object.create();
58
- return instance->cthis()->shared();
59
- }
60
- );
61
- });
89
+ // Register Nitro Hybrid Objects
90
+ HybridObjectRegistry::registerHybridObjectConstructor(
91
+ "NitroFetch",
92
+ []() -> std::shared_ptr<HybridObject> {
93
+ return JHybridNitroFetchSpecImpl::create();
94
+ }
95
+ );
96
+ HybridObjectRegistry::registerHybridObjectConstructor(
97
+ "NitroFetchClient",
98
+ []() -> std::shared_ptr<HybridObject> {
99
+ return JHybridNitroFetchClientSpecImpl::create();
100
+ }
101
+ );
102
+ HybridObjectRegistry::registerHybridObjectConstructor(
103
+ "NativeStorage",
104
+ []() -> std::shared_ptr<HybridObject> {
105
+ return JHybridNativeStorageSpecImpl::create();
106
+ }
107
+ );
108
+ HybridObjectRegistry::registerHybridObjectConstructor(
109
+ "NitroCronet",
110
+ []() -> std::shared_ptr<HybridObject> {
111
+ return JHybridNitroCronetSpecImpl::create();
112
+ }
113
+ );
62
114
  }
63
115
 
64
116
  } // namespace margelo::nitro::nitrofetch
@@ -2,24 +2,33 @@
2
2
  /// nitrofetchOnLoad.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include <jni.h>
9
+ #include <functional>
9
10
  #include <NitroModules/NitroDefines.hpp>
10
11
 
11
12
  namespace margelo::nitro::nitrofetch {
12
13
 
14
+ [[deprecated("Use registerNatives() instead.")]]
15
+ int initialize(JavaVM* vm);
16
+
13
17
  /**
14
- * Initializes the native (C++) part of nitrofetch, and autolinks all Hybrid Objects.
15
- * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
18
+ * Register the native (C++) part of nitrofetch, and autolinks all Hybrid Objects.
19
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
20
+ * inside a `facebook::jni::initialize(vm, ...)` call.
16
21
  * Example:
17
22
  * ```cpp (cpp-adapter.cpp)
18
23
  * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
- * return margelo::nitro::nitrofetch::initialize(vm);
24
+ * return facebook::jni::initialize(vm, []() {
25
+ * // register all nitrofetch HybridObjects
26
+ * margelo::nitro::nitrofetch::registerNatives();
27
+ * // any other custom registrations go here.
28
+ * });
20
29
  * }
21
30
  * ```
22
31
  */
23
- int initialize(JavaVM* vm);
32
+ void registerAllNatives();
24
33
 
25
34
  } // namespace margelo::nitro::nitrofetch
@@ -2,7 +2,7 @@
2
2
  # NitroFetch+autolinking.rb
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2026 Marc Rousavy @ Margelo
5
+ # Copyright © Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a Ruby script that adds all files generated by Nitrogen
@@ -52,7 +52,7 @@ def add_nitrogen_files(spec)
52
52
  spec.pod_target_xcconfig = current_pod_target_xcconfig.merge({
53
53
  # Use C++ 20
54
54
  "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
55
- # Enables C++ <-> Swift interop (by default it's only C)
55
+ # Enables C++ <-> Swift interop (by default it's only ObjC)
56
56
  "SWIFT_OBJC_INTEROP_MODE" => "objcxx",
57
57
  # Enables stricter modular headers
58
58
  "DEFINES_MODULE" => "YES",
@@ -2,21 +2,113 @@
2
2
  /// NitroFetch-Swift-Cxx-Bridge.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "NitroFetch-Swift-Cxx-Bridge.hpp"
9
9
 
10
10
  // Include C++ implementation defined types
11
11
  #include "HybridNativeStorageSpecSwift.hpp"
12
+ #include "HybridNitroCronetSpecSwift.hpp"
12
13
  #include "HybridNitroFetchClientSpecSwift.hpp"
13
14
  #include "HybridNitroFetchSpecSwift.hpp"
15
+ #include "HybridUrlRequestBuilderSpecSwift.hpp"
16
+ #include "HybridUrlRequestSpecSwift.hpp"
14
17
  #include "NitroFetch-Swift-Cxx-Umbrella.hpp"
18
+ #include <NitroModules/NitroDefines.hpp>
15
19
 
16
20
  namespace margelo::nitro::nitrofetch::bridge::swift {
17
21
 
22
+ // pragma MARK: std::shared_ptr<HybridUrlRequestSpec>
23
+ std::shared_ptr<HybridUrlRequestSpec> create_std__shared_ptr_HybridUrlRequestSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
24
+ NitroFetch::HybridUrlRequestSpec_cxx swiftPart = NitroFetch::HybridUrlRequestSpec_cxx::fromUnsafe(swiftUnsafePointer);
25
+ return std::make_shared<margelo::nitro::nitrofetch::HybridUrlRequestSpecSwift>(swiftPart);
26
+ }
27
+ void* NON_NULL get_std__shared_ptr_HybridUrlRequestSpec_(std__shared_ptr_HybridUrlRequestSpec_ cppType) {
28
+ std::shared_ptr<margelo::nitro::nitrofetch::HybridUrlRequestSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridUrlRequestSpecSwift>(cppType);
29
+ #ifdef NITRO_DEBUG
30
+ if (swiftWrapper == nullptr) [[unlikely]] {
31
+ throw std::runtime_error("Class \"HybridUrlRequestSpec\" is not implemented in Swift!");
32
+ }
33
+ #endif
34
+ NitroFetch::HybridUrlRequestSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
35
+ return swiftPart.toUnsafe();
36
+ }
37
+
38
+ // pragma MARK: std::function<void(const UrlResponseInfo& /* info */)>
39
+ Func_void_UrlResponseInfo create_Func_void_UrlResponseInfo(void* NON_NULL swiftClosureWrapper) noexcept {
40
+ auto swiftClosure = NitroFetch::Func_void_UrlResponseInfo::fromUnsafe(swiftClosureWrapper);
41
+ return [swiftClosure = std::move(swiftClosure)](const UrlResponseInfo& info) mutable -> void {
42
+ swiftClosure.call(info);
43
+ };
44
+ }
45
+
46
+ // pragma MARK: std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>
47
+ Func_void_std__optional_UrlResponseInfo__RequestException create_Func_void_std__optional_UrlResponseInfo__RequestException(void* NON_NULL swiftClosureWrapper) noexcept {
48
+ auto swiftClosure = NitroFetch::Func_void_std__optional_UrlResponseInfo__RequestException::fromUnsafe(swiftClosureWrapper);
49
+ return [swiftClosure = std::move(swiftClosure)](const std::optional<UrlResponseInfo>& info, const RequestException& error) mutable -> void {
50
+ swiftClosure.call(info, error);
51
+ };
52
+ }
53
+
54
+ // pragma MARK: std::function<void(const std::optional<UrlResponseInfo>& /* info */)>
55
+ Func_void_std__optional_UrlResponseInfo_ create_Func_void_std__optional_UrlResponseInfo_(void* NON_NULL swiftClosureWrapper) noexcept {
56
+ auto swiftClosure = NitroFetch::Func_void_std__optional_UrlResponseInfo_::fromUnsafe(swiftClosureWrapper);
57
+ return [swiftClosure = std::move(swiftClosure)](const std::optional<UrlResponseInfo>& info) mutable -> void {
58
+ swiftClosure.call(info);
59
+ };
60
+ }
61
+
62
+ // pragma MARK: std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>
63
+ Func_void_UrlResponseInfo_std__string create_Func_void_UrlResponseInfo_std__string(void* NON_NULL swiftClosureWrapper) noexcept {
64
+ auto swiftClosure = NitroFetch::Func_void_UrlResponseInfo_std__string::fromUnsafe(swiftClosureWrapper);
65
+ return [swiftClosure = std::move(swiftClosure)](const UrlResponseInfo& info, const std::string& newLocationUrl) mutable -> void {
66
+ swiftClosure.call(info, newLocationUrl);
67
+ };
68
+ }
69
+
70
+ // pragma MARK: std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>
71
+ Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double create_Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double(void* NON_NULL swiftClosureWrapper) noexcept {
72
+ auto swiftClosure = NitroFetch::Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double::fromUnsafe(swiftClosureWrapper);
73
+ return [swiftClosure = std::move(swiftClosure)](const UrlResponseInfo& info, const std::shared_ptr<ArrayBuffer>& byteBuffer, double bytesRead) mutable -> void {
74
+ swiftClosure.call(info, ArrayBufferHolder(byteBuffer), bytesRead);
75
+ };
76
+ }
77
+
78
+ // pragma MARK: std::shared_ptr<HybridUrlRequestBuilderSpec>
79
+ std::shared_ptr<HybridUrlRequestBuilderSpec> create_std__shared_ptr_HybridUrlRequestBuilderSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
80
+ NitroFetch::HybridUrlRequestBuilderSpec_cxx swiftPart = NitroFetch::HybridUrlRequestBuilderSpec_cxx::fromUnsafe(swiftUnsafePointer);
81
+ return std::make_shared<margelo::nitro::nitrofetch::HybridUrlRequestBuilderSpecSwift>(swiftPart);
82
+ }
83
+ void* NON_NULL get_std__shared_ptr_HybridUrlRequestBuilderSpec_(std__shared_ptr_HybridUrlRequestBuilderSpec_ cppType) {
84
+ std::shared_ptr<margelo::nitro::nitrofetch::HybridUrlRequestBuilderSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridUrlRequestBuilderSpecSwift>(cppType);
85
+ #ifdef NITRO_DEBUG
86
+ if (swiftWrapper == nullptr) [[unlikely]] {
87
+ throw std::runtime_error("Class \"HybridUrlRequestBuilderSpec\" is not implemented in Swift!");
88
+ }
89
+ #endif
90
+ NitroFetch::HybridUrlRequestBuilderSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
91
+ return swiftPart.toUnsafe();
92
+ }
93
+
94
+ // pragma MARK: std::shared_ptr<HybridNitroCronetSpec>
95
+ std::shared_ptr<HybridNitroCronetSpec> create_std__shared_ptr_HybridNitroCronetSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
96
+ NitroFetch::HybridNitroCronetSpec_cxx swiftPart = NitroFetch::HybridNitroCronetSpec_cxx::fromUnsafe(swiftUnsafePointer);
97
+ return std::make_shared<margelo::nitro::nitrofetch::HybridNitroCronetSpecSwift>(swiftPart);
98
+ }
99
+ void* NON_NULL get_std__shared_ptr_HybridNitroCronetSpec_(std__shared_ptr_HybridNitroCronetSpec_ cppType) {
100
+ std::shared_ptr<margelo::nitro::nitrofetch::HybridNitroCronetSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridNitroCronetSpecSwift>(cppType);
101
+ #ifdef NITRO_DEBUG
102
+ if (swiftWrapper == nullptr) [[unlikely]] {
103
+ throw std::runtime_error("Class \"HybridNitroCronetSpec\" is not implemented in Swift!");
104
+ }
105
+ #endif
106
+ NitroFetch::HybridNitroCronetSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
107
+ return swiftPart.toUnsafe();
108
+ }
109
+
18
110
  // pragma MARK: std::function<void(const NitroResponse& /* result */)>
19
- Func_void_NitroResponse create_Func_void_NitroResponse(void* _Nonnull swiftClosureWrapper) noexcept {
111
+ Func_void_NitroResponse create_Func_void_NitroResponse(void* NON_NULL swiftClosureWrapper) noexcept {
20
112
  auto swiftClosure = NitroFetch::Func_void_NitroResponse::fromUnsafe(swiftClosureWrapper);
21
113
  return [swiftClosure = std::move(swiftClosure)](const NitroResponse& result) mutable -> void {
22
114
  swiftClosure.call(result);
@@ -24,7 +116,7 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
24
116
  }
25
117
 
26
118
  // pragma MARK: std::function<void(const std::exception_ptr& /* error */)>
27
- Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* _Nonnull swiftClosureWrapper) noexcept {
119
+ Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept {
28
120
  auto swiftClosure = NitroFetch::Func_void_std__exception_ptr::fromUnsafe(swiftClosureWrapper);
29
121
  return [swiftClosure = std::move(swiftClosure)](const std::exception_ptr& error) mutable -> void {
30
122
  swiftClosure.call(error);
@@ -32,7 +124,7 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
32
124
  }
33
125
 
34
126
  // pragma MARK: std::function<void()>
35
- Func_void create_Func_void(void* _Nonnull swiftClosureWrapper) noexcept {
127
+ Func_void create_Func_void(void* NON_NULL swiftClosureWrapper) noexcept {
36
128
  auto swiftClosure = NitroFetch::Func_void::fromUnsafe(swiftClosureWrapper);
37
129
  return [swiftClosure = std::move(swiftClosure)]() mutable -> void {
38
130
  swiftClosure.call();
@@ -40,11 +132,11 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
40
132
  }
41
133
 
42
134
  // pragma MARK: std::shared_ptr<HybridNitroFetchClientSpec>
43
- std::shared_ptr<HybridNitroFetchClientSpec> create_std__shared_ptr_HybridNitroFetchClientSpec_(void* _Nonnull swiftUnsafePointer) noexcept {
135
+ std::shared_ptr<HybridNitroFetchClientSpec> create_std__shared_ptr_HybridNitroFetchClientSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
44
136
  NitroFetch::HybridNitroFetchClientSpec_cxx swiftPart = NitroFetch::HybridNitroFetchClientSpec_cxx::fromUnsafe(swiftUnsafePointer);
45
137
  return std::make_shared<margelo::nitro::nitrofetch::HybridNitroFetchClientSpecSwift>(swiftPart);
46
138
  }
47
- void* _Nonnull get_std__shared_ptr_HybridNitroFetchClientSpec_(std__shared_ptr_HybridNitroFetchClientSpec_ cppType) noexcept {
139
+ void* NON_NULL get_std__shared_ptr_HybridNitroFetchClientSpec_(std__shared_ptr_HybridNitroFetchClientSpec_ cppType) {
48
140
  std::shared_ptr<margelo::nitro::nitrofetch::HybridNitroFetchClientSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridNitroFetchClientSpecSwift>(cppType);
49
141
  #ifdef NITRO_DEBUG
50
142
  if (swiftWrapper == nullptr) [[unlikely]] {
@@ -56,11 +148,11 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
56
148
  }
57
149
 
58
150
  // pragma MARK: std::shared_ptr<HybridNitroFetchSpec>
59
- std::shared_ptr<HybridNitroFetchSpec> create_std__shared_ptr_HybridNitroFetchSpec_(void* _Nonnull swiftUnsafePointer) noexcept {
151
+ std::shared_ptr<HybridNitroFetchSpec> create_std__shared_ptr_HybridNitroFetchSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
60
152
  NitroFetch::HybridNitroFetchSpec_cxx swiftPart = NitroFetch::HybridNitroFetchSpec_cxx::fromUnsafe(swiftUnsafePointer);
61
153
  return std::make_shared<margelo::nitro::nitrofetch::HybridNitroFetchSpecSwift>(swiftPart);
62
154
  }
63
- void* _Nonnull get_std__shared_ptr_HybridNitroFetchSpec_(std__shared_ptr_HybridNitroFetchSpec_ cppType) noexcept {
155
+ void* NON_NULL get_std__shared_ptr_HybridNitroFetchSpec_(std__shared_ptr_HybridNitroFetchSpec_ cppType) {
64
156
  std::shared_ptr<margelo::nitro::nitrofetch::HybridNitroFetchSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridNitroFetchSpecSwift>(cppType);
65
157
  #ifdef NITRO_DEBUG
66
158
  if (swiftWrapper == nullptr) [[unlikely]] {
@@ -72,11 +164,11 @@ namespace margelo::nitro::nitrofetch::bridge::swift {
72
164
  }
73
165
 
74
166
  // pragma MARK: std::shared_ptr<HybridNativeStorageSpec>
75
- std::shared_ptr<HybridNativeStorageSpec> create_std__shared_ptr_HybridNativeStorageSpec_(void* _Nonnull swiftUnsafePointer) noexcept {
167
+ std::shared_ptr<HybridNativeStorageSpec> create_std__shared_ptr_HybridNativeStorageSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
76
168
  NitroFetch::HybridNativeStorageSpec_cxx swiftPart = NitroFetch::HybridNativeStorageSpec_cxx::fromUnsafe(swiftUnsafePointer);
77
169
  return std::make_shared<margelo::nitro::nitrofetch::HybridNativeStorageSpecSwift>(swiftPart);
78
170
  }
79
- void* _Nonnull get_std__shared_ptr_HybridNativeStorageSpec_(std__shared_ptr_HybridNativeStorageSpec_ cppType) noexcept {
171
+ void* NON_NULL get_std__shared_ptr_HybridNativeStorageSpec_(std__shared_ptr_HybridNativeStorageSpec_ cppType) {
80
172
  std::shared_ptr<margelo::nitro::nitrofetch::HybridNativeStorageSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::nitrofetch::HybridNativeStorageSpecSwift>(cppType);
81
173
  #ifdef NITRO_DEBUG
82
174
  if (swiftWrapper == nullptr) [[unlikely]] {