react-native-nitro-fetch 0.1.7 → 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 (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 +10 -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
  /// JHybridNitroFetchClientSpec.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 "JHybridNitroFetchClientSpec.hpp"
@@ -15,6 +15,8 @@ namespace margelo::nitro::nitrofetch { struct NitroHeader; }
15
15
  namespace margelo::nitro::nitrofetch { struct NitroRequest; }
16
16
  // Forward declaration of `NitroRequestMethod` to properly resolve imports.
17
17
  namespace margelo::nitro::nitrofetch { enum class NitroRequestMethod; }
18
+ // Forward declaration of `NitroFormDataPart` to properly resolve imports.
19
+ namespace margelo::nitro::nitrofetch { struct NitroFormDataPart; }
18
20
 
19
21
  #include "NitroResponse.hpp"
20
22
  #include <NitroModules/Promise.hpp>
@@ -25,31 +27,41 @@ namespace margelo::nitro::nitrofetch { enum class NitroRequestMethod; }
25
27
  #include <vector>
26
28
  #include "JNitroHeader.hpp"
27
29
  #include <optional>
30
+ #include <NitroModules/JUnit.hpp>
28
31
  #include "NitroRequest.hpp"
29
32
  #include "JNitroRequest.hpp"
30
33
  #include "NitroRequestMethod.hpp"
31
34
  #include "JNitroRequestMethod.hpp"
35
+ #include "NitroFormDataPart.hpp"
36
+ #include "JNitroFormDataPart.hpp"
32
37
 
33
38
  namespace margelo::nitro::nitrofetch {
34
39
 
35
- jni::local_ref<JHybridNitroFetchClientSpec::jhybriddata> JHybridNitroFetchClientSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
36
- return makeCxxInstance(jThis);
40
+ std::shared_ptr<JHybridNitroFetchClientSpec> JHybridNitroFetchClientSpec::JavaPart::getJHybridNitroFetchClientSpec() {
41
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
42
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroFetchClientSpec>(hybridObject);
43
+ if (castHybridObject == nullptr) [[unlikely]] {
44
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroFetchClientSpec!");
45
+ }
46
+ return castHybridObject;
37
47
  }
38
48
 
39
- void JHybridNitroFetchClientSpec::registerNatives() {
40
- registerHybrid({
41
- makeNativeMethod("initHybrid", JHybridNitroFetchClientSpec::initHybrid),
42
- });
49
+ jni::local_ref<JHybridNitroFetchClientSpec::CxxPart::jhybriddata> JHybridNitroFetchClientSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
50
+ return makeCxxInstance(jThis);
43
51
  }
44
52
 
45
- size_t JHybridNitroFetchClientSpec::getExternalMemorySize() noexcept {
46
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
47
- return method(_javaPart);
53
+ std::shared_ptr<JHybridObject> JHybridNitroFetchClientSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
54
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroFetchClientSpec::JavaPart>(javaPart);
55
+ if (castJavaPart == nullptr) [[unlikely]] {
56
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroFetchClientSpec::JavaPart!");
57
+ }
58
+ return std::make_shared<JHybridNitroFetchClientSpec>(castJavaPart);
48
59
  }
49
60
 
50
- void JHybridNitroFetchClientSpec::dispose() noexcept {
51
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
52
- method(_javaPart);
61
+ void JHybridNitroFetchClientSpec::CxxPart::registerNatives() {
62
+ registerHybrid({
63
+ makeNativeMethod("initHybrid", JHybridNitroFetchClientSpec::CxxPart::initHybrid),
64
+ });
53
65
  }
54
66
 
55
67
  // Properties
@@ -57,7 +69,7 @@ namespace margelo::nitro::nitrofetch {
57
69
 
58
70
  // Methods
59
71
  std::shared_ptr<Promise<NitroResponse>> JHybridNitroFetchClientSpec::request(const NitroRequest& req) {
60
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JNitroRequest> /* req */)>("request");
72
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JNitroRequest> /* req */)>("request");
61
73
  auto __result = method(_javaPart, JNitroRequest::fromCpp(req));
62
74
  return [&]() {
63
75
  auto __promise = Promise<NitroResponse>::create();
@@ -73,7 +85,7 @@ namespace margelo::nitro::nitrofetch {
73
85
  }();
74
86
  }
75
87
  std::shared_ptr<Promise<void>> JHybridNitroFetchClientSpec::prefetch(const NitroRequest& req) {
76
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JNitroRequest> /* req */)>("prefetch");
88
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JNitroRequest> /* req */)>("prefetch");
77
89
  auto __result = method(_javaPart, JNitroRequest::fromCpp(req));
78
90
  return [&]() {
79
91
  auto __promise = Promise<void>::create();
@@ -88,9 +100,13 @@ namespace margelo::nitro::nitrofetch {
88
100
  }();
89
101
  }
90
102
  NitroResponse JHybridNitroFetchClientSpec::requestSync(const NitroRequest& req) {
91
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JNitroResponse>(jni::alias_ref<JNitroRequest> /* req */)>("requestSync");
103
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JNitroResponse>(jni::alias_ref<JNitroRequest> /* req */)>("requestSync");
92
104
  auto __result = method(_javaPart, JNitroRequest::fromCpp(req));
93
105
  return __result->toCpp();
94
106
  }
107
+ void JHybridNitroFetchClientSpec::cancelRequest(const std::string& requestId) {
108
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* requestId */)>("cancelRequest");
109
+ method(_javaPart, jni::make_jstring(requestId));
110
+ }
95
111
 
96
112
  } // namespace margelo::nitro::nitrofetch
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroFetchClientSpec.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
  #pragma once
