react-nitro-renderer 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 (247) hide show
  1. package/LICENSE +21 -0
  2. package/Package.swift +104 -0
  3. package/README.md +111 -2
  4. package/Sources/ReactNitroRenderer/Animations/AnimationCurve+toUIAnimationCurve.swift +31 -0
  5. package/Sources/ReactNitroRenderer/Animations/HybridAnimator.swift +36 -0
  6. package/Sources/ReactNitroRenderer/Animations/View+Animations.swift +39 -0
  7. package/Sources/ReactNitroRenderer/Components/HybridLabel.swift +89 -0
  8. package/Sources/ReactNitroRenderer/Components/HybridScrollView.swift +21 -0
  9. package/Sources/ReactNitroRenderer/Components/HybridScrollViewContent.swift +36 -0
  10. package/Sources/ReactNitroRenderer/Components/HybridView.swift +22 -0
  11. package/Sources/ReactNitroRenderer/Components/View.swift +267 -0
  12. package/Sources/ReactNitroRenderer/CustomViewController.swift +36 -0
  13. package/Sources/ReactNitroRenderer/Extensions/Corner+toCACornerMask.swift +16 -0
  14. package/Sources/ReactNitroRenderer/Extensions/CornerCurve+toUICornerCurve.swift +23 -0
  15. package/Sources/ReactNitroRenderer/Extensions/EdgeInsets+UIEdgeInsets.swift +7 -0
  16. package/Sources/ReactNitroRenderer/Extensions/ModifierKey+toUIKeyModifierFlags.swift +31 -0
  17. package/Sources/ReactNitroRenderer/Extensions/Point+CGPoint.swift +15 -0
  18. package/Sources/ReactNitroRenderer/Extensions/UIGestureRecognizerState+toUIGestureRecognizerState.swift +39 -0
  19. package/Sources/ReactNitroRenderer/Gestures/HybridGestureRecognizer.swift +40 -0
  20. package/Sources/ReactNitroRenderer/Gestures/HybridLongPressGestureRecognizer.swift +53 -0
  21. package/Sources/ReactNitroRenderer/Gestures/HybridPanGestureRecognizer.swift +52 -0
  22. package/Sources/ReactNitroRenderer/Gestures/HybridTapGestureRecognizer.swift +42 -0
  23. package/Sources/ReactNitroRenderer/HybridApplication.swift +19 -0
  24. package/Sources/ReactNitroRenderer/HybridScreen.swift +22 -0
  25. package/Sources/ReactNitroRenderer/HybridViewController.swift +66 -0
  26. package/Sources/ReactNitroRenderer/HybridWindow.swift +25 -0
  27. package/Sources/ReactNitroRenderer/HybridWindowScene.swift +16 -0
  28. package/Sources/ReactNitroRenderer/RegisterRootCallback.swift +28 -0
  29. package/Sources/ReactNitroRenderer/RuntimeReloadableAppDelegate.swift +14 -0
  30. package/Sources/ReactNitroRenderer/SafeAreaInsetsListeners.swift +22 -0
  31. package/Sources/ReactNitroRenderer/UIColor+initRGBA.swift +10 -0
  32. package/Sources/ReactNitroRenderer/UIColor+rgba.swift +20 -0
  33. package/Sources/ReactNitroRenderer/ViewController.swift +13 -0
  34. package/Sources/ReactNitroRenderer/Window.swift +12 -0
  35. package/Sources/ReactNitroRenderer/WindowScene.swift +12 -0
  36. package/Sources/ReactNitroRenderer/YGNode.swift +46 -0
  37. package/nitrogen/generated/.gitattributes +1 -0
  38. package/nitrogen/generated/apple/ReactNitroRenderer-Swift-Cxx-Bridge.cpp +376 -0
  39. package/nitrogen/generated/apple/ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.cpp +9 -0
  40. package/nitrogen/generated/apple/ReactNitroRendererAppleCxx/include/ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h +245 -0
  41. package/nitrogen/generated/apple/ReactNitroRendererAutolinking.cpp +46 -0
  42. package/nitrogen/generated/apple/ReactNitroRendererAutolinking.mm +24 -0
  43. package/nitrogen/generated/apple/c++/AnimationCurve-Swift.cpp +42 -0
  44. package/nitrogen/generated/apple/c++/Corner-Swift.cpp +52 -0
  45. package/nitrogen/generated/apple/c++/CornerCurve-Swift.cpp +46 -0
  46. package/nitrogen/generated/apple/c++/EdgeInsets-Swift.cpp +35 -0
  47. package/nitrogen/generated/apple/c++/Frame-Swift.cpp +35 -0
  48. package/nitrogen/generated/apple/c++/GestureRecognizerState-Swift.cpp +44 -0
  49. package/nitrogen/generated/apple/c++/HybridAnimatorSpecSwift.cpp +53 -0
  50. package/nitrogen/generated/apple/c++/HybridAnimatorSpec_cxx-Swift.cpp +28 -0
  51. package/nitrogen/generated/apple/c++/HybridApplicationSpecSwift.cpp +58 -0
  52. package/nitrogen/generated/apple/c++/HybridApplicationSpec_cxx-Swift.cpp +28 -0
  53. package/nitrogen/generated/apple/c++/HybridGestureRecognizerSpecSwift.cpp +48 -0
  54. package/nitrogen/generated/apple/c++/HybridGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  55. package/nitrogen/generated/apple/c++/HybridLabelSpecSwift.cpp +49 -0
  56. package/nitrogen/generated/apple/c++/HybridLabelSpec_cxx-Swift.cpp +28 -0
  57. package/nitrogen/generated/apple/c++/HybridLongPressGestureRecognizerSpecSwift.cpp +85 -0
  58. package/nitrogen/generated/apple/c++/HybridLongPressGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  59. package/nitrogen/generated/apple/c++/HybridPanGestureRecognizerSpecSwift.cpp +89 -0
  60. package/nitrogen/generated/apple/c++/HybridPanGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  61. package/nitrogen/generated/apple/c++/HybridScreenSpecSwift.cpp +44 -0
  62. package/nitrogen/generated/apple/c++/HybridScreenSpec_cxx-Swift.cpp +28 -0
  63. package/nitrogen/generated/apple/c++/HybridScrollViewContentSpecSwift.cpp +40 -0
  64. package/nitrogen/generated/apple/c++/HybridScrollViewContentSpec_cxx-Swift.cpp +28 -0
  65. package/nitrogen/generated/apple/c++/HybridScrollViewSpecSwift.cpp +40 -0
  66. package/nitrogen/generated/apple/c++/HybridScrollViewSpec_cxx-Swift.cpp +28 -0
  67. package/nitrogen/generated/apple/c++/HybridTapGestureRecognizerSpecSwift.cpp +67 -0
  68. package/nitrogen/generated/apple/c++/HybridTapGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  69. package/nitrogen/generated/apple/c++/HybridViewControllerSpecSwift.cpp +91 -0
  70. package/nitrogen/generated/apple/c++/HybridViewControllerSpec_cxx-Swift.cpp +28 -0
  71. package/nitrogen/generated/apple/c++/HybridViewSpecSwift.cpp +231 -0
  72. package/nitrogen/generated/apple/c++/HybridViewSpec_cxx-Swift.cpp +28 -0
  73. package/nitrogen/generated/apple/c++/HybridWindowSceneSpecSwift.cpp +34 -0
  74. package/nitrogen/generated/apple/c++/HybridWindowSceneSpec_cxx-Swift.cpp +28 -0
  75. package/nitrogen/generated/apple/c++/HybridWindowSpecSwift.cpp +53 -0
  76. package/nitrogen/generated/apple/c++/HybridWindowSpec_cxx-Swift.cpp +28 -0
  77. package/nitrogen/generated/apple/c++/ListenerSubscription-Swift.cpp +37 -0
  78. package/nitrogen/generated/apple/c++/ModifierKey-Swift.cpp +52 -0
  79. package/nitrogen/generated/apple/c++/Point-Swift.cpp +33 -0
  80. package/nitrogen/generated/apple/c++/Point3D-Swift.cpp +34 -0
  81. package/nitrogen/generated/apple/c++/Size-Swift.cpp +33 -0
  82. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/ReactNitroRendererAutolinking.hpp +13 -0
  83. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/AnimationCurve-Swift.hpp +23 -0
  84. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Corner-Swift.hpp +23 -0
  85. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/CornerCurve-Swift.hpp +23 -0
  86. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/EdgeInsets-Swift.hpp +23 -0
  87. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Frame-Swift.hpp +23 -0
  88. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/GestureRecognizerState-Swift.hpp +23 -0
  89. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridAnimatorSpecSwift.hpp +73 -0
  90. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridAnimatorSpec_cxx-Swift.hpp +23 -0
  91. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridApplicationSpecSwift.hpp +74 -0
  92. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridApplicationSpec_cxx-Swift.hpp +23 -0
  93. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridGestureRecognizerSpecSwift.hpp +74 -0
  94. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  95. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLabelSpecSwift.hpp +74 -0
  96. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLabelSpec_cxx-Swift.hpp +23 -0
  97. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLongPressGestureRecognizerSpecSwift.hpp +82 -0
  98. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLongPressGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  99. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridPanGestureRecognizerSpecSwift.hpp +80 -0
  100. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridPanGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  101. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScreenSpecSwift.hpp +73 -0
  102. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScreenSpec_cxx-Swift.hpp +23 -0
  103. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewContentSpecSwift.hpp +72 -0
  104. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewContentSpec_cxx-Swift.hpp +23 -0
  105. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewSpecSwift.hpp +72 -0
  106. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewSpec_cxx-Swift.hpp +23 -0
  107. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridTapGestureRecognizerSpecSwift.hpp +78 -0
  108. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridTapGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  109. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewControllerSpecSwift.hpp +77 -0
  110. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewControllerSpec_cxx-Swift.hpp +23 -0
  111. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewSpecSwift.hpp +102 -0
  112. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewSpec_cxx-Swift.hpp +23 -0
  113. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSceneSpecSwift.hpp +71 -0
  114. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSceneSpec_cxx-Swift.hpp +23 -0
  115. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSpecSwift.hpp +74 -0
  116. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSpec_cxx-Swift.hpp +23 -0
  117. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ListenerSubscription-Swift.hpp +23 -0
  118. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ModifierKey-Swift.hpp +23 -0
  119. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Point-Swift.hpp +23 -0
  120. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Point3D-Swift.hpp +23 -0
  121. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ReactNitroRenderer-Swift-Cxx-Umbrella.hpp +69 -0
  122. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Size-Swift.hpp +23 -0
  123. package/nitrogen/generated/apple/c++/include/module.modulemap +12 -0
  124. package/nitrogen/generated/apple/swift/AnimationCurve.swift +64 -0
  125. package/nitrogen/generated/apple/swift/Callback___ReactNitroRenderer__HybridWindowSpec_cxx___ReactNitroRenderer__HybridWindowSceneSpec_cxx.swift +71 -0
  126. package/nitrogen/generated/apple/swift/Callback_void.swift +60 -0
  127. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__EdgeInsets.swift +66 -0
  128. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridLongPressGestureRecognizerSpec_cxx.swift +66 -0
  129. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridPanGestureRecognizerSpec_cxx.swift +66 -0
  130. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridTapGestureRecognizerSpec_cxx.swift +66 -0
  131. package/nitrogen/generated/apple/swift/Corner.swift +64 -0
  132. package/nitrogen/generated/apple/swift/CornerCurve.swift +54 -0
  133. package/nitrogen/generated/apple/swift/EdgeInsets.swift +49 -0
  134. package/nitrogen/generated/apple/swift/Frame.swift +49 -0
  135. package/nitrogen/generated/apple/swift/GestureRecognizerState.swift +74 -0
  136. package/nitrogen/generated/apple/swift/HybridAnimatorSpec.swift +67 -0
  137. package/nitrogen/generated/apple/swift/HybridAnimatorSpec_cxx.swift +158 -0
  138. package/nitrogen/generated/apple/swift/HybridApplicationSpec.swift +67 -0
  139. package/nitrogen/generated/apple/swift/HybridApplicationSpec_cxx.swift +160 -0
  140. package/nitrogen/generated/apple/swift/HybridGestureRecognizerSpec.swift +67 -0
  141. package/nitrogen/generated/apple/swift/HybridGestureRecognizerSpec_cxx.swift +147 -0
  142. package/nitrogen/generated/apple/swift/HybridLabelSpec.swift +66 -0
  143. package/nitrogen/generated/apple/swift/HybridLabelSpec_cxx.swift +157 -0
  144. package/nitrogen/generated/apple/swift/HybridLongPressGestureRecognizerSpec.swift +70 -0
  145. package/nitrogen/generated/apple/swift/HybridLongPressGestureRecognizerSpec_cxx.swift +193 -0
  146. package/nitrogen/generated/apple/swift/HybridPanGestureRecognizerSpec.swift +69 -0
  147. package/nitrogen/generated/apple/swift/HybridPanGestureRecognizerSpec_cxx.swift +195 -0
  148. package/nitrogen/generated/apple/swift/HybridScreenSpec.swift +67 -0
  149. package/nitrogen/generated/apple/swift/HybridScreenSpec_cxx.swift +146 -0
  150. package/nitrogen/generated/apple/swift/HybridScrollViewContentSpec.swift +66 -0
  151. package/nitrogen/generated/apple/swift/HybridScrollViewContentSpec_cxx.swift +148 -0
  152. package/nitrogen/generated/apple/swift/HybridScrollViewSpec.swift +66 -0
  153. package/nitrogen/generated/apple/swift/HybridScrollViewSpec_cxx.swift +148 -0
  154. package/nitrogen/generated/apple/swift/HybridTapGestureRecognizerSpec.swift +68 -0
  155. package/nitrogen/generated/apple/swift/HybridTapGestureRecognizerSpec_cxx.swift +175 -0
  156. package/nitrogen/generated/apple/swift/HybridViewControllerSpec.swift +68 -0
  157. package/nitrogen/generated/apple/swift/HybridViewControllerSpec_cxx.swift +185 -0
  158. package/nitrogen/generated/apple/swift/HybridViewSpec.swift +89 -0
  159. package/nitrogen/generated/apple/swift/HybridViewSpec_cxx.swift +335 -0
  160. package/nitrogen/generated/apple/swift/HybridWindowSceneSpec.swift +65 -0
  161. package/nitrogen/generated/apple/swift/HybridWindowSceneSpec_cxx.swift +136 -0
  162. package/nitrogen/generated/apple/swift/HybridWindowSpec.swift +65 -0
  163. package/nitrogen/generated/apple/swift/HybridWindowSpec_cxx.swift +156 -0
  164. package/nitrogen/generated/apple/swift/ListenerSubscription.swift +29 -0
  165. package/nitrogen/generated/apple/swift/ModifierKey.swift +64 -0
  166. package/nitrogen/generated/apple/swift/Point.swift +35 -0
  167. package/nitrogen/generated/apple/swift/Point3D.swift +42 -0
  168. package/nitrogen/generated/apple/swift/Promise___ReactNitroRenderer__HybridWindowSpec_cxx.swift +102 -0
  169. package/nitrogen/generated/apple/swift/Promise_void.swift +100 -0
  170. package/nitrogen/generated/apple/swift/ReactNitroRenderer+ForeignTypeMetadata.swift +34 -0
  171. package/nitrogen/generated/apple/swift/Size.swift +35 -0
  172. package/nitrogen/generated/hybrid-classes.json +144 -0
  173. package/nitrogen/generated/shared/c++/ReactNitroRendererCxxModule.cpp +2 -0
  174. package/nitrogen/generated/shared/c++/include/ReactNitroRenderer/ReactNitroRendererCxxModule.hpp +2 -0
  175. package/nitrogen/generated/shared/javascript/Animator.cjs +19 -0
  176. package/nitrogen/generated/shared/javascript/Animator.d.cts +9 -0
  177. package/nitrogen/generated/shared/javascript/Application.cjs +19 -0
  178. package/nitrogen/generated/shared/javascript/Application.d.cts +9 -0
  179. package/nitrogen/generated/shared/javascript/GestureRecognizer.cjs +19 -0
  180. package/nitrogen/generated/shared/javascript/GestureRecognizer.d.cts +9 -0
  181. package/nitrogen/generated/shared/javascript/Label.cjs +19 -0
  182. package/nitrogen/generated/shared/javascript/Label.d.cts +9 -0
  183. package/nitrogen/generated/shared/javascript/LongPressGestureRecognizer.cjs +19 -0
  184. package/nitrogen/generated/shared/javascript/LongPressGestureRecognizer.d.cts +9 -0
  185. package/nitrogen/generated/shared/javascript/PanGestureRecognizer.cjs +19 -0
  186. package/nitrogen/generated/shared/javascript/PanGestureRecognizer.d.cts +9 -0
  187. package/nitrogen/generated/shared/javascript/Screen.cjs +19 -0
  188. package/nitrogen/generated/shared/javascript/Screen.d.cts +9 -0
  189. package/nitrogen/generated/shared/javascript/ScrollView.cjs +19 -0
  190. package/nitrogen/generated/shared/javascript/ScrollView.d.cts +9 -0
  191. package/nitrogen/generated/shared/javascript/ScrollViewContent.cjs +19 -0
  192. package/nitrogen/generated/shared/javascript/ScrollViewContent.d.cts +9 -0
  193. package/nitrogen/generated/shared/javascript/TapGestureRecognizer.cjs +19 -0
  194. package/nitrogen/generated/shared/javascript/TapGestureRecognizer.d.cts +9 -0
  195. package/nitrogen/generated/shared/javascript/View.cjs +19 -0
  196. package/nitrogen/generated/shared/javascript/View.d.cts +9 -0
  197. package/nitrogen/generated/shared/javascript/ViewController.cjs +19 -0
  198. package/nitrogen/generated/shared/javascript/ViewController.d.cts +9 -0
  199. package/nitrogen/generated/shared/javascript/Window.cjs +19 -0
  200. package/nitrogen/generated/shared/javascript/Window.d.cts +9 -0
  201. package/nitrogen/generated/shared/javascript/WindowScene.cjs +19 -0
  202. package/nitrogen/generated/shared/javascript/WindowScene.d.cts +9 -0
  203. package/package.json +42 -4
  204. package/src/NitroRendererHostConfig.ts +396 -0
  205. package/src/PropSetter.ts +29 -0
  206. package/src/StylePropSetters.ts +145 -0
  207. package/src/ViewPropSetters.ts +33 -0
  208. package/src/ViewRegistry.ts +47 -0
  209. package/src/YogaPropSetters.ts +347 -0
  210. package/src/components/ScrollView.tsx +30 -0
  211. package/src/components/ScrollViewContent.tsx +12 -0
  212. package/src/components/Text.tsx +34 -0
  213. package/src/components/View.ts +33 -0
  214. package/src/contexts/RootContext.ts +5 -0
  215. package/src/getViewYogaNode.ts +9 -0
  216. package/src/hooks/useRootContext.ts +11 -0
  217. package/src/hooks/useSafeAreaInsets.ts +36 -0
  218. package/src/hybrids.ts +9 -0
  219. package/src/index.ts +30 -0
  220. package/src/registerApp.ts +22 -0
  221. package/src/renderRoot.ts +44 -0
  222. package/src/specs/Animations/AnimationCurve.ts +6 -0
  223. package/src/specs/Animations/Animator.nitro.ts +16 -0
  224. package/src/specs/Application.nitro.ts +20 -0
  225. package/src/specs/Corner.ts +1 -0
  226. package/src/specs/EdgeInsets.ts +13 -0
  227. package/src/specs/Frame.ts +6 -0
  228. package/src/specs/Gestures/GestureRecognizer.nitro.ts +26 -0
  229. package/src/specs/Gestures/LongPressGestureRecognizer.nitro.ts +26 -0
  230. package/src/specs/Gestures/PanGestureRecognizer.nitro.ts +33 -0
  231. package/src/specs/Gestures/TapGestureRecognizer.nitro.ts +20 -0
  232. package/src/specs/Label.nitro.ts +16 -0
  233. package/src/specs/ListenerSubscription.ts +3 -0
  234. package/src/specs/Screen.nitro.ts +16 -0
  235. package/src/specs/ScrollView.nitro.ts +14 -0
  236. package/src/specs/ScrollViewContent.nitro.ts +14 -0
  237. package/src/specs/Size.ts +4 -0
  238. package/src/specs/View.nitro.ts +112 -0
  239. package/src/specs/ViewController.nitro.ts +29 -0
  240. package/src/specs/Window.nitro.ts +20 -0
  241. package/src/specs/WindowScene.nitro.ts +15 -0
  242. package/src/types/ReactNitroReconcilerHostConfig.ts +44 -0
  243. package/src/types/ReactRoot.ts +5 -0
  244. package/src/types/StrictMap.ts +6 -0
  245. package/src/types/ViewPropsUpdater.ts +30 -0
  246. package/src/types/YogaStyleProps.ts +47 -0
  247. package/src/utils/arePropArraysEqual.ts +18 -0
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// HybridWindowSceneSpec.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 ``HybridWindowSceneSpec``
11
+ public protocol HybridWindowSceneSpec_protocol: HybridWindowSceneSpec_base, HybridObject, WindowScene {
12
+ // Constructor
13
+
14
+
15
+ // Properties
16
+ var windows: [(any HybridWindowSpec)] { get }
17
+
18
+ // Methods
19
+
20
+
21
+ // Static Properties
22
+
23
+
24
+ // Static Methods
25
+
26
+ }
27
+
28
+ public extension HybridWindowSceneSpec_protocol {
29
+ /// Default implementation of ``HybridObject.toString``
30
+ func toString() -> String {
31
+ return "[HybridObject WindowScene]"
32
+ }
33
+ }
34
+
35
+ /// See ``HybridWindowSceneSpec``
36
+ open class HybridWindowSceneSpec_base {
37
+ private weak var cxxWrapper: HybridWindowSceneSpec_cxx? = nil
38
+ public init() throws {
39
+ }
40
+ public final func getCxxWrapper() -> HybridWindowSceneSpec_cxx {
41
+ #if DEBUG
42
+ guard self is any HybridWindowSceneSpec else {
43
+ fatalError("`self` is not a `HybridWindowSceneSpec`! Did you accidentally inherit from `HybridWindowSceneSpec_base` instead of `HybridWindowSceneSpec`?")
44
+ }
45
+ #endif
46
+ if let cxxWrapper = self.cxxWrapper {
47
+ return cxxWrapper
48
+ } else {
49
+ let cxxWrapper = HybridWindowSceneSpec_cxx(self as! any HybridWindowSceneSpec)
50
+ self.cxxWrapper = cxxWrapper
51
+ return cxxWrapper
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * A Swift base-protocol representing the WindowScene HybridObject.
58
+ * Implement this protocol to create Swift-based instances of WindowScene.
59
+ * ```swift
60
+ * class HybridWindowScene : HybridWindowSceneSpec {
61
+ * // ...
62
+ * }
63
+ * ```
64
+ */
65
+ public typealias HybridWindowSceneSpec = HybridWindowSceneSpec_protocol & HybridWindowSceneSpec_base
@@ -0,0 +1,136 @@
1
+ ///
2
+ /// HybridWindowSceneSpec_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 ReactNitroRendererAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridWindowSceneSpec 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 HybridWindowSceneSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::renderer::swift_bridge`)
19
+ * from `ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.renderer.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridWindowSceneSpec`.
26
+ */
27
+ private let __implementation: HybridWindowScene
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__renderer__HybridWindowSceneSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridWindowSceneSpec_cxx` that wraps the given `HybridWindowSceneSpec`.
36
+ */
37
+ public init(_ implementation: any HybridWindowSceneSpec) {
38
+ guard let implementation = implementation as? HybridWindowScene else {
39
+ preconditionFailure("WindowScene selects HybridWindowScene as its Swift implementation. Every instance must inherit HybridWindowScene.")
40
+ }
41
+ self.__implementation = implementation
42
+
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridWindowSceneSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridWindowSceneSpec() -> any HybridWindowSceneSpec {
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 `HybridWindowSceneSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridWindowSceneSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridWindowSceneSpec_cxx {
67
+ return Unmanaged<HybridWindowSceneSpec_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__renderer__HybridWindowSceneSpec_ {
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__renderer__HybridWindowSceneSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__renderer__HybridWindowSceneSpec_(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 HybridWindowSceneSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridWindowSceneSpec_ {
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: HybridWindowSceneSpec_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 getWindows() -> [HybridWindowSpec_cxx] {
131
+ let value = __implementation.windows
132
+ return value.map { $0.getCxxWrapper() }
133
+ }
134
+
135
+ // Methods
136
+ }
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// HybridWindowSpec.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 ``HybridWindowSpec``
11
+ public protocol HybridWindowSpec_protocol: HybridWindowSpec_base, HybridObject, Window {
12
+ // Constructor
13
+ init(scene: (any HybridWindowSceneSpec), rootViewController: (any HybridViewControllerSpec)) throws
14
+
15
+ // Properties
16
+ var screen: (any HybridScreenSpec) { get }
17
+
18
+ // Methods
19
+ func makeKeyAndVisible() throws -> Void
20
+
21
+ // Static Properties
22
+
23
+
24
+ // Static Methods
25
+
26
+ }
27
+
28
+ public extension HybridWindowSpec_protocol {
29
+ /// Default implementation of ``HybridObject.toString``
30
+ func toString() -> String {
31
+ return "[HybridObject Window]"
32
+ }
33
+ }
34
+
35
+ /// See ``HybridWindowSpec``
36
+ open class HybridWindowSpec_base {
37
+ private weak var cxxWrapper: HybridWindowSpec_cxx? = nil
38
+ public init() throws {
39
+ }
40
+ public final func getCxxWrapper() -> HybridWindowSpec_cxx {
41
+ #if DEBUG
42
+ guard self is any HybridWindowSpec else {
43
+ fatalError("`self` is not a `HybridWindowSpec`! Did you accidentally inherit from `HybridWindowSpec_base` instead of `HybridWindowSpec`?")
44
+ }
45
+ #endif
46
+ if let cxxWrapper = self.cxxWrapper {
47
+ return cxxWrapper
48
+ } else {
49
+ let cxxWrapper = HybridWindowSpec_cxx(self as! any HybridWindowSpec)
50
+ self.cxxWrapper = cxxWrapper
51
+ return cxxWrapper
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * A Swift base-protocol representing the Window HybridObject.
58
+ * Implement this protocol to create Swift-based instances of Window.
59
+ * ```swift
60
+ * class HybridWindow : HybridWindowSpec {
61
+ * // ...
62
+ * }
63
+ * ```
64
+ */
65
+ public typealias HybridWindowSpec = HybridWindowSpec_protocol & HybridWindowSpec_base
@@ -0,0 +1,156 @@
1
+ ///
2
+ /// HybridWindowSpec_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 ReactNitroRendererAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridWindowSpec 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 HybridWindowSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::renderer::swift_bridge`)
19
+ * from `ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.renderer.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridWindowSpec`.
26
+ */
27
+ private let __implementation: HybridWindow
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__renderer__HybridWindowSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridWindowSpec_cxx` that wraps the given `HybridWindowSpec`.
36
+ */
37
+ public init(_ implementation: any HybridWindowSpec) {
38
+ guard let implementation = implementation as? HybridWindow else {
39
+ preconditionFailure("Window selects HybridWindow as its Swift implementation. Every instance must inherit HybridWindow.")
40
+ }
41
+ self.__implementation = implementation
42
+
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridWindowSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridWindowSpec() -> any HybridWindowSpec {
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 `HybridWindowSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridWindowSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridWindowSpec_cxx {
67
+ return Unmanaged<HybridWindowSpec_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__renderer__HybridWindowSpec_ {
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__renderer__HybridWindowSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__renderer__HybridWindowSpec_(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 HybridWindowSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridWindowSpec_ {
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: HybridWindowSpec_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 getScreen() -> HybridScreenSpec_cxx {
131
+ let value = __implementation.screen
132
+ return value.getCxxWrapper()
133
+ }
134
+
135
+ // Methods
136
+
137
+ public final func makeKeyAndVisible() -> bridge.Result_void {
138
+ do {
139
+ try __implementation.makeKeyAndVisible()
140
+ return bridge.Result_void.withValue()
141
+ } catch {
142
+ return bridge.Result_void.withError(error.toCpp())
143
+ }
144
+ }
145
+
146
+ // Constructor
147
+
148
+ public class func constructor(scene: HybridWindowSceneSpec_cxx, rootViewController: HybridViewControllerSpec_cxx) -> bridge.Result_void_ {
149
+ do {
150
+ let value = try HybridWindow(scene: scene.getHybridWindowSceneSpec(), rootViewController: rootViewController.getHybridViewControllerSpec())
151
+ return bridge.Result_void_.withValue(value.getCxxWrapper().toUnsafe())
152
+ } catch {
153
+ return bridge.Result_void_.withError(error.toCpp())
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,29 @@
1
+ ///
2
+ /// ListenerSubscription.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 ReactNitroRendererAppleCxx
10
+ internal import CxxStdlib
11
+
12
+ @_expose(Cxx)
13
+ public struct ListenerSubscription: Sendable {
14
+ public let remove: any Callback<(), Void>
15
+
16
+ public init(remove: any Callback<(), Void>) {
17
+ self.remove = remove
18
+ }
19
+
20
+ @_spi(NitroCxx)
21
+ public static func init_cxx(_ remove: UnsafeRawPointer) -> Self {
22
+ return Self(remove: remove.load(as: margelo.nitro.renderer.swift_bridge.Callback_void.self))
23
+ }
24
+
25
+ @_spi(NitroCxx)
26
+ public borrowing func getRemove_cxx(_ __outResult: UnsafeMutableRawPointer) -> Void {
27
+ __outResult.initializeMemory(as: margelo.nitro.renderer.swift_bridge.Callback_void.self, repeating: self.remove.toCpp(), count: 1)
28
+ }
29
+ }
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// ModifierKey.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
+
9
+
10
+ /**
11
+ * Represents the JS union `ModifierKey`.
12
+ */
13
+ @_expose(Cxx)
14
+ public enum ModifierKey: Int32, CaseIterable, Sendable, CustomStringConvertible {
15
+ case `command` = 0
16
+ case `alternate` = 1
17
+ case `control` = 2
18
+ case `shift` = 3
19
+
20
+ public static func fromRawValue(_ value: Int32) -> Self {
21
+ return Self(rawValue: value)!
22
+ }
23
+ }
24
+
25
+ public extension ModifierKey {
26
+ /**
27
+ * Get a ModifierKey for the given String value, or
28
+ * return `nil` if the given value was invalid/unknown.
29
+ */
30
+ init?(fromString string: String) {
31
+ switch string {
32
+ case "command":
33
+ self = .command
34
+ case "alternate":
35
+ self = .alternate
36
+ case "control":
37
+ self = .control
38
+ case "shift":
39
+ self = .shift
40
+ default:
41
+ return nil
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Get the String value this ModifierKey represents.
47
+ */
48
+ var stringValue: String {
49
+ switch self {
50
+ case .command:
51
+ return "command"
52
+ case .alternate:
53
+ return "alternate"
54
+ case .control:
55
+ return "control"
56
+ case .shift:
57
+ return "shift"
58
+ }
59
+ }
60
+
61
+ var description: String {
62
+ return stringValue
63
+ }
64
+ }
@@ -0,0 +1,35 @@
1
+ ///
2
+ /// Point.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
+ internal import NitroModules
9
+ internal import CxxStdlib
10
+
11
+ @_expose(Cxx)
12
+ public struct Point: Equatable, Hashable, Sendable {
13
+ public let x: Double
14
+ public let y: Double
15
+
16
+ public init(x: Double, y: Double) {
17
+ self.x = x
18
+ self.y = y
19
+ }
20
+
21
+ @_spi(NitroCxx)
22
+ public static func init_cxx(_ x: Double, _ y: Double) -> Self {
23
+ return Self(x: x, y: y)
24
+ }
25
+
26
+ @_spi(NitroCxx)
27
+ public borrowing func getX_cxx() -> Double {
28
+ return self.x
29
+ }
30
+
31
+ @_spi(NitroCxx)
32
+ public borrowing func getY_cxx() -> Double {
33
+ return self.y
34
+ }
35
+ }
@@ -0,0 +1,42 @@
1
+ ///
2
+ /// Point3D.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
+ internal import NitroModules
9
+ internal import CxxStdlib
10
+
11
+ @_expose(Cxx)
12
+ public struct Point3D: Equatable, Hashable, Sendable {
13
+ public let x: Double
14
+ public let y: Double
15
+ public let z: Double
16
+
17
+ public init(x: Double, y: Double, z: Double) {
18
+ self.x = x
19
+ self.y = y
20
+ self.z = z
21
+ }
22
+
23
+ @_spi(NitroCxx)
24
+ public static func init_cxx(_ x: Double, _ y: Double, _ z: Double) -> Self {
25
+ return Self(x: x, y: y, z: z)
26
+ }
27
+
28
+ @_spi(NitroCxx)
29
+ public borrowing func getX_cxx() -> Double {
30
+ return self.x
31
+ }
32
+
33
+ @_spi(NitroCxx)
34
+ public borrowing func getY_cxx() -> Double {
35
+ return self.y
36
+ }
37
+
38
+ @_spi(NitroCxx)
39
+ public borrowing func getZ_cxx() -> Double {
40
+ return self.z
41
+ }
42
+ }
@@ -0,0 +1,102 @@
1
+ ///
2
+ /// Promise___ReactNitroRenderer__HybridWindowSpec_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
+ public import Dispatch
11
+ internal import ReactNitroRendererAppleCxx
12
+
13
+ public typealias Promise___ReactNitroRenderer__HybridWindowSpec_cxx = margelo.nitro.renderer.swift_bridge.Promise___ReactNitroRenderer__HybridWindowSpec_cxx
14
+
15
+ extension Promise___ReactNitroRenderer__HybridWindowSpec_cxx {
16
+ public typealias T = (any HybridWindowSpec)
17
+ private typealias bridge = margelo.nitro.renderer.swift_bridge
18
+
19
+ public func __nitroResolve(result: (any HybridWindowSpec)) {
20
+ withUnsafePointer(to: result.getCxxWrapper()) { (pointer: UnsafePointer<HybridWindowSpec_cxx>) -> Void in
21
+ bridge.resolve_Promise___ReactNitroRenderer__HybridWindowSpec_cxx(self, pointer)
22
+ }
23
+ }
24
+ public func __nitroReject(error: any Error) {
25
+ bridge.reject_Promise___ReactNitroRenderer__HybridWindowSpec_cxx(self, error.toCpp())
26
+ }
27
+
28
+ public func __nitroAddOnResolvedListener(_ listener: @escaping @Sendable ((any HybridWindowSpec)) -> Void) {
29
+ bridge.listen_Promise___ReactNitroRenderer__HybridWindowSpec_cxx(self, .init { (value: UnsafeRawPointer!) -> Void in
30
+ listener(value.load(as: HybridWindowSpec_cxx.self).getHybridWindowSpec())
31
+ })
32
+ }
33
+ public func __nitroAddOnRejectedListener(_ listener: @escaping @Sendable (any Error) -> Void) {
34
+ bridge.listenRejected_Promise___ReactNitroRenderer__HybridWindowSpec_cxx(self, .init { (exceptionPtr: std.exception_ptr) -> Void in
35
+ listener(RuntimeError.from(cppError: exceptionPtr))
36
+ })
37
+ }
38
+ }
39
+
40
+ extension Promise<(any HybridWindowSpec)> where Self == Promise___ReactNitroRenderer__HybridWindowSpec_cxx {
41
+ public static func pending() -> Self {
42
+ return margelo.nitro.renderer.swift_bridge.create_Promise___ReactNitroRenderer__HybridWindowSpec_cxx()
43
+ }
44
+
45
+ public static func resolved(with result: (any HybridWindowSpec)) -> Self {
46
+ let promise = Promise___ReactNitroRenderer__HybridWindowSpec_cxx.pending()
47
+ promise.resolve(result: result)
48
+ return promise
49
+ }
50
+ public static func rejected(with error: any Error) -> Self {
51
+ let promise = Promise___ReactNitroRenderer__HybridWindowSpec_cxx.pending()
52
+ promise.reject(error: error)
53
+ return promise
54
+ }
55
+
56
+ public static func `async`(
57
+ _ priority: TaskPriority? = nil,
58
+ _ run: sending @escaping @isolated(any) () async throws -> sending (any HybridWindowSpec)
59
+ ) -> Self {
60
+ let promise = Promise___ReactNitroRenderer__HybridWindowSpec_cxx.pending()
61
+ Task(priority: priority) { () async -> Void in
62
+ do {
63
+ promise.resolve(result: try await run())
64
+ } catch {
65
+ promise.reject(error: error)
66
+ }
67
+ }
68
+ return promise
69
+ }
70
+
71
+ public static func parallel(
72
+ _ queue: DispatchQueue = .global(),
73
+ _ run: @escaping @Sendable () throws -> (any HybridWindowSpec)
74
+ ) -> Self {
75
+ let promise = Promise___ReactNitroRenderer__HybridWindowSpec_cxx.pending()
76
+ queue.async { () -> Void in
77
+ do {
78
+ promise.resolve(result: try run())
79
+ } catch {
80
+ promise.reject(error: error)
81
+ }
82
+ }
83
+ return promise
84
+ }
85
+ }
86
+
87
+ extension Promise<(any HybridWindowSpec)> {
88
+ func toCpp() -> Promise___ReactNitroRenderer__HybridWindowSpec_cxx {
89
+ if let self = self as? Promise___ReactNitroRenderer__HybridWindowSpec_cxx {
90
+ return self
91
+ } else {
92
+ let promise = Promise___ReactNitroRenderer__HybridWindowSpec_cxx.pending()
93
+ self.addOnResolvedListener { (result: (any HybridWindowSpec)) -> Void in
94
+ promise.resolve(result: result)
95
+ }
96
+ self.addOnRejectedListener { (error: any Error) -> Void in
97
+ promise.reject(error: error)
98
+ }
99
+ return promise
100
+ }
101
+ }
102
+ }