diff --git a/.changeset/sad-poets-smoke.md b/.changeset/sad-poets-smoke.md new file mode 100644 index 00000000..8c5c1990 --- /dev/null +++ b/.changeset/sad-poets-smoke.md @@ -0,0 +1,5 @@ +--- +"react-native-node-api": patch +--- + +Moved and simplify Apple host TurboModule diff --git a/packages/host/apple/NodeApiHostModuleProvider.mm b/packages/host/apple/NodeApiHostModuleProvider.mm new file mode 100644 index 00000000..b01c5306 --- /dev/null +++ b/packages/host/apple/NodeApiHostModuleProvider.mm @@ -0,0 +1,21 @@ +#import "CxxNodeApiHostModule.hpp" +#import "WeakNodeApiInjector.hpp" + +#import +@interface NodeApiHost : NSObject + +@end + +@implementation NodeApiHost ++ (void)load { + callstack::nodeapihost::injectIntoWeakNodeApi(); + + facebook::react::registerCxxModuleToGlobalModuleMap( + callstack::nodeapihost::CxxNodeApiHostModule::kModuleName, + [](std::shared_ptr jsInvoker) { + return std::make_shared( + jsInvoker); + }); +} + +@end \ No newline at end of file diff --git a/packages/host/ios/NodeApiHostModuleProvider.mm b/packages/host/ios/NodeApiHostModuleProvider.mm deleted file mode 100644 index d4ecd94f..00000000 --- a/packages/host/ios/NodeApiHostModuleProvider.mm +++ /dev/null @@ -1,44 +0,0 @@ -#import "CxxNodeApiHostModule.hpp" -#import "WeakNodeApiInjector.hpp" - -#define USE_CXX_TURBO_MODULE_UTILS 0 -#if defined(__has_include) -#if __has_include() -#undef USE_CXX_TURBO_MODULE_UTILS -#define USE_CXX_TURBO_MODULE_UTILS 1 -#endif -#endif - -#if USE_CXX_TURBO_MODULE_UTILS -#import -@interface NodeApiHost : NSObject -#else -#import -@interface NodeApiHost : NSObject -#endif // USE_CXX_TURBO_MODULE_UTILS - -@end - -@implementation NodeApiHost -#if USE_CXX_TURBO_MODULE_UTILS -+ (void)load { - callstack::nodeapihost::injectIntoWeakNodeApi(); - - facebook::react::registerCxxModuleToGlobalModuleMap( - callstack::nodeapihost::CxxNodeApiHostModule::kModuleName, - [](std::shared_ptr jsInvoker) { - return std::make_shared( - jsInvoker); - }); -} -#else -RCT_EXPORT_MODULE() - -- (std::shared_ptr)getTurboModule: - (const facebook::react::ObjCTurboModule::InitParams &)params { - return std::make_shared( - params.jsInvoker); -} -#endif // USE_CXX_TURBO_MODULE_UTILS - -@end \ No newline at end of file diff --git a/packages/host/react-native-node-api.podspec b/packages/host/react-native-node-api.podspec index 5066e82d..691dbf19 100644 --- a/packages/host/react-native-node-api.podspec +++ b/packages/host/react-native-node-api.podspec @@ -28,7 +28,7 @@ Pod::Spec.new do |s| s.platforms = { :ios => min_ios_version_supported } s.source = { :git => "https://github.com/callstackincubator/react-native-node-api.git", :tag => "#{s.version}" } - s.source_files = "ios/**/*.{h,m,mm}", "cpp/**/*.{hpp,cpp,c,h}", "weak-node-api/include/*.h", "weak-node-api/*.hpp" + s.source_files = "apple/**/*.{h,m,mm}", "cpp/**/*.{hpp,cpp,c,h}", "weak-node-api/include/*.h", "weak-node-api/*.hpp" s.public_header_files = "weak-node-api/include/*.h" s.vendored_frameworks = "auto-linked/apple/*.xcframework", "weak-node-api/weak-node-api.xcframework"