@pigeonmal/react-native-nitro-fetch 0.1.6

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 (104) hide show
  1. package/NitroFetch.podspec +30 -0
  2. package/android/CMakeLists.txt +70 -0
  3. package/android/build.gradle +130 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  7. package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +72 -0
  8. package/android/src/main/java/com/margelo/nitro/nitrofetch/FetchCache.kt +58 -0
  9. package/android/src/main/java/com/margelo/nitro/nitrofetch/NativeStorage.kt +102 -0
  10. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetch.kt +94 -0
  11. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +331 -0
  12. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchPackage.kt +22 -0
  13. package/ios/FetchCache.swift +56 -0
  14. package/ios/NativeStorage.swift +61 -0
  15. package/ios/NitroAutoPrefetcher.swift +45 -0
  16. package/ios/NitroBootstrap.mm +27 -0
  17. package/ios/NitroFetch.swift +9 -0
  18. package/ios/NitroFetchClient.swift +230 -0
  19. package/lib/module/NitroFetch.nitro.js +4 -0
  20. package/lib/module/NitroFetch.nitro.js.map +1 -0
  21. package/lib/module/NitroInstances.js +8 -0
  22. package/lib/module/NitroInstances.js.map +1 -0
  23. package/lib/module/fetch.js +522 -0
  24. package/lib/module/fetch.js.map +1 -0
  25. package/lib/module/index.js +12 -0
  26. package/lib/module/index.js.map +1 -0
  27. package/lib/module/package.json +1 -0
  28. package/lib/module/type.js +2 -0
  29. package/lib/module/type.js.map +1 -0
  30. package/lib/typescript/package.json +1 -0
  31. package/lib/typescript/src/NitroFetch.nitro.d.ts +48 -0
  32. package/lib/typescript/src/NitroFetch.nitro.d.ts.map +1 -0
  33. package/lib/typescript/src/NitroInstances.d.ts +5 -0
  34. package/lib/typescript/src/NitroInstances.d.ts.map +1 -0
  35. package/lib/typescript/src/fetch.d.ts +28 -0
  36. package/lib/typescript/src/fetch.d.ts.map +1 -0
  37. package/lib/typescript/src/index.d.ts +6 -0
  38. package/lib/typescript/src/index.d.ts.map +1 -0
  39. package/lib/typescript/src/type.d.ts +4 -0
  40. package/lib/typescript/src/type.d.ts.map +1 -0
  41. package/nitro.json +25 -0
  42. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.cpp +54 -0
  43. package/nitrogen/generated/android/c++/JHybridNativeStorageSpec.hpp +66 -0
  44. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.cpp +96 -0
  45. package/nitrogen/generated/android/c++/JHybridNitroFetchClientSpec.hpp +66 -0
  46. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.cpp +49 -0
  47. package/nitrogen/generated/android/c++/JHybridNitroFetchSpec.hpp +64 -0
  48. package/nitrogen/generated/android/c++/JNitroHeader.hpp +57 -0
  49. package/nitrogen/generated/android/c++/JNitroRequest.hpp +100 -0
  50. package/nitrogen/generated/android/c++/JNitroRequestMethod.hpp +74 -0
  51. package/nitrogen/generated/android/c++/JNitroResponse.hpp +102 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNativeStorageSpec.kt +60 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchClientSpec.kt +60 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/HybridNitroFetchSpec.kt +52 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroHeader.kt +32 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequest.kt +47 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroRequestMethod.kt +26 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/NitroResponse.kt +50 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrofetch/nitrofetchOnLoad.kt +35 -0
  60. package/nitrogen/generated/android/nitrofetch+autolinking.cmake +85 -0
  61. package/nitrogen/generated/android/nitrofetch+autolinking.gradle +27 -0
  62. package/nitrogen/generated/android/nitrofetchOnLoad.cpp +64 -0
  63. package/nitrogen/generated/android/nitrofetchOnLoad.hpp +25 -0
  64. package/nitrogen/generated/ios/NitroFetch+autolinking.rb +60 -0
  65. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.cpp +90 -0
  66. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Bridge.hpp +321 -0
  67. package/nitrogen/generated/ios/NitroFetch-Swift-Cxx-Umbrella.hpp +69 -0
  68. package/nitrogen/generated/ios/NitroFetchAutolinking.mm +49 -0
  69. package/nitrogen/generated/ios/NitroFetchAutolinking.swift +55 -0
  70. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.cpp +11 -0
  71. package/nitrogen/generated/ios/c++/HybridNativeStorageSpecSwift.hpp +85 -0
  72. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.cpp +11 -0
  73. package/nitrogen/generated/ios/c++/HybridNitroFetchClientSpecSwift.hpp +103 -0
  74. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.cpp +11 -0
  75. package/nitrogen/generated/ios/c++/HybridNitroFetchSpecSwift.hpp +75 -0
  76. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  77. package/nitrogen/generated/ios/swift/Func_void_NitroResponse.swift +47 -0
  78. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  79. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec.swift +51 -0
  80. package/nitrogen/generated/ios/swift/HybridNativeStorageSpec_cxx.swift +145 -0
  81. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec.swift +51 -0
  82. package/nitrogen/generated/ios/swift/HybridNitroFetchClientSpec_cxx.swift +161 -0
  83. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec.swift +49 -0
  84. package/nitrogen/generated/ios/swift/HybridNitroFetchSpec_cxx.swift +126 -0
  85. package/nitrogen/generated/ios/swift/NitroHeader.swift +46 -0
  86. package/nitrogen/generated/ios/swift/NitroRequest.swift +206 -0
  87. package/nitrogen/generated/ios/swift/NitroRequestMethod.swift +60 -0
  88. package/nitrogen/generated/ios/swift/NitroResponse.swift +162 -0
  89. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.cpp +23 -0
  90. package/nitrogen/generated/shared/c++/HybridNativeStorageSpec.hpp +64 -0
  91. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.cpp +23 -0
  92. package/nitrogen/generated/shared/c++/HybridNitroFetchClientSpec.hpp +69 -0
  93. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.cpp +21 -0
  94. package/nitrogen/generated/shared/c++/HybridNitroFetchSpec.hpp +64 -0
  95. package/nitrogen/generated/shared/c++/NitroHeader.hpp +71 -0
  96. package/nitrogen/generated/shared/c++/NitroRequest.hpp +98 -0
  97. package/nitrogen/generated/shared/c++/NitroRequestMethod.hpp +96 -0
  98. package/nitrogen/generated/shared/c++/NitroResponse.hpp +99 -0
  99. package/package.json +162 -0
  100. package/src/NitroFetch.nitro.ts +67 -0
  101. package/src/NitroInstances.ts +14 -0
  102. package/src/fetch.ts +603 -0
  103. package/src/index.tsx +17 -0
  104. package/src/type.ts +3 -0