@@ -18,32 +18,33 @@ namespace margelo::nitro::nitrofetch {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNitroFetchClientSpec: public jni::HybridClass<JHybridNitroFetchClientSpec, JHybridObject>,
22
- public virtual HybridNitroFetchClientSpec {
21
+ class JHybridNitroFetchClientSpec: public virtual HybridNitroFetchClientSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec;";
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 JHybridNitroFetchClientSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNitroFetchClientSpec::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/HybridNitroFetchClientSpec;";
25
+ std::shared_ptr<JHybridNitroFetchClientSpec> getJHybridNitroFetchClientSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec$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 JHybridNitroFetchClientSpec(const jni::local_ref<JHybridNitroFetchClientSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroFetchClientSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNitroFetchClientSpec() 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<JHybridNitroFetchClientSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNitroFetchClientSpec::JavaPart>& getJavaPart() const noexcept {
47
48
  return _javaPart;
48
49
  }
49
50
 
@@ -56,11 +57,10 @@ namespace margelo::nitro::nitrofetch {
56
57
  std::shared_ptr<Promise<NitroResponse>> request(const NitroRequest& req) override;
57
58
  std::shared_ptr<Promise<void>> prefetch(const NitroRequest& req) override;
58
59
  NitroResponse requestSync(const NitroRequest& req) override;
60
+ void cancelRequest(const std::string& requestId) override;
59
61
 
60
62
  private:
61
- friend HybridBase;
62
- using HybridBase::HybridBase;
63
- jni::global_ref<JHybridNitroFetchClientSpec::javaobject> _javaPart;
63
+ jni::global_ref<JHybridNitroFetchClientSpec::JavaPart> _javaPart;
64
64
  };
65
65
 
66
66
  } // namespace margelo::nitro::nitrofetch
@@ -2,7 +2,7 @@
2
2
  /// JHybridNitroFetchSpec.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 "JHybridNitroFetchSpec.hpp"
@@ -16,24 +16,31 @@ namespace margelo::nitro::nitrofetch { class HybridNitroFetchClientSpec; }
16
16
 
17
17
  namespace margelo::nitro::nitrofetch {
18
18
 
19
- jni::local_ref<JHybridNitroFetchSpec::jhybriddata> JHybridNitroFetchSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
20
- return makeCxxInstance(jThis);
19
+ std::shared_ptr<JHybridNitroFetchSpec> JHybridNitroFetchSpec::JavaPart::getJHybridNitroFetchSpec() {
20
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
21
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroFetchSpec>(hybridObject);
22
+ if (castHybridObject == nullptr) [[unlikely]] {
23
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroFetchSpec!");
24
+ }
25
+ return castHybridObject;
21
26
  }
22
27
 
23
- void JHybridNitroFetchSpec::registerNatives() {
24
- registerHybrid({
25
- makeNativeMethod("initHybrid", JHybridNitroFetchSpec::initHybrid),
26
- });
28
+ jni::local_ref<JHybridNitroFetchSpec::CxxPart::jhybriddata> JHybridNitroFetchSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
29
+ return makeCxxInstance(jThis);
27
30
  }
28
31
 
29
- size_t JHybridNitroFetchSpec::getExternalMemorySize() noexcept {
30
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
31
- return method(_javaPart);
32
+ std::shared_ptr<JHybridObject> JHybridNitroFetchSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
33
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroFetchSpec::JavaPart>(javaPart);
34
+ if (castJavaPart == nullptr) [[unlikely]] {
35
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroFetchSpec::JavaPart!");
36
+ }
37
+ return std::make_shared<JHybridNitroFetchSpec>(castJavaPart);
32
38
  }
33
39
 
34
- void JHybridNitroFetchSpec::dispose() noexcept {
35
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
36
- method(_javaPart);
40
+ void JHybridNitroFetchSpec::CxxPart::registerNatives() {
41
+ registerHybrid({
42
+ makeNativeMethod("initHybrid", JHybridNitroFetchSpec::CxxPart::initHybrid),
43
+ });
37
44
  }
38
45
 
39
46
  // Properties
@@ -41,9 +48,9 @@ namespace margelo::nitro::nitrofetch {
41
48
 
42
49
  // Methods
43
50
  std::shared_ptr<HybridNitroFetchClientSpec> JHybridNitroFetchSpec::createClient() {
44
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridNitroFetchClientSpec::javaobject>()>("createClient");
51
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridNitroFetchClientSpec::JavaPart>()>("createClient");
45
52
  auto __result = method(_javaPart);
46
- return __result->cthis()->shared_cast<JHybridNitroFetchClientSpec>();
53
+ return __result->getJHybridNitroFetchClientSpec();
47
54
  }
48
55
 
49
56
  } // namespace margelo::nitro::nitrofetch
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroFetchSpec.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
  #pragma once
@@ -18,32 +18,33 @@ namespace margelo::nitro::nitrofetch {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNitroFetchSpec: public jni::HybridClass<JHybridNitroFetchSpec, JHybridObject>,
22
- public virtual HybridNitroFetchSpec {
21
+ class JHybridNitroFetchSpec: public virtual HybridNitroFetchSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroFetchSpec;";
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 JHybridNitroFetchSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNitroFetchSpec::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/HybridNitroFetchSpec;";
25
+ std::shared_ptr<JHybridNitroFetchSpec> getJHybridNitroFetchSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridNitroFetchSpec$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 JHybridNitroFetchSpec(const jni::local_ref<JHybridNitroFetchSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroFetchSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNitroFetchSpec() 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<JHybridNitroFetchSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNitroFetchSpec::JavaPart>& getJavaPart() const noexcept {
47
48
  return _javaPart;
48
49
  }
49
50
 
@@ -56,9 +57,7 @@ namespace margelo::nitro::nitrofetch {
56
57
  std::shared_ptr<HybridNitroFetchClientSpec> createClient() override;
57
58
 
58
59
  private:
59
- friend HybridBase;
60
- using HybridBase::HybridBase;
61
- jni::global_ref<JHybridNitroFetchSpec::javaobject> _javaPart;
60
+ jni::global_ref<JHybridNitroFetchSpec::JavaPart> _javaPart;
62
61
  };
63
62
 
64
63
  } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,123 @@
1
+ ///
2
+ /// JHybridUrlRequestBuilderSpec.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 "JHybridUrlRequestBuilderSpec.hpp"
9
+
10
+ // Forward declaration of `HybridUrlRequestSpec` to properly resolve imports.
11
+ namespace margelo::nitro::nitrofetch { class HybridUrlRequestSpec; }
12
+ // Forward declaration of `UrlResponseInfo` to properly resolve imports.
13
+ namespace margelo::nitro::nitrofetch { struct UrlResponseInfo; }
14
+ // Forward declaration of `HttpHeader` to properly resolve imports.
15
+ namespace margelo::nitro::nitrofetch { struct HttpHeader; }
16
+ // Forward declaration of `RequestException` to properly resolve imports.
17
+ namespace margelo::nitro::nitrofetch { struct RequestException; }
18
+
19
+ #include <memory>
20
+ #include "HybridUrlRequestSpec.hpp"
21
+ #include "JHybridUrlRequestSpec.hpp"
22
+ #include <string>
23
+ #include <NitroModules/ArrayBuffer.hpp>
24
+ #include <variant>
25
+ #include "JVariant_ArrayBuffer_String.hpp"
26
+ #include <NitroModules/JArrayBuffer.hpp>
27
+ #include "UrlResponseInfo.hpp"
28
+ #include <functional>
29
+ #include "JFunc_void_UrlResponseInfo.hpp"
30
+ #include <NitroModules/JNICallable.hpp>
31
+ #include "JUrlResponseInfo.hpp"
32
+ #include <unordered_map>
33
+ #include "HttpHeader.hpp"
34
+ #include <vector>
35
+ #include "JHttpHeader.hpp"
36
+ #include <optional>
37
+ #include "RequestException.hpp"
38
+ #include "JFunc_void_std__optional_UrlResponseInfo__RequestException.hpp"
39
+ #include "JRequestException.hpp"
40
+ #include "JFunc_void_std__optional_UrlResponseInfo_.hpp"
41
+ #include "JFunc_void_UrlResponseInfo_std__string.hpp"
42
+ #include "JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double.hpp"
43
+
44
+ namespace margelo::nitro::nitrofetch {
45
+
46
+ std::shared_ptr<JHybridUrlRequestBuilderSpec> JHybridUrlRequestBuilderSpec::JavaPart::getJHybridUrlRequestBuilderSpec() {
47
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
48
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridUrlRequestBuilderSpec>(hybridObject);
49
+ if (castHybridObject == nullptr) [[unlikely]] {
50
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridUrlRequestBuilderSpec!");
51
+ }
52
+ return castHybridObject;
53
+ }
54
+
55
+ jni::local_ref<JHybridUrlRequestBuilderSpec::CxxPart::jhybriddata> JHybridUrlRequestBuilderSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
56
+ return makeCxxInstance(jThis);
57
+ }
58
+
59
+ std::shared_ptr<JHybridObject> JHybridUrlRequestBuilderSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
60
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridUrlRequestBuilderSpec::JavaPart>(javaPart);
61
+ if (castJavaPart == nullptr) [[unlikely]] {
62
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridUrlRequestBuilderSpec::JavaPart!");
63
+ }
64
+ return std::make_shared<JHybridUrlRequestBuilderSpec>(castJavaPart);
65
+ }
66
+
67
+ void JHybridUrlRequestBuilderSpec::CxxPart::registerNatives() {
68
+ registerHybrid({
69
+ makeNativeMethod("initHybrid", JHybridUrlRequestBuilderSpec::CxxPart::initHybrid),
70
+ });
71
+ }
72
+
73
+ // Properties
74
+
75
+
76
+ // Methods
77
+ void JHybridUrlRequestBuilderSpec::setHttpMethod(const std::string& httpMethod) {
78
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* httpMethod */)>("setHttpMethod");
79
+ method(_javaPart, jni::make_jstring(httpMethod));
80
+ }
81
+ void JHybridUrlRequestBuilderSpec::addHeader(const std::string& name, const std::string& value) {
82
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JString> /* value */)>("addHeader");
83
+ method(_javaPart, jni::make_jstring(name), jni::make_jstring(value));
84
+ }
85
+ void JHybridUrlRequestBuilderSpec::setUploadBody(const std::variant<std::shared_ptr<ArrayBuffer>, std::string>& body) {
86
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JVariant_ArrayBuffer_String> /* body */)>("setUploadBody");
87
+ method(_javaPart, JVariant_ArrayBuffer_String::fromCpp(body));
88
+ }
89
+ void JHybridUrlRequestBuilderSpec::disableCache() {
90
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("disableCache");
91
+ method(_javaPart);
92
+ }
93
+ void JHybridUrlRequestBuilderSpec::onSucceeded(const std::function<void(const UrlResponseInfo& /* info */)>& callback) {
94
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UrlResponseInfo::javaobject> /* callback */)>("onSucceeded_cxx");
95
+ method(_javaPart, JFunc_void_UrlResponseInfo_cxx::fromCpp(callback));
96
+ }
97
+ void JHybridUrlRequestBuilderSpec::onFailed(const std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>& callback) {
98
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_UrlResponseInfo__RequestException::javaobject> /* callback */)>("onFailed_cxx");
99
+ method(_javaPart, JFunc_void_std__optional_UrlResponseInfo__RequestException_cxx::fromCpp(callback));
100
+ }
101
+ void JHybridUrlRequestBuilderSpec::onCanceled(const std::function<void(const std::optional<UrlResponseInfo>& /* info */)>& callback) {
102
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__optional_UrlResponseInfo_::javaobject> /* callback */)>("onCanceled_cxx");
103
+ method(_javaPart, JFunc_void_std__optional_UrlResponseInfo__cxx::fromCpp(callback));
104
+ }
105
+ void JHybridUrlRequestBuilderSpec::onRedirectReceived(const std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>& callback) {
106
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UrlResponseInfo_std__string::javaobject> /* callback */)>("onRedirectReceived_cxx");
107
+ method(_javaPart, JFunc_void_UrlResponseInfo_std__string_cxx::fromCpp(callback));
108
+ }
109
+ void JHybridUrlRequestBuilderSpec::onResponseStarted(const std::function<void(const UrlResponseInfo& /* info */)>& callback) {
110
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UrlResponseInfo::javaobject> /* callback */)>("onResponseStarted_cxx");
111
+ method(_javaPart, JFunc_void_UrlResponseInfo_cxx::fromCpp(callback));
112
+ }
113
+ void JHybridUrlRequestBuilderSpec::onReadCompleted(const std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>& callback) {
114
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double::javaobject> /* callback */)>("onReadCompleted_cxx");
115
+ method(_javaPart, JFunc_void_UrlResponseInfo_std__shared_ptr_ArrayBuffer__double_cxx::fromCpp(callback));
116
+ }
117
+ std::shared_ptr<HybridUrlRequestSpec> JHybridUrlRequestBuilderSpec::build() {
118
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridUrlRequestSpec::JavaPart>()>("build");
119
+ auto __result = method(_javaPart);
120
+ return __result->getJHybridUrlRequestSpec();
121
+ }
122
+
123
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,73 @@
1
+ ///
2
+ /// HybridUrlRequestBuilderSpec.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 "HybridUrlRequestBuilderSpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::nitrofetch {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridUrlRequestBuilderSpec: public virtual HybridUrlRequestBuilderSpec, public virtual JHybridObject {
22
+ public:
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridUrlRequestBuilderSpec;";
25
+ std::shared_ptr<JHybridUrlRequestBuilderSpec> getJHybridUrlRequestBuilderSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridUrlRequestBuilderSpec$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 JHybridUrlRequestBuilderSpec(const jni::local_ref<JHybridUrlRequestBuilderSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridUrlRequestBuilderSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
41
+ ~JHybridUrlRequestBuilderSpec() 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<JHybridUrlRequestBuilderSpec::JavaPart>& getJavaPart() const noexcept {
48
+ return _javaPart;
49
+ }
50
+
51
+ public:
52
+ // Properties
53
+
54
+
55
+ public:
56
+ // Methods
57
+ void setHttpMethod(const std::string& httpMethod) override;
58
+ void addHeader(const std::string& name, const std::string& value) override;
59
+ void setUploadBody(const std::variant<std::shared_ptr<ArrayBuffer>, std::string>& body) override;
60
+ void disableCache() override;
61
+ void onSucceeded(const std::function<void(const UrlResponseInfo& /* info */)>& callback) override;
62
+ void onFailed(const std::function<void(const std::optional<UrlResponseInfo>& /* info */, const RequestException& /* error */)>& callback) override;
63
+ void onCanceled(const std::function<void(const std::optional<UrlResponseInfo>& /* info */)>& callback) override;
64
+ void onRedirectReceived(const std::function<void(const UrlResponseInfo& /* info */, const std::string& /* newLocationUrl */)>& callback) override;
65
+ void onResponseStarted(const std::function<void(const UrlResponseInfo& /* info */)>& callback) override;
66
+ void onReadCompleted(const std::function<void(const UrlResponseInfo& /* info */, const std::shared_ptr<ArrayBuffer>& /* byteBuffer */, double /* bytesRead */)>& callback) override;
67
+ std::shared_ptr<HybridUrlRequestSpec> build() override;
68
+
69
+ private:
70
+ jni::global_ref<JHybridUrlRequestBuilderSpec::JavaPart> _javaPart;
71
+ };
72
+
73
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// JHybridUrlRequestSpec.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 "JHybridUrlRequestSpec.hpp"
9
+
10
+
11
+
12
+
13
+
14
+ namespace margelo::nitro::nitrofetch {
15
+
16
+ std::shared_ptr<JHybridUrlRequestSpec> JHybridUrlRequestSpec::JavaPart::getJHybridUrlRequestSpec() {
17
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
18
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridUrlRequestSpec>(hybridObject);
19
+ if (castHybridObject == nullptr) [[unlikely]] {
20
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridUrlRequestSpec!");
21
+ }
22
+ return castHybridObject;
23
+ }
24
+
25
+ jni::local_ref<JHybridUrlRequestSpec::CxxPart::jhybriddata> JHybridUrlRequestSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
26
+ return makeCxxInstance(jThis);
27
+ }
28
+
29
+ std::shared_ptr<JHybridObject> JHybridUrlRequestSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
30
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridUrlRequestSpec::JavaPart>(javaPart);
31
+ if (castJavaPart == nullptr) [[unlikely]] {
32
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridUrlRequestSpec::JavaPart!");
33
+ }
34
+ return std::make_shared<JHybridUrlRequestSpec>(castJavaPart);
35
+ }
36
+
37
+ void JHybridUrlRequestSpec::CxxPart::registerNatives() {
38
+ registerHybrid({
39
+ makeNativeMethod("initHybrid", JHybridUrlRequestSpec::CxxPart::initHybrid),
40
+ });
41
+ }
42
+
43
+ // Properties
44
+
45
+
46
+ // Methods
47
+ void JHybridUrlRequestSpec::start() {
48
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("start");
49
+ method(_javaPart);
50
+ }
51
+ void JHybridUrlRequestSpec::followRedirect() {
52
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("followRedirect");
53
+ method(_javaPart);
54
+ }
55
+ void JHybridUrlRequestSpec::read() {
56
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("read");
57
+ method(_javaPart);
58
+ }
59
+ void JHybridUrlRequestSpec::cancel() {
60
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("cancel");
61
+ method(_javaPart);
62
+ }
63
+ bool JHybridUrlRequestSpec::isDone() {
64
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isDone");
65
+ auto __result = method(_javaPart);
66
+ return static_cast<bool>(__result);
67
+ }
68
+
69
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// HybridUrlRequestSpec.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 "HybridUrlRequestSpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::nitrofetch {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridUrlRequestSpec: public virtual HybridUrlRequestSpec, public virtual JHybridObject {
22
+ public:
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridUrlRequestSpec;";
25
+ std::shared_ptr<JHybridUrlRequestSpec> getJHybridUrlRequestSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrofetch/HybridUrlRequestSpec$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 JHybridUrlRequestSpec(const jni::local_ref<JHybridUrlRequestSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridUrlRequestSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
41
+ ~JHybridUrlRequestSpec() 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<JHybridUrlRequestSpec::JavaPart>& getJavaPart() const noexcept {
48
+ return _javaPart;
49
+ }
50
+
51
+ public:
52
+ // Properties
53
+
54
+
55
+ public:
56
+ // Methods
57
+ void start() override;
58
+ void followRedirect() override;
59
+ void read() override;
60
+ void cancel() override;
61
+ bool isDone() override;
62
+
63
+ private:
64
+ jni::global_ref<JHybridUrlRequestSpec::JavaPart> _javaPart;
65
+ };
66
+
67
+ } // namespace margelo::nitro::nitrofetch