react-native-nitro-fetch 0.1.6 → 0.2.0

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 (155) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +3 -1
  3. package/android/src/main/java/com/margelo/nitro/nitrofetch/CronetExtensions.kt +31 -0
  4. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroCronet.kt +89 -0
  5. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +115 -28
  6. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroUrlRequest.kt +35 -0
  7. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroUrlRequestBuilder.kt +181 -0
  8. package/ios/HybridNitroCronet.swift +31 -0
  9. package/ios/HybridUrlRequest.swift +41 -0
  10. package/ios/HybridUrlRequestBuilder.swift +255 -0
  11. package/ios/NitroAutoPrefetcher.swift +3 -1
  12. package/ios/NitroFetchClient.swift +87 -5
  13. package/ios/URLSessionExtensions.swift +36 -0
  14. package/lib/module/NitroCronet.nitro.js +4 -0
  15. package/lib/module/NitroCronet.nitro.js.map +1 -0
  16. package/lib/module/NitroInstances.js +1 -0
  17. package/lib/module/NitroInstances.js.map +1 -1
  18. package/lib/module/fetch.js +179 -9
  19. package/lib/module/fetch.js.map +1 -1
  20. package/lib/typescript/src/NitroCronet.nitro.d.ts +53 -0
  21. package/lib/typescript/src/NitroCronet.nitro.d.ts.map +1 -0
  22. package/lib/typescript/src/NitroFetch.nitro.d.ts +10 -0
  23. package/lib/typescript/src/NitroFetch.nitro.d.ts.map +1 -1
  24. package/lib/typescript/src/NitroInstances.d.ts +3 -1
  25. package/lib/typescript/src/NitroInstances.d.ts.map +1 -1
  26. package/lib/typescript/src/fetch.d.ts +5 -2
  27. package/lib/typescript/src/fetch.d.ts.map +1 -1
  28. package/lib/typescript/src/index.d.ts +1 -1
  29. package/lib/typescript/src/index.d.ts.map +1 -1
  30. package/nitro.json +34 -6
  31. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo.hpp +82 -0
  32. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.hpp +84 -0
  33. package/nitrogen/generated/android/c++/JFunc_void_UrlResponseInfo_std__string.hpp +82 -0
  34. package/nitrogen/generated/android/c++/JFunc_void_std__optional_UrlResponseInfo_.hpp +83 -0
  35. package/nitrogen/generated/android/c++/JFunc_void_std__optional_UrlResponseInfo__RequestException.hpp +85 -0
  36. package/nitrogen/generated/android/c++/JHttpHeader.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.cpp +23 -16
  38. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.hpp +20 -21
  39. package/nitrogen/generated/android/c++/JHybridNitroCronetSpec.cpp +57 -0
  40. package/nitrogen/generated/android/c++/JHybridNitroCronetSpec.hpp +63 -0
  41. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.cpp +32 -16
  42. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.hpp +21 -21
  43. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.cpp +22 -15
  44. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.hpp +20 -21
  45. package/nitrogen/generated/android/c++/JHybridUrlRequestBuilderSpec.cpp +123 -0
  46. package/nitrogen/generated/android/c++/JHybridUrlRequestBuilderSpec.hpp +73 -0
  47. package/nitrogen/generated/android/c++/JHybridUrlRequestSpec.cpp +69 -0
  48. package/nitrogen/generated/android/c++/JHybridUrlRequestSpec.hpp +67 -0
  49. package/nitrogen/generated/android/c++/JNitroFormDataPart.hpp +74 -0
  50. package/nitrogen/generated/android/c++/JNitroHeader.hpp +7 -3
  51. package/nitrogen/generated/android/c++/JNitroRequest.hpp +39 -6
  52. package/nitrogen/generated/android/c++/JNitroRequestMethod.hpp +9 -10
  53. package/nitrogen/generated/android/c++/JNitroResponse.hpp +9 -4
  54. package/nitrogen/generated/android/c++/JRequestException.hpp +57 -0
  55. package/nitrogen/generated/android/c++/JUrlResponseInfo.hpp +146 -0
  56. package/nitrogen/generated/android/c++/JVariant_ArrayBuffer_String.cpp +26 -0
  57. package/nitrogen/generated/android/c++/JVariant_ArrayBuffer_String.hpp +70 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo.kt +80 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.kt +80 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__string.kt +80 -0
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo_.kt +80 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo__RequestException.kt +80 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HttpHeader.kt +41 -0
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNativeStorageSpec.kt +18 -16
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroCronetSpec.kt +54 -0
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec.kt +23 -16
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchSpec.kt +18 -16
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridUrlRequestBuilderSpec.kt +125 -0
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridUrlRequestSpec.kt +70 -0
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroFormDataPart.kt +50 -0
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroHeader.kt +19 -10
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequest.kt +40 -25
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequestMethod.kt +3 -1
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroResponse.kt +39 -30
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/RequestException.kt +38 -0
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/UrlResponseInfo.kt +65 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/Variant_ArrayBuffer_String.kt +53 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/nitrofetchOnLoad.kt +1 -1
  79. package/nitrogen/generated/android/nitrofetch+autolinking.cmake +8 -1
  80. package/nitrogen/generated/android/nitrofetch+autolinking.gradle +1 -1
  81. package/nitrogen/generated/android/nitrofetchOnLoad.cpp +85 -33
  82. package/nitrogen/generated/android/nitrofetchOnLoad.hpp +14 -5
  83. package/nitrogen/generated/ios/NitroFetch+autolinking.rb +2 -2
  84. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.cpp +102 -10
  85. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.hpp +359 -24
  86. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Umbrella.hpp +32 -1
  87. package/nitrogen/generated/ios/NitroFetchAutolinking.mm +9 -1
  88. package/nitrogen/generated/ios/NitroFetchAutolinking.swift +29 -22
  89. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.cpp +1 -1
  90. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.hpp +10 -1
  91. package/nitrogen/generated/ios/c++/HybridNitroCronetSpecSwift.cpp +11 -0
  92. package/nitrogen/generated/ios/c++/HybridNitroCronetSpecSwift.hpp +85 -0
  93. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.cpp +1 -1
  94. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.hpp +22 -4
  95. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.cpp +1 -1
  96. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.hpp +10 -1
  97. package/nitrogen/generated/ios/c++/HybridUrlRequestBuilderSpecSwift.cpp +11 -0
  98. package/nitrogen/generated/ios/c++/HybridUrlRequestBuilderSpecSwift.hpp +163 -0
  99. package/nitrogen/generated/ios/c++/HybridUrlRequestSpecSwift.cpp +11 -0
  100. package/nitrogen/generated/ios/c++/HybridUrlRequestSpecSwift.hpp +106 -0
  101. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  102. package/nitrogen/generated/ios/swift/Func_void_NitroResponse.swift +1 -2
  103. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo.swift +46 -0
  104. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.swift +46 -0
  105. package/nitrogen/generated/ios/swift/Func_void_UrlResponseInfo_std__string.swift +46 -0
  106. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  107. package/nitrogen/generated/ios/swift/Func_void_std__optional_UrlResponseInfo_.swift +46 -0
  108. package/nitrogen/generated/ios/swift/Func_void_std__optional_UrlResponseInfo__RequestException.swift +46 -0
  109. package/nitrogen/generated/ios/swift/HttpHeader.swift +34 -0
  110. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec.swift +10 -4
  111. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec_cxx.swift +18 -3
  112. package/nitrogen/generated/ios/swift/HybridNitroCronetSpec.swift +55 -0
  113. package/nitrogen/generated/ios/swift/HybridNitroCronetSpec_cxx.swift +141 -0
  114. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec.swift +11 -4
  115. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec_cxx.swift +29 -3
  116. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec.swift +10 -4
  117. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec_cxx.swift +18 -3
  118. package/nitrogen/generated/ios/swift/HybridUrlRequestBuilderSpec.swift +65 -0
  119. package/nitrogen/generated/ios/swift/HybridUrlRequestBuilderSpec_cxx.swift +305 -0
  120. package/nitrogen/generated/ios/swift/HybridUrlRequestSpec.swift +59 -0
  121. package/nitrogen/generated/ios/swift/HybridUrlRequestSpec_cxx.swift +182 -0
  122. package/nitrogen/generated/ios/swift/NitroFormDataPart.swift +101 -0
  123. package/nitrogen/generated/ios/swift/NitroHeader.swift +5 -17
  124. package/nitrogen/generated/ios/swift/NitroRequest.swift +111 -121
  125. package/nitrogen/generated/ios/swift/NitroRequestMethod.swift +1 -1
  126. package/nitrogen/generated/ios/swift/NitroResponse.swift +40 -97
  127. package/nitrogen/generated/ios/swift/RequestException.swift +29 -0
  128. package/nitrogen/generated/ios/swift/UrlResponseInfo.swift +118 -0
  129. package/nitrogen/generated/ios/swift/Variant_ArrayBuffer_String.swift +18 -0
  130. package/nitrogen/generated/shared/c++/HttpHeader.hpp +87 -0
  131. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.cpp +1 -1
  132. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.hpp +1 -1
  133. package/nitrogen/generated/shared/c++/HybridNitroCronetSpec.cpp +21 -0
  134. package/nitrogen/generated/shared/c++/HybridNitroCronetSpec.hpp +65 -0
  135. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.cpp +2 -1
  136. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.hpp +3 -1
  137. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.cpp +1 -1
  138. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.hpp +1 -1
  139. package/nitrogen/generated/shared/c++/HybridUrlRequestBuilderSpec.cpp +31 -0
  140. package/nitrogen/generated/shared/c++/HybridUrlRequestBuilderSpec.hpp +85 -0
  141. package/nitrogen/generated/shared/c++/HybridUrlRequestSpec.cpp +25 -0
  142. package/nitrogen/generated/shared/c++/HybridUrlRequestSpec.hpp +66 -0
  143. package/nitrogen/generated/shared/c++/NitroFormDataPart.hpp +100 -0
  144. package/nitrogen/generated/shared/c++/NitroHeader.hpp +24 -8
  145. package/nitrogen/generated/shared/c++/NitroRequest.hpp +51 -24
  146. package/nitrogen/generated/shared/c++/NitroRequestMethod.hpp +1 -1
  147. package/nitrogen/generated/shared/c++/NitroResponse.hpp +42 -26
  148. package/nitrogen/generated/shared/c++/RequestException.hpp +83 -0
  149. package/nitrogen/generated/shared/c++/UrlResponseInfo.hpp +123 -0
  150. package/package.json +10 -10
  151. package/src/NitroCronet.nitro.ts +72 -0
  152. package/src/NitroFetch.nitro.ts +28 -6
  153. package/src/NitroInstances.ts +4 -0
  154. package/src/fetch.ts +214 -13
  155. package/src/index.tsx +1 -1
