react-nitro-networking 0.0.0-stage → 0.0.1-alpha.7

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 (73) hide show
  1. package/LICENSE +21 -0
  2. package/Package.swift +102 -0
  3. package/README.md +58 -2
  4. package/Sources/ReactNitroNetworking/HybridNetworking.swift +17 -0
  5. package/Sources/ReactNitroNetworking/HybridResponse.swift +87 -0
  6. package/Sources/ReactNitroNetworking/HybridWebSocket.swift +188 -0
  7. package/Sources/ReactNitroNetworking/NetworkingTaskDelegate.swift +16 -0
  8. package/Sources/ReactNitroNetworking/WebSocketListeners.swift +49 -0
  9. package/Sources/ReactNitroNetworking/WebSocketTaskDelegate.swift +26 -0
  10. package/Sources/ReactNitroNetworking/WebSocketURL.swift +18 -0
  11. package/nitrogen/generated/.gitattributes +1 -0
  12. package/nitrogen/generated/apple/ReactNitroNetworking-Swift-Cxx-Bridge.cpp +171 -0
  13. package/nitrogen/generated/apple/ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.cpp +9 -0
  14. package/nitrogen/generated/apple/ReactNitroNetworkingAppleCxx/include/ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.h +97 -0
  15. package/nitrogen/generated/apple/ReactNitroNetworkingAutolinking.cpp +24 -0
  16. package/nitrogen/generated/apple/ReactNitroNetworkingAutolinking.mm +24 -0
  17. package/nitrogen/generated/apple/c++/HybridNetworkingSpecSwift.cpp +42 -0
  18. package/nitrogen/generated/apple/c++/HybridNetworkingSpec_cxx-Swift.cpp +28 -0
  19. package/nitrogen/generated/apple/c++/HybridResponseSpecSwift.cpp +102 -0
  20. package/nitrogen/generated/apple/c++/HybridResponseSpec_cxx-Swift.cpp +28 -0
  21. package/nitrogen/generated/apple/c++/HybridWebSocketSpecSwift.cpp +111 -0
  22. package/nitrogen/generated/apple/c++/HybridWebSocketSpec_cxx-Swift.cpp +28 -0
  23. package/nitrogen/generated/apple/c++/ListenerSubscription-Swift.cpp +37 -0
  24. package/nitrogen/generated/apple/c++/Record_swift__String_swift__String-Swift.cpp +26 -0
  25. package/nitrogen/generated/apple/c++/ResponseType-Swift.cpp +58 -0
  26. package/nitrogen/generated/apple/c++/Variant_ArrayBuffer_String-Swift.cpp +41 -0
  27. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/ReactNitroNetworkingAutolinking.hpp +13 -0
  28. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridNetworkingSpecSwift.hpp +72 -0
  29. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridNetworkingSpec_cxx-Swift.hpp +23 -0
  30. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridResponseSpecSwift.hpp +81 -0
  31. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridResponseSpec_cxx-Swift.hpp +23 -0
  32. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridWebSocketSpecSwift.hpp +78 -0
  33. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridWebSocketSpec_cxx-Swift.hpp +23 -0
  34. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ListenerSubscription-Swift.hpp +23 -0
  35. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ReactNitroNetworking-Swift-Cxx-Umbrella.hpp +44 -0
  36. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/Record_swift__String_swift__String-Swift.hpp +23 -0
  37. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ResponseType-Swift.hpp +23 -0
  38. package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/Variant_ArrayBuffer_String-Swift.hpp +23 -0
  39. package/nitrogen/generated/apple/c++/include/module.modulemap +12 -0
  40. package/nitrogen/generated/apple/swift/Callback_void.swift +60 -0
  41. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx.swift +66 -0
  42. package/nitrogen/generated/apple/swift/Callback_void_std__exception_ptr.swift +60 -0
  43. package/nitrogen/generated/apple/swift/HybridNetworkingSpec.swift +65 -0
  44. package/nitrogen/generated/apple/swift/HybridNetworkingSpec_cxx.swift +143 -0
  45. package/nitrogen/generated/apple/swift/HybridResponseSpec.swift +74 -0
  46. package/nitrogen/generated/apple/swift/HybridResponseSpec_cxx.swift +201 -0
  47. package/nitrogen/generated/apple/swift/HybridWebSocketSpec.swift +70 -0
  48. package/nitrogen/generated/apple/swift/HybridWebSocketSpec_cxx.swift +201 -0
  49. package/nitrogen/generated/apple/swift/ListenerSubscription.swift +29 -0
  50. package/nitrogen/generated/apple/swift/Promise_ArrayBuffer.swift +100 -0
  51. package/nitrogen/generated/apple/swift/Promise_NitroModules__AnyJSON.swift +102 -0
  52. package/nitrogen/generated/apple/swift/Promise___ReactNitroNetworking__HybridResponseSpec_cxx.swift +102 -0
  53. package/nitrogen/generated/apple/swift/Promise_swift__String.swift +102 -0
  54. package/nitrogen/generated/apple/swift/Promise_void.swift +100 -0
  55. package/nitrogen/generated/apple/swift/Record_swift__String_swift__String.swift +48 -0
  56. package/nitrogen/generated/apple/swift/ResponseType.swift +74 -0
  57. package/nitrogen/generated/apple/swift/Variant_ArrayBuffer_String.swift +69 -0
  58. package/nitrogen/generated/hybrid-classes.json +29 -0
  59. package/nitrogen/generated/shared/c++/ReactNitroNetworkingCxxModule.cpp +2 -0
  60. package/nitrogen/generated/shared/c++/include/ReactNitroNetworking/ReactNitroNetworkingCxxModule.hpp +2 -0
  61. package/nitrogen/generated/shared/javascript/Networking.cjs +19 -0
  62. package/nitrogen/generated/shared/javascript/Networking.d.cts +9 -0
  63. package/nitrogen/generated/shared/javascript/Response.cjs +19 -0
  64. package/nitrogen/generated/shared/javascript/Response.d.cts +9 -0
  65. package/nitrogen/generated/shared/javascript/WebSocket.cjs +19 -0
  66. package/nitrogen/generated/shared/javascript/WebSocket.d.cts +9 -0
  67. package/package.json +34 -4
  68. package/src/ListenerSubscription.ts +7 -0
  69. package/src/ResponseType.ts +8 -0
  70. package/src/index.ts +5 -0
  71. package/src/specs/Networking.nitro.ts +18 -0
  72. package/src/specs/Response.nitro.ts +37 -0
  73. package/src/specs/WebSocket.nitro.ts +62 -0