@@ -0,0 +1,206 @@
1
+ ///
2
+ /// NitroRequest.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `NitroRequest`, backed by a C++ struct.
12
+ */
13
+ public typealias NitroRequest = margelo.nitro.nitrofetch.NitroRequest
14
+
15
+ public extension NitroRequest {
16
+ private typealias bridge = margelo.nitro.nitrofetch.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `NitroRequest`.
20
+ */
21
+ init(url: String, method: NitroRequestMethod?, headers: [NitroHeader]?, bodyString: String?, bodyBytes: String?, timeoutMs: Double?, followRedirects: Bool?) {
22
+ self.init(std.string(url), { () -> bridge.std__optional_NitroRequestMethod_ in
23
+ if let __unwrappedValue = method {
24
+ return bridge.create_std__optional_NitroRequestMethod_(__unwrappedValue)
25
+ } else {
26
+ return .init()
27
+ }
28
+ }(), { () -> bridge.std__optional_std__vector_NitroHeader__ in
29
+ if let __unwrappedValue = headers {
30
+ return bridge.create_std__optional_std__vector_NitroHeader__({ () -> bridge.std__vector_NitroHeader_ in
31
+ var __vector = bridge.create_std__vector_NitroHeader_(__unwrappedValue.count)
32
+ for __item in __unwrappedValue {
33
+ __vector.push_back(__item)
34
+ }
35
+ return __vector
36
+ }())
37
+ } else {
38
+ return .init()
39
+ }
40
+ }(), { () -> bridge.std__optional_std__string_ in
41
+ if let __unwrappedValue = bodyString {
42
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
43
+ } else {
44
+ return .init()
45
+ }
46
+ }(), { () -> bridge.std__optional_std__string_ in
47
+ if let __unwrappedValue = bodyBytes {
48
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
49
+ } else {
50
+ return .init()
51
+ }
52
+ }(), { () -> bridge.std__optional_double_ in
53
+ if let __unwrappedValue = timeoutMs {
54
+ return bridge.create_std__optional_double_(__unwrappedValue)
55
+ } else {
56
+ return .init()
57
+ }
58
+ }(), { () -> bridge.std__optional_bool_ in
59
+ if let __unwrappedValue = followRedirects {
60
+ return bridge.create_std__optional_bool_(__unwrappedValue)
61
+ } else {
62
+ return .init()
63
+ }
64
+ }())
65
+ }
66
+
67
+ var url: String {
68
+ @inline(__always)
69
+ get {
70
+ return String(self.__url)
71
+ }
72
+ @inline(__always)
73
+ set {
74
+ self.__url = std.string(newValue)
75
+ }
76
+ }
77
+
78
+ var method: NitroRequestMethod? {
79
+ @inline(__always)
80
+ get {
81
+ return self.__method.value
82
+ }
83
+ @inline(__always)
84
+ set {
85
+ self.__method = { () -> bridge.std__optional_NitroRequestMethod_ in
86
+ if let __unwrappedValue = newValue {
87
+ return bridge.create_std__optional_NitroRequestMethod_(__unwrappedValue)
88
+ } else {
89
+ return .init()
90
+ }
91
+ }()
92
+ }
93
+ }
94
+
95
+ var headers: [NitroHeader]? {
96
+ @inline(__always)
97
+ get {
98
+ return { () -> [NitroHeader]? in
99
+ if bridge.has_value_std__optional_std__vector_NitroHeader__(self.__headers) {
100
+ let __unwrapped = bridge.get_std__optional_std__vector_NitroHeader__(self.__headers)
101
+ return __unwrapped.map({ __item in __item })
102
+ } else {
103
+ return nil
104
+ }
105
+ }()
106
+ }
107
+ @inline(__always)
108
+ set {
109
+ self.__headers = { () -> bridge.std__optional_std__vector_NitroHeader__ in
110
+ if let __unwrappedValue = newValue {
111
+ return bridge.create_std__optional_std__vector_NitroHeader__({ () -> bridge.std__vector_NitroHeader_ in
112
+ var __vector = bridge.create_std__vector_NitroHeader_(__unwrappedValue.count)
113
+ for __item in __unwrappedValue {
114
+ __vector.push_back(__item)
115
+ }
116
+ return __vector
117
+ }())
118
+ } else {
119
+ return .init()
120
+ }
121
+ }()
122
+ }
123
+ }
124
+
125
+ var bodyString: String? {
126
+ @inline(__always)
127
+ get {
128
+ return { () -> String? in
129
+ if bridge.has_value_std__optional_std__string_(self.__bodyString) {
130
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyString)
131
+ return String(__unwrapped)
132
+ } else {
133
+ return nil
134
+ }
135
+ }()
136
+ }
137
+ @inline(__always)
138
+ set {
139
+ self.__bodyString = { () -> bridge.std__optional_std__string_ in
140
+ if let __unwrappedValue = newValue {
141
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
142
+ } else {
143
+ return .init()
144
+ }
145
+ }()
146
+ }
147
+ }
148
+
149
+ var bodyBytes: String? {
150
+ @inline(__always)
151
+ get {
152
+ return { () -> String? in
153
+ if bridge.has_value_std__optional_std__string_(self.__bodyBytes) {
154
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyBytes)
155
+ return String(__unwrapped)
156
+ } else {
157
+ return nil
158
+ }
159
+ }()
160
+ }
161
+ @inline(__always)
162
+ set {
163
+ self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
164
+ if let __unwrappedValue = newValue {
165
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
166
+ } else {
167
+ return .init()
168
+ }
169
+ }()
170
+ }
171
+ }
172
+
173
+ var timeoutMs: Double? {
174
+ @inline(__always)
175
+ get {
176
+ return self.__timeoutMs.value
177
+ }
178
+ @inline(__always)
179
+ set {
180
+ self.__timeoutMs = { () -> bridge.std__optional_double_ in
181
+ if let __unwrappedValue = newValue {
182
+ return bridge.create_std__optional_double_(__unwrappedValue)
183
+ } else {
184
+ return .init()
185
+ }
186
+ }()
187
+ }
188
+ }
189
+
190
+ var followRedirects: Bool? {
191
+ @inline(__always)
192
+ get {
193
+ return self.__followRedirects.value
194
+ }
195
+ @inline(__always)
196
+ set {
197
+ self.__followRedirects = { () -> bridge.std__optional_bool_ in
198
+ if let __unwrappedValue = newValue {
199
+ return bridge.create_std__optional_bool_(__unwrappedValue)
200
+ } else {
201
+ return .init()
202
+ }
203
+ }()
204
+ }
205
+ }
206
+ }
@@ -0,0 +1,60 @@
1
+ ///
2
+ /// NitroRequestMethod.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `NitroRequestMethod`, backed by a C++ enum.
10
+ */
11
+ public typealias NitroRequestMethod = margelo.nitro.nitrofetch.NitroRequestMethod
12
+
13
+ public extension NitroRequestMethod {
14
+ /**
15
+ * Get a NitroRequestMethod for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "GET":
21
+ self = .get
22
+ case "HEAD":
23
+ self = .head
24
+ case "POST":
25
+ self = .post
26
+ case "PUT":
27
+ self = .put
28
+ case "PATCH":
29
+ self = .patch
30
+ case "DELETE":
31
+ self = .delete
32
+ case "OPTIONS":
33
+ self = .options
34
+ default:
35
+ return nil
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Get the String value this NitroRequestMethod represents.
41
+ */
42
+ var stringValue: String {
43
+ switch self {
44
+ case .get:
45
+ return "GET"
46
+ case .head:
47
+ return "HEAD"
48
+ case .post:
49
+ return "POST"
50
+ case .put:
51
+ return "PUT"
52
+ case .patch:
53
+ return "PATCH"
54
+ case .delete:
55
+ return "DELETE"
56
+ case .options:
57
+ return "OPTIONS"
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,162 @@
1
+ ///
2
+ /// NitroResponse.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `NitroResponse`, backed by a C++ struct.
12
+ */
13
+ public typealias NitroResponse = margelo.nitro.nitrofetch.NitroResponse
14
+
15
+ public extension NitroResponse {
16
+ private typealias bridge = margelo.nitro.nitrofetch.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `NitroResponse`.
20
+ */
21
+ init(url: String, status: Double, statusText: String, ok: Bool, redirected: Bool, headers: [NitroHeader], bodyString: String?, bodyBytes: String?) {
22
+ self.init(std.string(url), status, std.string(statusText), ok, redirected, { () -> bridge.std__vector_NitroHeader_ in
23
+ var __vector = bridge.create_std__vector_NitroHeader_(headers.count)
24
+ for __item in headers {
25
+ __vector.push_back(__item)
26
+ }
27
+ return __vector
28
+ }(), { () -> bridge.std__optional_std__string_ in
29
+ if let __unwrappedValue = bodyString {
30
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
31
+ } else {
32
+ return .init()
33
+ }
34
+ }(), { () -> bridge.std__optional_std__string_ in
35
+ if let __unwrappedValue = bodyBytes {
36
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
37
+ } else {
38
+ return .init()
39
+ }
40
+ }())
41
+ }
42
+
43
+ var url: String {
44
+ @inline(__always)
45
+ get {
46
+ return String(self.__url)
47
+ }
48
+ @inline(__always)
49
+ set {
50
+ self.__url = std.string(newValue)
51
+ }
52
+ }
53
+
54
+ var status: Double {
55
+ @inline(__always)
56
+ get {
57
+ return self.__status
58
+ }
59
+ @inline(__always)
60
+ set {
61
+ self.__status = newValue
62
+ }
63
+ }
64
+
65
+ var statusText: String {
66
+ @inline(__always)
67
+ get {
68
+ return String(self.__statusText)
69
+ }
70
+ @inline(__always)
71
+ set {
72
+ self.__statusText = std.string(newValue)
73
+ }
74
+ }
75
+
76
+ var ok: Bool {
77
+ @inline(__always)
78
+ get {
79
+ return self.__ok
80
+ }
81
+ @inline(__always)
82
+ set {
83
+ self.__ok = newValue
84
+ }
85
+ }
86
+
87
+ var redirected: Bool {
88
+ @inline(__always)
89
+ get {
90
+ return self.__redirected
91
+ }
92
+ @inline(__always)
93
+ set {
94
+ self.__redirected = newValue
95
+ }
96
+ }
97
+
98
+ var headers: [NitroHeader] {
99
+ @inline(__always)
100
+ get {
101
+ return self.__headers.map({ __item in __item })
102
+ }
103
+ @inline(__always)
104
+ set {
105
+ self.__headers = { () -> bridge.std__vector_NitroHeader_ in
106
+ var __vector = bridge.create_std__vector_NitroHeader_(newValue.count)
107
+ for __item in newValue {
108
+ __vector.push_back(__item)
109
+ }
110
+ return __vector
111
+ }()
112
+ }
113
+ }
114
+
115
+ var bodyString: String? {
116
+ @inline(__always)
117
+ get {
118
+ return { () -> String? in
119
+ if bridge.has_value_std__optional_std__string_(self.__bodyString) {
120
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyString)
121
+ return String(__unwrapped)
122
+ } else {
123
+ return nil
124
+ }
125
+ }()
126
+ }
127
+ @inline(__always)
128
+ set {
129
+ self.__bodyString = { () -> bridge.std__optional_std__string_ in
130
+ if let __unwrappedValue = newValue {
131
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
132
+ } else {
133
+ return .init()
134
+ }
135
+ }()
136
+ }
137
+ }
138
+
139
+ var bodyBytes: String? {
140
+ @inline(__always)
141
+ get {
142
+ return { () -> String? in
143
+ if bridge.has_value_std__optional_std__string_(self.__bodyBytes) {
144
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__bodyBytes)
145
+ return String(__unwrapped)
146
+ } else {
147
+ return nil
148
+ }
149
+ }()
150
+ }
151
+ @inline(__always)
152
+ set {
153
+ self.__bodyBytes = { () -> bridge.std__optional_std__string_ in
154
+ if let __unwrappedValue = newValue {
155
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
156
+ } else {
157
+ return .init()
158
+ }
159
+ }()
160
+ }
161
+ }
162
+ }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// HybridNativeStorageSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridNativeStorageSpec.hpp"
9
+
10
+ namespace margelo::nitro::nitrofetch {
11
+
12
+ void HybridNativeStorageSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("getString", &HybridNativeStorageSpec::getString);
18
+ prototype.registerHybridMethod("setString", &HybridNativeStorageSpec::setString);
19
+ prototype.registerHybridMethod("removeString", &HybridNativeStorageSpec::removeString);
20
+ });
21
+ }
22
+
23
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// HybridNativeStorageSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+
17
+
18
+ #include <string>
19
+
20
+ namespace margelo::nitro::nitrofetch {
21
+
22
+ using namespace margelo::nitro;
23
+
24
+ /**
25
+ * An abstract base class for `NativeStorage`
26
+ * Inherit this class to create instances of `HybridNativeStorageSpec` in C++.
27
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
28
+ * @example
29
+ * ```cpp
30
+ * class HybridNativeStorage: public HybridNativeStorageSpec {
31
+ * public:
32
+ * HybridNativeStorage(...): HybridObject(TAG) { ... }
33
+ * // ...
34
+ * };
35
+ * ```
36
+ */
37
+ class HybridNativeStorageSpec: public virtual HybridObject {
38
+ public:
39
+ // Constructor
40
+ explicit HybridNativeStorageSpec(): HybridObject(TAG) { }
41
+
42
+ // Destructor
43
+ ~HybridNativeStorageSpec() override = default;
44
+
45
+ public:
46
+ // Properties
47
+
48
+
49
+ public:
50
+ // Methods
51
+ virtual std::string getString(const std::string& key) = 0;
52
+ virtual void setString(const std::string& key, const std::string& value) = 0;
53
+ virtual void removeString(const std::string& key) = 0;
54
+
55
+ protected:
56
+ // Hybrid Setup
57
+ void loadHybridMethods() override;
58
+
59
+ protected:
60
+ // Tag for logging
61
+ static constexpr auto TAG = "NativeStorage";
62
+ };
63
+
64
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// HybridNitroFetchClientSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridNitroFetchClientSpec.hpp"
9
+
10
+ namespace margelo::nitro::nitrofetch {
11
+
12
+ void HybridNitroFetchClientSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("request", &HybridNitroFetchClientSpec::request);
18
+ prototype.registerHybridMethod("prefetch", &HybridNitroFetchClientSpec::prefetch);
19
+ prototype.registerHybridMethod("requestSync", &HybridNitroFetchClientSpec::requestSync);
20
+ });
21
+ }
22
+
23
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// HybridNitroFetchClientSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `NitroResponse` to properly resolve imports.
17
+ namespace margelo::nitro::nitrofetch { struct NitroResponse; }
18
+ // Forward declaration of `NitroRequest` to properly resolve imports.
19
+ namespace margelo::nitro::nitrofetch { struct NitroRequest; }
20
+
21
+ #include "NitroResponse.hpp"
22
+ #include <NitroModules/Promise.hpp>
23
+ #include "NitroRequest.hpp"
24
+
25
+ namespace margelo::nitro::nitrofetch {
26
+
27
+ using namespace margelo::nitro;
28
+
29
+ /**
30
+ * An abstract base class for `NitroFetchClient`
31
+ * Inherit this class to create instances of `HybridNitroFetchClientSpec` in C++.
32
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
33
+ * @example
34
+ * ```cpp
35
+ * class HybridNitroFetchClient: public HybridNitroFetchClientSpec {
36
+ * public:
37
+ * HybridNitroFetchClient(...): HybridObject(TAG) { ... }
38
+ * // ...
39
+ * };
40
+ * ```
41
+ */
42
+ class HybridNitroFetchClientSpec: public virtual HybridObject {
43
+ public:
44
+ // Constructor
45
+ explicit HybridNitroFetchClientSpec(): HybridObject(TAG) { }
46
+
47
+ // Destructor
48
+ ~HybridNitroFetchClientSpec() override = default;
49
+
50
+ public:
51
+ // Properties
52
+
53
+
54
+ public:
55
+ // Methods
56
+ virtual std::shared_ptr<Promise<NitroResponse>> request(const NitroRequest& req) = 0;
57
+ virtual std::shared_ptr<Promise<void>> prefetch(const NitroRequest& req) = 0;
58
+ virtual NitroResponse requestSync(const NitroRequest& req) = 0;
59
+
60
+ protected:
61
+ // Hybrid Setup
62
+ void loadHybridMethods() override;
63
+
64
+ protected:
65
+ // Tag for logging
66
+ static constexpr auto TAG = "NitroFetchClient";
67
+ };
68
+
69
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,21 @@
1
+ ///
2
+ /// HybridNitroFetchSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridNitroFetchSpec.hpp"
9
+
10
+ namespace margelo::nitro::nitrofetch {
11
+
12
+ void HybridNitroFetchSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("createClient", &HybridNitroFetchSpec::createClient);
18
+ });
19
+ }
20
+
21
+ } // namespace margelo::nitro::nitrofetch
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// HybridNitroFetchSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `HybridNitroFetchClientSpec` to properly resolve imports.
17
+ namespace margelo::nitro::nitrofetch { class HybridNitroFetchClientSpec; }
18
+
19
+ #include <memory>
20
+ #include "HybridNitroFetchClientSpec.hpp"
21
+
22
+ namespace margelo::nitro::nitrofetch {
23
+
24
+ using namespace margelo::nitro;
25
+
26
+ /**
27
+ * An abstract base class for `NitroFetch`
28
+ * Inherit this class to create instances of `HybridNitroFetchSpec` in C++.
29
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
30
+ * @example
31
+ * ```cpp
32
+ * class HybridNitroFetch: public HybridNitroFetchSpec {
33
+ * public:
34
+ * HybridNitroFetch(...): HybridObject(TAG) { ... }
35
+ * // ...
36
+ * };
37
+ * ```
38
+ */
39
+ class HybridNitroFetchSpec: public virtual HybridObject {
40
+ public:
41
+ // Constructor
42
+ explicit HybridNitroFetchSpec(): HybridObject(TAG) { }
43
+
44
+ // Destructor
45
+ ~HybridNitroFetchSpec() override = default;
46
+
47
+ public:
48
+ // Properties
49
+
50
+
51
+ public:
52
+ // Methods
53
+ virtual std::shared_ptr<HybridNitroFetchClientSpec> createClient() = 0;
54
+
55
+ protected:
56
+ // Hybrid Setup
57
+ void loadHybridMethods() override;
58
+
59
+ protected:
60
+ // Tag for logging
61
+ static constexpr auto TAG = "NitroFetch";
62
+ };
63
+
64
+ } // namespace margelo::nitro::nitrofetch