@@ -0,0 +1,84 @@
1
+ ///
2
+ /// JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "UrlResponseInfo.hpp"
14
+ #include <NitroModules/ArrayBuffer.hpp>
15
+ #include <functional>
16
+ #include <NitroModules/JNICallable.hpp>
17
+ #include "JUrlResponseInfo.hpp"
18
+ #include <string>
19
+ #include <unordered_map>
20
+ #include "HttpHeader.hpp"
21
+ #include <vector>
22
+ #include "JHttpHeader.hpp"
23
+ #include <NitroModules/JArrayBuffer.hpp>
24
+
25
+ namespace margelo::nitro::nitrofetch {
26
+
27
+ using namespace facebook;
28
+
29
+ /**
30
+ * Represents the Java/Kotlin callback `(info: UrlResponseInfo, byteBuffer: ArrayBuffer, bytesRead: Double) -> Unit`.
31
+ * This can be passed around between C++ and Java/Kotlin.
32
+ */
33
+ struct JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double: public jni::JavaClass<JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double> {
34
+ public:
35
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double;";
36
+
37
+ public:
38
+ /**
39
+ * Invokes the function this `JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double` instance holds through JNI.
40
+ */
41
+ void invoke(const UrlResponseInfo& info, const std::shared_ptr<ArrayBuffer>& byteBuffer, double bytesRead) const {
42
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUrlResponseInfo> /* info */, jni::alias_ref<JArrayBuffer::javaobject> /* byteBuffer */, double /* bytesRead */)>("invoke");
43
+ method(self(), JUrlResponseInfo::fromCpp(info), JArrayBuffer::wrap(byteBuffer), bytesRead);
44
+ }
45
+ };
46
+
47
+ /**
48
+ * An implementation of Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double that is backed by a C++ implementation (using `std::function<...>`)
49
+ */
50
+ class JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx final: public jni::HybridClass<JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx, JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double> {
51
+ public:
52
+ static jni::local_ref<JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double::javaobject> fromCpp(const std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>& func) {
53
+ return JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx::newObjectCxxArgs(func);
54
+ }
55
+
56
+ public:
57
+ /**
58
+ * Invokes the C++ `std::function<...>` this `JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx` instance holds.
59
+ */
60
+ void invoke_cxx(jni::alias_ref<JUrlResponseInfo> info, jni::alias_ref<JArrayBuffer::javaobject> byteBuffer, double bytesRead) {
61
+ _func(info->toCpp(), byteBuffer->cthis()->getArrayBuffer(), bytesRead);
62
+ }
63
+
64
+ public:
65
+ [[nodiscard]]
66
+ inline const std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>& getFunction() const {
67
+ return _func;
68
+ }
69
+
70
+ public:
71
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx;";
72
+ static void registerNatives() {
73
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx::invoke_cxx)});
74
+ }
75
+
76
+ private:
77
+ explicit JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx(const std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>& func): _func(func) { }
78
+
79
+ private:
80
+ friend HybridBase;
81
+ std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)> _func;
82
+ };
83
+
84
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,82 @@
1
+ ///
2
+ /// JFunc_void_UrlResponseInfo_std__string.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "UrlResponseInfo.hpp"
14
+ #include <string>
15
+ #include <functional>
16
+ #include <NitroModules/JNICallable.hpp>
17
+ #include "JUrlResponseInfo.hpp"
18
+ #include <unordered_map>
19
+ #include "HttpHeader.hpp"
20
+ #include <vector>
21
+ #include "JHttpHeader.hpp"
22
+
23
+ namespace margelo::nitro::nitrofetch {
24
+
25
+ using namespace facebook;
26
+
27
+ /**
28
+ * Represents the Java/Kotlin callback `(info: UrlResponseInfo, newLocationUrl: String) -> Unit`.
29
+ * This can be passed around between C++ and Java/Kotlin.
30
+ */
31
+ struct JFunc_void_UrlResponseInfo_std__string: public jni::JavaClass<JFunc_void_UrlResponseInfo_std__string> {
32
+ public:
33
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__string;";
34
+
35
+ public:
36
+ /**
37
+ * Invokes the function this `JFunc_void_UrlResponseInfo_std__string` instance holds through JNI.
38
+ */
39
+ void invoke(const UrlResponseInfo& info, const std::string& newLocationUrl) const {
40
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUrlResponseInfo> /* info */, jni::alias_ref<jni::JString> /* newLocationUrl */)>("invoke");
41
+ method(self(), JUrlResponseInfo::fromCpp(info), jni::make_jstring(newLocationUrl));
42
+ }
43
+ };
44
+
45
+ /**
46
+ * An implementation of Func_void_UrlResponseInfo_std__string that is backed by a C++ implementation (using `std::function<...>`)
47
+ */
48
+ class JFunc_void_UrlResponseInfo_std__string_cxx final: public jni::HybridClass<JFunc_void_UrlResponseInfo_std__string_cxx, JFunc_void_UrlResponseInfo_std__string> {
49
+ public:
50
+ static jni::local_ref<JFunc_void_UrlResponseInfo_std__string::javaobject> fromCpp(const std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>& func) {
51
+ return JFunc_void_UrlResponseInfo_std__string_cxx::newObjectCxxArgs(func);
52
+ }
53
+
54
+ public:
55
+ /**
56
+ * Invokes the C++ `std::function<...>` this `JFunc_void_UrlResponseInfo_std__string_cxx` instance holds.
57
+ */
58
+ void invoke_cxx(jni::alias_ref<JUrlResponseInfo> info, jni::alias_ref<jni::JString> newLocationUrl) {
59
+ _func(info->toCpp(), newLocationUrl->toStdString());
60
+ }
61
+
62
+ public:
63
+ [[nodiscard]]
64
+ inline const std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>& getFunction() const {
65
+ return _func;
66
+ }
67
+
68
+ public:
69
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_UrlResponseInfo_std__string_cxx;";
70
+ static void registerNatives() {
71
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_UrlResponseInfo_std__string_cxx::invoke_cxx)});
72
+ }
73
+
74
+ private:
75
+ explicit JFunc_void_UrlResponseInfo_std__string_cxx(const std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>& func): _func(func) { }
76
+
77
+ private:
78
+ friend HybridBase;
79
+ std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)> _func;
80
+ };
81
+
82
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,83 @@
1
+ ///
2
+ /// JFunc_void_std__optional_UrlResponseInfo_.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "UrlResponseInfo.hpp"
14
+ #include <optional>
15
+ #include <functional>
16
+ #include <NitroModules/JNICallable.hpp>
17
+ #include "JUrlResponseInfo.hpp"
18
+ #include <string>
19
+ #include <unordered_map>
20
+ #include "HttpHeader.hpp"
21
+ #include <vector>
22
+ #include "JHttpHeader.hpp"
23
+
24
+ namespace margelo::nitro::nitrofetch {
25
+
26
+ using namespace facebook;
27
+
28
+ /**
29
+ * Represents the Java/Kotlin callback `(info: UrlResponseInfo?) -> Unit`.
30
+ * This can be passed around between C++ and Java/Kotlin.
31
+ */
32
+ struct JFunc_void_std__optional_UrlResponseInfo_: public jni::JavaClass<JFunc_void_std__optional_UrlResponseInfo_> {
33
+ public:
34
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo_;";
35
+
36
+ public:
37
+ /**
38
+ * Invokes the function this `JFunc_void_std__optional_UrlResponseInfo_` instance holds through JNI.
39
+ */
40
+ void invoke(const std::optional<UrlResponseInfo>& info) const {
41
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUrlResponseInfo> /* info */)>("invoke");
42
+ method(self(), info.has_value() ? JUrlResponseInfo::fromCpp(info.value()) : nullptr);
43
+ }
44
+ };
45
+
46
+ /**
47
+ * An implementation of Func_void_std__optional_UrlResponseInfo_ that is backed by a C++ implementation (using `std::function<...>`)
48
+ */
49
+ class JFunc_void_std__optional_UrlResponseInfo__cxx final: public jni::HybridClass<JFunc_void_std__optional_UrlResponseInfo__cxx, JFunc_void_std__optional_UrlResponseInfo_> {
50
+ public:
51
+ static jni::local_ref<JFunc_void_std__optional_UrlResponseInfo_::javaobject> fromCpp(const std::function<void(const std::optional<UrlResponseInfo>& /* info */)>& func) {
52
+ return JFunc_void_std__optional_UrlResponseInfo__cxx::newObjectCxxArgs(func);
53
+ }
54
+
55
+ public:
56
+ /**
57
+ * Invokes the C++ `std::function<...>` this `JFunc_void_std__optional_UrlResponseInfo__cxx` instance holds.
58
+ */
59
+ void invoke_cxx(jni::alias_ref<JUrlResponseInfo> info) {
60
+ _func(info != nullptr ? std::make_optional(info->toCpp()) : std::nullopt);
61
+ }
62
+
63
+ public:
64
+ [[nodiscard]]
65
+ inline const std::function<void(const std::optional<UrlResponseInfo>& /* info */)>& getFunction() const {
66
+ return _func;
67
+ }
68
+
69
+ public:
70
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo__cxx;";
71
+ static void registerNatives() {
72
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__optional_UrlResponseInfo__cxx::invoke_cxx)});
73
+ }
74
+
75
+ private:
76
+ explicit JFunc_void_std__optional_UrlResponseInfo__cxx(const std::function<void(const std::optional<UrlResponseInfo>& /* info */)>& func): _func(func) { }
77
+
78
+ private:
79
+ friend HybridBase;
80
+ std::function<void(const std::optional<UrlResponseInfo>& /* info */)> _func;
81
+ };
82
+
83
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,85 @@
1
+ ///
2
+ /// JFunc_void_std__optional_UrlResponseInfo__RequestException.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "UrlResponseInfo.hpp"
14
+ #include <optional>
15
+ #include "RequestException.hpp"
16
+ #include <functional>
17
+ #include <NitroModules/JNICallable.hpp>
18
+ #include "JUrlResponseInfo.hpp"
19
+ #include <string>
20
+ #include <unordered_map>
21
+ #include "HttpHeader.hpp"
22
+ #include <vector>
23
+ #include "JHttpHeader.hpp"
24
+ #include "JRequestException.hpp"
25
+
26
+ namespace margelo::nitro::nitrofetch {
27
+
28
+ using namespace facebook;
29
+
30
+ /**
31
+ * Represents the Java/Kotlin callback `(info: UrlResponseInfo?, error: RequestException) -> Unit`.
32
+ * This can be passed around between C++ and Java/Kotlin.
33
+ */
34
+ struct JFunc_void_std__optional_UrlResponseInfo__RequestException: public jni::JavaClass<JFunc_void_std__optional_UrlResponseInfo__RequestException> {
35
+ public:
36
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo__RequestException;";
37
+
38
+ public:
39
+ /**
40
+ * Invokes the function this `JFunc_void_std__optional_UrlResponseInfo__RequestException` instance holds through JNI.
41
+ */
42
+ void invoke(const std::optional<UrlResponseInfo>& info, const RequestException& error) const {
43
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUrlResponseInfo> /* info */, jni::alias_ref<JRequestException> /* error */)>("invoke");
44
+ method(self(), info.has_value() ? JUrlResponseInfo::fromCpp(info.value()) : nullptr, JRequestException::fromCpp(error));
45
+ }
46
+ };
47
+
48
+ /**
49
+ * An implementation of Func_void_std__optional_UrlResponseInfo__RequestException that is backed by a C++ implementation (using `std::function<...>`)
50
+ */
51
+ class JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx final: public jni::HybridClass<JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx, JFunc_void_std__optional_UrlResponseInfo__RequestException> {
52
+ public:
53
+ static jni::local_ref<JFunc_void_std__optional_UrlResponseInfo__RequestException::javaobject> fromCpp(const std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>& func) {
54
+ return JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx::newObjectCxxArgs(func);
55
+ }
56
+
57
+ public:
58
+ /**
59
+ * Invokes the C++ `std::function<...>` this `JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx` instance holds.
60
+ */
61
+ void invoke_cxx(jni::alias_ref<JUrlResponseInfo> info, jni::alias_ref<JRequestException> error) {
62
+ _func(info != nullptr ? std::make_optional(info->toCpp()) : std::nullopt, error->toCpp());
63
+ }
64
+
65
+ public:
66
+ [[nodiscard]]
67
+ inline const std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>& getFunction() const {
68
+ return _func;
69
+ }
70
+
71
+ public:
72
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/Func_void_std__optional_UrlResponseInfo__RequestException_cxx;";
73
+ static void registerNatives() {
74
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx::invoke_cxx)});
75
+ }
76
+
77
+ private:
78
+ explicit JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx(const std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>& func): _func(func) { }
79
+
80
+ private:
81
+ friend HybridBase;
82
+ std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)> _func;
83
+ };
84
+
85
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JHttpHeader.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "HttpHeader.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::nitrofetch {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "HttpHeader" and the the Kotlin data class "HttpHeader".
21
+ */
22
+ struct JHttpHeader final: public jni::JavaClass<JHttpHeader> {
23
+ public:
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HttpHeader;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct HttpHeader by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ HttpHeader toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldKey = clazz->getField<jni::JString>("key");
35
+ jni::local_ref<jni::JString> key = this->getFieldValue(fieldKey);
36
+ static const auto fieldValue = clazz->getField<jni::JString>("value");
37
+ jni::local_ref<jni::JString> value = this->getFieldValue(fieldValue);
38
+ return HttpHeader(
39
+ key->toStdString(),
40
+ value->toStdString()
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JHttpHeader::javaobject> fromCpp(const HttpHeader& value) {
50
+ using JSignature = JHttpHeader(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ jni::make_jstring(value.key),
56
+ jni::make_jstring(value.value)
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::nitrofetch
@@ -2,7 +2,7 @@
2
2
  /// JHybridNativeStorageSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridNativeStorageSpec.hpp"
@@ -13,24 +13,31 @@
13
13
 
14
14
  namespace margelo::nitro::nitrofetch {
15
15
 
16
- jni::local_ref<JHybridNativeStorageSpec::jhybriddata> JHybridNativeStorageSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
17
- return makeCxxInstance(jThis);
16
+ std::shared_ptr<JHybridNativeStorageSpec> JHybridNativeStorageSpec::JavaPart::getJHybridNativeStorageSpec() {
17
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
18
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNativeStorageSpec>(hybridObject);
19
+ if (castHybridObject == nullptr) [[unlikely]] {
20
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNativeStorageSpec!");
21
+ }
22
+ return castHybridObject;
18
23
  }
19
24
 
20
- void JHybridNativeStorageSpec::registerNatives() {
21
- registerHybrid({
22
- makeNativeMethod("initHybrid", JHybridNativeStorageSpec::initHybrid),
23
- });
25
+ jni::local_ref<JHybridNativeStorageSpec::CxxPart::jhybriddata> JHybridNativeStorageSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
26
+ return makeCxxInstance(jThis);
24
27
  }
25
28
 
26
- size_t JHybridNativeStorageSpec::getExternalMemorySize() noexcept {
27
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
28
- return method(_javaPart);
29
+ std::shared_ptr<JHybridObject> JHybridNativeStorageSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
30
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNativeStorageSpec::JavaPart>(javaPart);
31
+ if (castJavaPart == nullptr) [[unlikely]] {
32
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNativeStorageSpec::JavaPart!");
33
+ }
34
+ return std::make_shared<JHybridNativeStorageSpec>(castJavaPart);
29
35
  }
30
36
 
31
- void JHybridNativeStorageSpec::dispose() noexcept {
32
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
33
- method(_javaPart);
37
+ void JHybridNativeStorageSpec::CxxPart::registerNatives() {
38
+ registerHybrid({
39
+ makeNativeMethod("initHybrid", JHybridNativeStorageSpec::CxxPart::initHybrid),
40
+ });
34
41
  }
35
42
 
36
43
  // Properties
@@ -38,16 +45,16 @@ namespace margelo::nitro::nitrofetch {
38
45
 
39
46
  // Methods
40
47
  std::string JHybridNativeStorageSpec::getString(const std::string& key) {
41
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<jni::JString> /* key */)>("getString");
48
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<jni::JString> /* key */)>("getString");
42
49
  auto __result = method(_javaPart, jni::make_jstring(key));
43
50
  return __result->toStdString();
44
51
  }
45
52
  void JHybridNativeStorageSpec::setString(const std::string& key, const std::string& value) {
46
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* key */, jni::alias_ref<jni::JString> /* value */)>("setString");
53
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* key */, jni::alias_ref<jni::JString> /* value */)>("setString");
47
54
  method(_javaPart, jni::make_jstring(key), jni::make_jstring(value));
48
55
  }
49
56
  void JHybridNativeStorageSpec::removeString(const std::string& key) {
50
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* key */)>("removeString");
57
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* key */)>("removeString");
51
58
  method(_javaPart, jni::make_jstring(key));
52
59
  }
53
60
 
@@ -2,7 +2,7 @@
2
2
  /// HybridNativeStorageSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -18,32 +18,33 @@ namespace margelo::nitro::nitrofetch {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNativeStorageSpec: public jni::HybridClass<JHybridNativeStorageSpec, JHybridObject>,
22
- public virtual HybridNativeStorageSpec {
21
+ class JHybridNativeStorageSpec: public virtual HybridNativeStorageSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNativeStorageSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridNativeStorageSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNativeStorageSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNativeStorageSpec;";
25
+ std::shared_ptr<JHybridNativeStorageSpec> getJHybridNativeStorageSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNativeStorageSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridNativeStorageSpec(const jni::local_ref<JHybridNativeStorageSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNativeStorageSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNativeStorageSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- void dispose() noexcept override;
44
-
45
- public:
46
- inline const jni::global_ref<JHybridNativeStorageSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNativeStorageSpec::JavaPart>& getJavaPart() const noexcept {
47
48
  return _javaPart;
48
49
  }
49
50
 
@@ -58,9 +59,7 @@ namespace margelo::nitro::nitrofetch {
58
59
  void removeString(const std::string& key) override;
59
60
 
60
61
  private:
61
- friend HybridBase;
62
- using HybridBase::HybridBase;
63
- jni::global_ref<JHybridNativeStorageSpec::javaobject> _javaPart;
62
+ jni::global_ref<JHybridNativeStorageSpec::JavaPart> _javaPart;
64
63
  };
65
64
 
66
65
  } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,57 @@
1
+ ///
2
+ /// JHybridNitroCronetSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JHybridNitroCronetSpec.hpp"
9
+
10
+ // Forward declaration of `HybridUrlRequestBuilderSpec` to properly resolve imports.
11
+ namespace margelo::nitro::nitrofetch { class HybridUrlRequestBuilderSpec; }
12
+
13
+ #include <memory>
14
+ #include "HybridUrlRequestBuilderSpec.hpp"
15
+ #include "JHybridUrlRequestBuilderSpec.hpp"
16
+ #include <string>
17
+
18
+ namespace margelo::nitro::nitrofetch {
19
+
20
+ std::shared_ptr<JHybridNitroCronetSpec> JHybridNitroCronetSpec::JavaPart::getJHybridNitroCronetSpec() {
21
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
22
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroCronetSpec>(hybridObject);
23
+ if (castHybridObject == nullptr) [[unlikely]] {
24
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroCronetSpec!");
25
+ }
26
+ return castHybridObject;
27
+ }
28
+
29
+ jni::local_ref<JHybridNitroCronetSpec::CxxPart::jhybriddata> JHybridNitroCronetSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
30
+ return makeCxxInstance(jThis);
31
+ }
32
+
33
+ std::shared_ptr<JHybridObject> JHybridNitroCronetSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
34
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroCronetSpec::JavaPart>(javaPart);
35
+ if (castJavaPart == nullptr) [[unlikely]] {
36
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroCronetSpec::JavaPart!");
37
+ }
38
+ return std::make_shared<JHybridNitroCronetSpec>(castJavaPart);
39
+ }
40
+
41
+ void JHybridNitroCronetSpec::CxxPart::registerNatives() {
42
+ registerHybrid({
43
+ makeNativeMethod("initHybrid", JHybridNitroCronetSpec::CxxPart::initHybrid),
44
+ });
45
+ }
46
+
47
+ // Properties
48
+
49
+
50
+ // Methods
51
+ std::shared_ptr<HybridUrlRequestBuilderSpec> JHybridNitroCronetSpec::newUrlRequestBuilder(const std::string& url) {
52
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridUrlRequestBuilderSpec::JavaPart>(jni::alias_ref<jni::JString> /* url */)>("newUrlRequestBuilder");
53
+ auto __result = method(_javaPart, jni::make_jstring(url));
54
+ return __result->getJHybridUrlRequestBuilderSpec();
55
+ }
56
+
57
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,63 @@
1
+ ///
2
+ /// HybridNitroCronetSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <NitroModules/JHybridObject.hpp>
11
+ #include <fbjni/fbjni.h>
12
+ #include "HybridNitroCronetSpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::nitrofetch {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridNitroCronetSpec: public virtual HybridNitroCronetSpec, public virtual JHybridObject {
22
+ public:
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroCronetSpec;";
25
+ std::shared_ptr<JHybridNitroCronetSpec> getJHybridNitroCronetSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroCronetSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
35
+
36
+ public:
37
+ explicit JHybridNitroCronetSpec(const jni::local_ref<JHybridNitroCronetSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroCronetSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
41
+ ~JHybridNitroCronetSpec() override {
42
+ // Hermes GC can destroy JS objects on a non-JNI Thread.
43
+ jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
44
+ }
45
+
46
+ public:
47
+ inline const jni::global_ref<JHybridNitroCronetSpec::JavaPart>& getJavaPart() const noexcept {
48
+ return _javaPart;
49
+ }
50
+
51
+ public:
52
+ // Properties
53
+
54
+
55
+ public:
56
+ // Methods
57
+ std::shared_ptr<HybridUrlRequestBuilderSpec> newUrlRequestBuilder(const std::string& url) override;
58
+
59
+ private:
60
+ jni::global_ref<JHybridNitroCronetSpec::JavaPart> _javaPart;
61
+ };
62
+
63
+ } // namespace margelo::nitro::nitrofetch