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.
- package/LICENSE +21 -0
- package/Package.swift +102 -0
- package/README.md +58 -2
- package/Sources/ReactNitroNetworking/HybridNetworking.swift +17 -0
- package/Sources/ReactNitroNetworking/HybridResponse.swift +87 -0
- package/Sources/ReactNitroNetworking/HybridWebSocket.swift +188 -0
- package/Sources/ReactNitroNetworking/NetworkingTaskDelegate.swift +16 -0
- package/Sources/ReactNitroNetworking/WebSocketListeners.swift +49 -0
- package/Sources/ReactNitroNetworking/WebSocketTaskDelegate.swift +26 -0
- package/Sources/ReactNitroNetworking/WebSocketURL.swift +18 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/apple/ReactNitroNetworking-Swift-Cxx-Bridge.cpp +171 -0
- package/nitrogen/generated/apple/ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.cpp +9 -0
- package/nitrogen/generated/apple/ReactNitroNetworkingAppleCxx/include/ReactNitroNetworkingAppleCxx/ReactNitroNetworkingAppleCxx.h +97 -0
- package/nitrogen/generated/apple/ReactNitroNetworkingAutolinking.cpp +24 -0
- package/nitrogen/generated/apple/ReactNitroNetworkingAutolinking.mm +24 -0
- package/nitrogen/generated/apple/c++/HybridNetworkingSpecSwift.cpp +42 -0
- package/nitrogen/generated/apple/c++/HybridNetworkingSpec_cxx-Swift.cpp +28 -0
- package/nitrogen/generated/apple/c++/HybridResponseSpecSwift.cpp +102 -0
- package/nitrogen/generated/apple/c++/HybridResponseSpec_cxx-Swift.cpp +28 -0
- package/nitrogen/generated/apple/c++/HybridWebSocketSpecSwift.cpp +111 -0
- package/nitrogen/generated/apple/c++/HybridWebSocketSpec_cxx-Swift.cpp +28 -0
- package/nitrogen/generated/apple/c++/ListenerSubscription-Swift.cpp +37 -0
- package/nitrogen/generated/apple/c++/Record_swift__String_swift__String-Swift.cpp +26 -0
- package/nitrogen/generated/apple/c++/ResponseType-Swift.cpp +58 -0
- package/nitrogen/generated/apple/c++/Variant_ArrayBuffer_String-Swift.cpp +41 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/ReactNitroNetworkingAutolinking.hpp +13 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridNetworkingSpecSwift.hpp +72 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridNetworkingSpec_cxx-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridResponseSpecSwift.hpp +81 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridResponseSpec_cxx-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridWebSocketSpecSwift.hpp +78 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/HybridWebSocketSpec_cxx-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ListenerSubscription-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ReactNitroNetworking-Swift-Cxx-Umbrella.hpp +44 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/Record_swift__String_swift__String-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/ResponseType-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/ReactNitroNetworking/private/Variant_ArrayBuffer_String-Swift.hpp +23 -0
- package/nitrogen/generated/apple/c++/include/module.modulemap +12 -0
- package/nitrogen/generated/apple/swift/Callback_void.swift +60 -0
- package/nitrogen/generated/apple/swift/Callback_void___ReactNitroNetworking__Variant_ArrayBuffer_String_cxx.swift +66 -0
- package/nitrogen/generated/apple/swift/Callback_void_std__exception_ptr.swift +60 -0
- package/nitrogen/generated/apple/swift/HybridNetworkingSpec.swift +65 -0
- package/nitrogen/generated/apple/swift/HybridNetworkingSpec_cxx.swift +143 -0
- package/nitrogen/generated/apple/swift/HybridResponseSpec.swift +74 -0
- package/nitrogen/generated/apple/swift/HybridResponseSpec_cxx.swift +201 -0
- package/nitrogen/generated/apple/swift/HybridWebSocketSpec.swift +70 -0
- package/nitrogen/generated/apple/swift/HybridWebSocketSpec_cxx.swift +201 -0
- package/nitrogen/generated/apple/swift/ListenerSubscription.swift +29 -0
- package/nitrogen/generated/apple/swift/Promise_ArrayBuffer.swift +100 -0
- package/nitrogen/generated/apple/swift/Promise_NitroModules__AnyJSON.swift +102 -0
- package/nitrogen/generated/apple/swift/Promise___ReactNitroNetworking__HybridResponseSpec_cxx.swift +102 -0
- package/nitrogen/generated/apple/swift/Promise_swift__String.swift +102 -0
- package/nitrogen/generated/apple/swift/Promise_void.swift +100 -0
- package/nitrogen/generated/apple/swift/Record_swift__String_swift__String.swift +48 -0
- package/nitrogen/generated/apple/swift/ResponseType.swift +74 -0
- package/nitrogen/generated/apple/swift/Variant_ArrayBuffer_String.swift +69 -0
- package/nitrogen/generated/hybrid-classes.json +29 -0
- package/nitrogen/generated/shared/c++/ReactNitroNetworkingCxxModule.cpp +2 -0
- package/nitrogen/generated/shared/c++/include/ReactNitroNetworking/ReactNitroNetworkingCxxModule.hpp +2 -0
- package/nitrogen/generated/shared/javascript/Networking.cjs +19 -0
- package/nitrogen/generated/shared/javascript/Networking.d.cts +9 -0
- package/nitrogen/generated/shared/javascript/Response.cjs +19 -0
- package/nitrogen/generated/shared/javascript/Response.d.cts +9 -0
- package/nitrogen/generated/shared/javascript/WebSocket.cjs +19 -0
- package/nitrogen/generated/shared/javascript/WebSocket.d.cts +9 -0
- package/package.json +34 -4
- package/src/ListenerSubscription.ts +7 -0
- package/src/ResponseType.ts +8 -0
- package/src/index.ts +5 -0
- package/src/specs/Networking.nitro.ts +18 -0
- package/src/specs/Response.nitro.ts +37 -0
- 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
|
+
}
|