@@ -0,0 +1,12 @@
1
+ ///
2
+ /// module.modulemap
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ // Headers used by Swift belong to the AppleCxx module.
9
+ // This implementation target must not claim them through an umbrella directory.
10
+ module ReactNitroNetworkingSwiftBridge {
11
+ requires cplusplus
12
+ }
@@ -0,0 +1,60 @@
1
+ ///
2
+ /// Callback_void.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+ internal import CxxStdlib
10
+ internal import ReactNitroNetworkingAppleCxx
11
+
12
+ public typealias Callback_void = margelo.nitro.networking.swift_bridge.Callback_void
13
+
14
+ extension Callback_void {
15
+ public typealias Arguments = ()
16
+ public typealias Return = Void
17
+ public typealias AsyncResult = margelo.nitro.networking.swift_bridge.Promise_void
18
+ private typealias bridge = margelo.nitro.networking.swift_bridge
19
+
20
+ public borrowing func __nitroCallSync(_ arguments: Arguments) throws -> Return {
21
+ let __result = bridge.callSync_Callback_void(self)
22
+ if __result.hasError() {
23
+ throw RuntimeError.from(cppError: __result.error())
24
+ }
25
+ }
26
+ public borrowing func __nitroCallAsync(_ arguments: Arguments) -> AsyncResult {
27
+ return __callAsync()
28
+ }
29
+ public borrowing func __nitroCallAndForget(_ arguments: Arguments) {
30
+ __callAndForget()
31
+ }
32
+ public init(_ closure: @escaping @Sendable () throws -> Return) {
33
+ self = bridge.create_Callback_void(.init { () -> bridge.Result_void in
34
+ do {
35
+ try closure()
36
+ return bridge.Result_void.withValue()
37
+ } catch {
38
+ return bridge.Result_void.withError(error.toCpp())
39
+ }
40
+ })
41
+ }
42
+ }
43
+
44
+ extension Callback<(), Void> where Self == Callback_void {
45
+ /// Creates a native callback from an escaping Swift closure.
46
+ public static func native(_ closure: @escaping @Sendable () throws -> Void) -> Self {
47
+ return Self(closure)
48
+ }
49
+ }
50
+
51
+ extension Callback<(), Void> {
52
+ func toCpp() -> Callback_void {
53
+ if let value = self as? Callback_void {
54
+ return value
55
+ }
56
+ return Callback_void { () -> Void in
57
+ try self.callSync(())
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,66 @@
1
+ ///
2
+ /// Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+ internal import CxxStdlib
10
+ internal import ReactNitroNetworkingAppleCxx
11
+
12
+ public typealias Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx = margelo.nitro.networking.swift_bridge.Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx
13
+
14
+ extension Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx {
15
+ public typealias Arguments = (Variant_ArrayBuffer_String)
16
+ public typealias Return = Void
17
+ public typealias AsyncResult = margelo.nitro.networking.swift_bridge.Promise_void
18
+ private typealias bridge = margelo.nitro.networking.swift_bridge
19
+
20
+ public func __nitroCallSync(_ arguments: Arguments) throws -> Return {
21
+ return try withUnsafePointer(to: Variant_ArrayBuffer_String_cxx(arguments)) { (param0: UnsafePointer<Variant_ArrayBuffer_String_cxx>) -> Return in
22
+ let __result = bridge.callSync_Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx(self, param0)
23
+ if __result.hasError() {
24
+ throw RuntimeError.from(cppError: __result.error())
25
+ }
26
+ }
27
+ }
28
+ public func __nitroCallAsync(_ arguments: Arguments) -> AsyncResult {
29
+ return withUnsafePointer(to: Variant_ArrayBuffer_String_cxx(arguments)) { (param0: UnsafePointer<Variant_ArrayBuffer_String_cxx>) -> AsyncResult in
30
+ return bridge.callAsync_Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx(self, param0)
31
+ }
32
+ }
33
+ public func __nitroCallAndForget(_ arguments: Arguments) {
34
+ return withUnsafePointer(to: Variant_ArrayBuffer_String_cxx(arguments)) { (param0: UnsafePointer<Variant_ArrayBuffer_String_cxx>) -> Void in
35
+ bridge.callAndForget_Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx(self, param0)
36
+ }
37
+ }
38
+ public init(_ closure: @escaping @Sendable (Variant_ArrayBuffer_String) throws -> Return) {
39
+ self = bridge.create_Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx(.init { (param0: UnsafeRawPointer!) -> bridge.Result_void in
40
+ do {
41
+ try closure(param0.load(as: Variant_ArrayBuffer_String_cxx.self).value)
42
+ return bridge.Result_void.withValue()
43
+ } catch {
44
+ return bridge.Result_void.withError(error.toCpp())
45
+ }
46
+ })
47
+ }
48
+ }
49
+
50
+ extension Callback<(Variant_ArrayBuffer_String), Void> where Self == Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx {
51
+ /// Creates a native callback from an escaping Swift closure.
52
+ public static func native(_ closure: @escaping @Sendable (Variant_ArrayBuffer_String) throws -> Void) -> Self {
53
+ return Self(closure)
54
+ }
55
+ }
56
+
57
+ extension Callback<(Variant_ArrayBuffer_String), Void> {
58
+ func toCpp() -> Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx {
59
+ if let value = self as? Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx {
60
+ return value
61
+ }
62
+ return Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx { (param0: Variant_ArrayBuffer_String) -> Void in
63
+ try self.callSync((param0))
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,60 @@
1
+ ///
2
+ /// Callback_void_std__exception_ptr.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+ internal import CxxStdlib
10
+ internal import ReactNitroNetworkingAppleCxx
11
+
12
+ public typealias Callback_void_std__exception_ptr = margelo.nitro.networking.swift_bridge.Callback_void_std__exception_ptr
13
+
14
+ extension Callback_void_std__exception_ptr {
15
+ public typealias Arguments = (any Error)
16
+ public typealias Return = Void
17
+ public typealias AsyncResult = margelo.nitro.networking.swift_bridge.Promise_void
18
+ private typealias bridge = margelo.nitro.networking.swift_bridge
19
+
20
+ public borrowing func __nitroCallSync(_ arguments: Arguments) throws -> Return {
21
+ let __result = bridge.callSync_Callback_void_std__exception_ptr(self, arguments.toCpp())
22
+ if __result.hasError() {
23
+ throw RuntimeError.from(cppError: __result.error())
24
+ }
25
+ }
26
+ public borrowing func __nitroCallAsync(_ arguments: Arguments) -> AsyncResult {
27
+ return __callAsync(arguments.toCpp())
28
+ }
29
+ public borrowing func __nitroCallAndForget(_ arguments: Arguments) {
30
+ __callAndForget(arguments.toCpp())
31
+ }
32
+ public init(_ closure: @escaping @Sendable (any Error) throws -> Return) {
33
+ self = bridge.create_Callback_void_std__exception_ptr(.init { (param0: std.exception_ptr) -> bridge.Result_void in
34
+ do {
35
+ try closure(RuntimeError.from(cppError: param0))
36
+ return bridge.Result_void.withValue()
37
+ } catch {
38
+ return bridge.Result_void.withError(error.toCpp())
39
+ }
40
+ })
41
+ }
42
+ }
43
+
44
+ extension Callback<(any Error), Void> where Self == Callback_void_std__exception_ptr {
45
+ /// Creates a native callback from an escaping Swift closure.
46
+ public static func native(_ closure: @escaping @Sendable (any Error) throws -> Void) -> Self {
47
+ return Self(closure)
48
+ }
49
+ }
50
+
51
+ extension Callback<(any Error), Void> {
52
+ func toCpp() -> Callback_void_std__exception_ptr {
53
+ if let value = self as? Callback_void_std__exception_ptr {
54
+ return value
55
+ }
56
+ return Callback_void_std__exception_ptr { (param0: any Error) -> Void in
57
+ try self.callSync((param0))
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// HybridNetworkingSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+
10
+ /// See ``HybridNetworkingSpec``
11
+ public protocol HybridNetworkingSpec_protocol: HybridNetworkingSpec_base, HybridObject {
12
+ // Constructor
13
+
14
+
15
+ // Properties
16
+
17
+
18
+ // Methods
19
+
20
+
21
+ // Static Properties
22
+
23
+
24
+ // Static Methods
25
+ static func fetch(url: String) throws -> any Promise<(any HybridResponseSpec)>
26
+ }
27
+
28
+ public extension HybridNetworkingSpec_protocol {
29
+ /// Default implementation of ``HybridObject.toString``
30
+ func toString() -> String {
31
+ return "[HybridObject Networking]"
32
+ }
33
+ }
34
+
35
+ /// See ``HybridNetworkingSpec``
36
+ open class HybridNetworkingSpec_base {
37
+ private weak var cxxWrapper: HybridNetworkingSpec_cxx? = nil
38
+ public init() throws {
39
+ }
40
+ public final func getCxxWrapper() -> HybridNetworkingSpec_cxx {
41
+ #if DEBUG
42
+ guard self is any HybridNetworkingSpec else {
43
+ fatalError("`self` is not a `HybridNetworkingSpec`! Did you accidentally inherit from `HybridNetworkingSpec_base` instead of `HybridNetworkingSpec`?")
44
+ }
45
+ #endif
46
+ if let cxxWrapper = self.cxxWrapper {
47
+ return cxxWrapper
48
+ } else {
49
+ let cxxWrapper = HybridNetworkingSpec_cxx(self as! any HybridNetworkingSpec)
50
+ self.cxxWrapper = cxxWrapper
51
+ return cxxWrapper
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * A Swift base-protocol representing the Networking HybridObject.
58
+ * Implement this protocol to create Swift-based instances of Networking.
59
+ * ```swift
60
+ * class HybridNetworking : HybridNetworkingSpec {
61
+ * // ...
62
+ * }
63
+ * ```
64
+ */
65
+ public typealias HybridNetworkingSpec = HybridNetworkingSpec_protocol & HybridNetworkingSpec_base
@@ -0,0 +1,143 @@
1
+ ///
2
+ /// HybridNetworkingSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+ internal import NitroModules
8
+ internal import CxxStdlib
9
+ internal import ReactNitroNetworkingAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridNetworkingSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ */
15
+ @_expose(Cxx)
16
+ public final class HybridNetworkingSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::networking::swift_bridge`)
19
+ * from `ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.networking.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridNetworkingSpec`.
26
+ */
27
+ private let __implementation: HybridNetworking
28
+
29
+ /**
30
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
31
+ */
32
+ private var __cxxPart: bridge.std__weak_ptr_margelo__nitro__networking__HybridNetworkingSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridNetworkingSpec_cxx` that wraps the given `HybridNetworkingSpec`.
36
+ */
37
+ public init(_ implementation: any HybridNetworkingSpec) {
38
+ guard let implementation = implementation as? HybridNetworking else {
39
+ preconditionFailure("Networking selects HybridNetworking as its Swift implementation. Every instance must inherit HybridNetworking.")
40
+ }
41
+ self.__implementation = implementation
42
+
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridNetworkingSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridNetworkingSpec() -> any HybridNetworkingSpec {
50
+ return __implementation
51
+ }
52
+
53
+ /**
54
+ * Casts this instance to a retained unsafe raw pointer.
55
+ * This acquires one additional strong reference on the object!
56
+ */
57
+ public func toUnsafe() -> UnsafeMutableRawPointer {
58
+ return Unmanaged.passRetained(self).toOpaque()
59
+ }
60
+
61
+ /**
62
+ * Casts an unsafe pointer to a `HybridNetworkingSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridNetworkingSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridNetworkingSpec_cxx {
67
+ return Unmanaged<HybridNetworkingSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
68
+ }
69
+
70
+ /**
71
+ * Gets (or creates) the C++ part of this Hybrid Object.
72
+ * This handle keeps the original native object alive.
73
+ */
74
+ public func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__networking__HybridNetworkingSpec_ {
75
+ let cached = __cxxPart.lock()
76
+ if cached.use_count() > 0 {
77
+ return cached
78
+ }
79
+ let value = bridge.create_std__shared_ptr_margelo__nitro__networking__HybridNetworkingSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__networking__HybridNetworkingSpec_(value)
81
+ return value
82
+ }
83
+
84
+
85
+
86
+ // A static borrowing accessor lets C++ pass a const reference without copying it.
87
+ // TODO: Remove this adapter and call the instance method directly once
88
+ // https://github.com/swiftlang/swift/pull/92862 is merged and supported by our Swift toolchain.
89
+ @_spi(NitroCxx)
90
+ public static func getCxxPart(_ value: borrowing HybridNetworkingSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__networking__HybridNetworkingSpec_ {
91
+ return value.getCxxPart()
92
+ }
93
+
94
+ /**
95
+ * Get the memory size of the Swift class (plus size of any other allocations)
96
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
97
+ */
98
+ @inline(__always)
99
+ public var memorySize: Int {
100
+ return MemoryHelper.getSizeOf(__implementation) + __implementation.memorySize
101
+ }
102
+
103
+ /**
104
+ * Compares this object with the given [other] object for reference equality.
105
+ */
106
+ @inline(__always)
107
+ public func equals(other: HybridNetworkingSpec_cxx) -> Bool {
108
+ return __implementation === other.__implementation
109
+ }
110
+
111
+ /**
112
+ * Call dispose() on the Swift class.
113
+ * This _may_ be called manually from JS.
114
+ */
115
+ @inline(__always)
116
+ public func dispose() {
117
+ __implementation.dispose()
118
+ }
119
+
120
+ /**
121
+ * Call toString() on the Swift class.
122
+ */
123
+ @inline(__always)
124
+ public func toString() -> String {
125
+ return __implementation.toString()
126
+ }
127
+
128
+ // Properties
129
+
130
+ // Methods
131
+
132
+ // Static methods
133
+
134
+ public class func fetch(url: String, __outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
135
+ do {
136
+ let value = try HybridNetworking.fetch(url: url)
137
+ __outResult.initializeMemory(as: margelo.nitro.networking.swift_bridge.Promise___ReactNitroNetworking__HybridResponseSpec_cxx.self, repeating: value.toCpp(), count: 1)
138
+ return bridge.Result_void.withValue()
139
+ } catch {
140
+ return bridge.Result_void.withError(error.toCpp())
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,74 @@
1
+ ///
2
+ /// HybridResponseSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+
10
+ /// See ``HybridResponseSpec``
11
+ public protocol HybridResponseSpec_protocol: HybridResponseSpec_base, HybridObject {
12
+ // Constructor
13
+
14
+
15
+ // Properties
16
+ var headers: Dictionary<String, String> { get }
17
+ var status: Double { get }
18
+ var ok: Bool { get }
19
+ var statusText: String { get }
20
+ var url: String { get }
21
+ var redirected: Bool { get }
22
+ var type: ResponseType { get }
23
+ var bodyUsed: Bool { get }
24
+
25
+ // Methods
26
+ func arrayBuffer() throws -> any Promise<ArrayBuffer>
27
+ func json() throws -> any Promise<AnyJSON>
28
+ func text() throws -> any Promise<String>
29
+
30
+ // Static Properties
31
+
32
+
33
+ // Static Methods
34
+
35
+ }
36
+
37
+ public extension HybridResponseSpec_protocol {
38
+ /// Default implementation of ``HybridObject.toString``
39
+ func toString() -> String {
40
+ return "[HybridObject Response]"
41
+ }
42
+ }
43
+
44
+ /// See ``HybridResponseSpec``
45
+ open class HybridResponseSpec_base {
46
+ private weak var cxxWrapper: HybridResponseSpec_cxx? = nil
47
+ public init() throws {
48
+ }
49
+ public final func getCxxWrapper() -> HybridResponseSpec_cxx {
50
+ #if DEBUG
51
+ guard self is any HybridResponseSpec else {
52
+ fatalError("`self` is not a `HybridResponseSpec`! Did you accidentally inherit from `HybridResponseSpec_base` instead of `HybridResponseSpec`?")
53
+ }
54
+ #endif
55
+ if let cxxWrapper = self.cxxWrapper {
56
+ return cxxWrapper
57
+ } else {
58
+ let cxxWrapper = HybridResponseSpec_cxx(self as! any HybridResponseSpec)
59
+ self.cxxWrapper = cxxWrapper
60
+ return cxxWrapper
61
+ }
62
+ }
63
+ }
64
+
65
+ /**
66
+ * A Swift base-protocol representing the Response HybridObject.
67
+ * Implement this protocol to create Swift-based instances of Response.
68
+ * ```swift
69
+ * class HybridResponse : HybridResponseSpec {
70
+ * // ...
71
+ * }
72
+ * ```
73
+ */
74
+ public typealias HybridResponseSpec = HybridResponseSpec_protocol & HybridResponseSpec_base
@@ -0,0 +1,201 @@
1
+ ///
2
+ /// HybridResponseSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+ internal import NitroModules
8
+ internal import CxxStdlib
9
+ internal import ReactNitroNetworkingAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridResponseSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ */
15
+ @_expose(Cxx)
16
+ public final class HybridResponseSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::networking::swift_bridge`)
19
+ * from `ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.networking.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridResponseSpec`.
26
+ */
27
+ private let __implementation: HybridResponse
28
+
29
+ /**
30
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
31
+ */
32
+ private var __cxxPart: bridge.std__weak_ptr_margelo__nitro__networking__HybridResponseSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridResponseSpec_cxx` that wraps the given `HybridResponseSpec`.
36
+ */
37
+ public init(_ implementation: any HybridResponseSpec) {
38
+ guard let implementation = implementation as? HybridResponse else {
39
+ preconditionFailure("Response selects HybridResponse as its Swift implementation. Every instance must inherit HybridResponse.")
40
+ }
41
+ self.__implementation = implementation
42
+
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridResponseSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridResponseSpec() -> any HybridResponseSpec {
50
+ return __implementation
51
+ }
52
+
53
+ /**
54
+ * Casts this instance to a retained unsafe raw pointer.
55
+ * This acquires one additional strong reference on the object!
56
+ */
57
+ public func toUnsafe() -> UnsafeMutableRawPointer {
58
+ return Unmanaged.passRetained(self).toOpaque()
59
+ }
60
+
61
+ /**
62
+ * Casts an unsafe pointer to a `HybridResponseSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridResponseSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridResponseSpec_cxx {
67
+ return Unmanaged<HybridResponseSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
68
+ }
69
+
70
+ /**
71
+ * Gets (or creates) the C++ part of this Hybrid Object.
72
+ * This handle keeps the original native object alive.
73
+ */
74
+ public func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__networking__HybridResponseSpec_ {
75
+ let cached = __cxxPart.lock()
76
+ if cached.use_count() > 0 {
77
+ return cached
78
+ }
79
+ let value = bridge.create_std__shared_ptr_margelo__nitro__networking__HybridResponseSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__networking__HybridResponseSpec_(value)
81
+ return value
82
+ }
83
+
84
+
85
+
86
+ // A static borrowing accessor lets C++ pass a const reference without copying it.
87
+ // TODO: Remove this adapter and call the instance method directly once
88
+ // https://github.com/swiftlang/swift/pull/92862 is merged and supported by our Swift toolchain.
89
+ @_spi(NitroCxx)
90
+ public static func getCxxPart(_ value: borrowing HybridResponseSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__networking__HybridResponseSpec_ {
91
+ return value.getCxxPart()
92
+ }
93
+
94
+ /**
95
+ * Get the memory size of the Swift class (plus size of any other allocations)
96
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
97
+ */
98
+ @inline(__always)
99
+ public var memorySize: Int {
100
+ return MemoryHelper.getSizeOf(__implementation) + __implementation.memorySize
101
+ }
102
+
103
+ /**
104
+ * Compares this object with the given [other] object for reference equality.
105
+ */
106
+ @inline(__always)
107
+ public func equals(other: HybridResponseSpec_cxx) -> Bool {
108
+ return __implementation === other.__implementation
109
+ }
110
+
111
+ /**
112
+ * Call dispose() on the Swift class.
113
+ * This _may_ be called manually from JS.
114
+ */
115
+ @inline(__always)
116
+ public func dispose() {
117
+ __implementation.dispose()
118
+ }
119
+
120
+ /**
121
+ * Call toString() on the Swift class.
122
+ */
123
+ @inline(__always)
124
+ public func toString() -> String {
125
+ return __implementation.toString()
126
+ }
127
+
128
+ // Properties
129
+
130
+ public final func getHeaders() -> Record_swift__String_swift__String {
131
+ let value = __implementation.headers
132
+ return Record_swift__String_swift__String(value)
133
+ }
134
+
135
+ public final func getStatus() -> Double {
136
+ let value = __implementation.status
137
+ return value
138
+ }
139
+
140
+ public final func getOk() -> Bool {
141
+ let value = __implementation.ok
142
+ return value
143
+ }
144
+
145
+ public final func getStatusText() -> String {
146
+ let value = __implementation.statusText
147
+ return value
148
+ }
149
+
150
+ public final func getUrl() -> String {
151
+ let value = __implementation.url
152
+ return value
153
+ }
154
+
155
+ public final func getRedirected() -> Bool {
156
+ let value = __implementation.redirected
157
+ return value
158
+ }
159
+
160
+ public final func getType() -> ResponseType {
161
+ let value = __implementation.type
162
+ return value
163
+ }
164
+
165
+ public final func getBodyUsed() -> Bool {
166
+ let value = __implementation.bodyUsed
167
+ return value
168
+ }
169
+
170
+ // Methods
171
+
172
+ public final func arrayBuffer(__outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
173
+ do {
174
+ let value = try __implementation.arrayBuffer()
175
+ __outResult.initializeMemory(as: margelo.nitro.networking.swift_bridge.Promise_ArrayBuffer.self, repeating: value.toCpp(), count: 1)
176
+ return bridge.Result_void.withValue()
177
+ } catch {
178
+ return bridge.Result_void.withError(error.toCpp())
179
+ }
180
+ }
181
+
182
+ public final func json(__outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
183
+ do {
184
+ let value = try __implementation.json()
185
+ __outResult.initializeMemory(as: margelo.nitro.networking.swift_bridge.Promise_NitroModules__AnyJSON.self, repeating: value.toCpp(), count: 1)
186
+ return bridge.Result_void.withValue()
187
+ } catch {
188
+ return bridge.Result_void.withError(error.toCpp())
189
+ }
190
+ }
191
+
192
+ public final func text(__outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
193
+ do {
194
+ let value = try __implementation.text()
195
+ __outResult.initializeMemory(as: margelo.nitro.networking.swift_bridge.Promise_swift__String.self, repeating: value.toCpp(), count: 1)
196
+ return bridge.Result_void.withValue()
197
+ } catch {
198
+ return bridge.Result_void.withError(error.toCpp())
199
+ }
200
+ }
201
+ }