Codemod: Give legacy cxx and ObjC-only NativeModules a getTurboModule: method

Summary:
We're making the getTurboModule: method required for all classes that conform to RCTTurboModule.

Many of our ObjC-only and Cxx NativeModules don't implement this method. This diff implements a getTurboModule: method on all those modules that returns nullptr.

**Question:** Why is it fine to make ObjC-only NativeModules return nullptr from their getTurboModule: method?
- Because they're only accessed from ObjC, and should appear as null on the JavaScript side. Longer term, these NativeModules will also go away.

**Question:** Why is it fine to make Cxx NativeModules return nullptr from getTurboModule: method?
- Because after D27316872, the TurboModuleManager checks if the module is a CxxModule first. If it is, we do an early return, and never call the module's getTurboModule: method.

Changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D27316871

fbshipit-source-id: bc693f2927ab3b0de24e6e9e7699390ec0f7d729
This commit is contained in:
Ramanpreet Nara 2021-04-08 21:14:01 -07:00 коммит произвёл Facebook GitHub Bot
Родитель 6a5e98a84c
Коммит 3f38186b78
10 изменённых файлов: 64 добавлений и 5 удалений

Просмотреть файл

@ -47,6 +47,12 @@ RCT_EXPORT_MODULE()
return ^{};
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTGIFImageDecoderCls() {

Просмотреть файл

@ -196,6 +196,11 @@ RCT_EXPORT_METHOD(addImageFromBase64:(NSString *)base64String
}
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params
{
return std::make_shared<facebook::react::NativeImageStoreIOSSpecJSI>(params);
}
@end
@implementation RCTImageStoreManager (Deprecated)
@ -234,11 +239,6 @@ RCT_EXPORT_METHOD(addImageFromBase64:(NSString *)base64String
});
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params
{
return std::make_shared<facebook::react::NativeImageStoreIOSSpecJSI>(params);
}
@end
@implementation RCTBridge (RCTImageStoreManager)

Просмотреть файл

@ -64,6 +64,11 @@ RCT_EXPORT_MODULE()
return nil;
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTLocalAssetImageLoaderCls(void) {

Просмотреть файл

@ -76,6 +76,12 @@ RCT_EXPORT_MODULE()
[op cancel];
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTDataRequestHandlerCls(void) {

Просмотреть файл

@ -93,6 +93,12 @@ RCT_EXPORT_MODULE()
[op cancel];
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTFileRequestHandlerCls(void) {

Просмотреть файл

@ -174,6 +174,12 @@ didReceiveResponse:(NSURLResponse *)response
[delegate URLRequest:task didCompleteWithError:error];
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTHTTPRequestHandlerCls(void) {

Просмотреть файл

@ -224,6 +224,12 @@ RCT_EXPORT_MODULE()
}
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
Class RCTEventDispatcherCls(void)

Просмотреть файл

@ -559,6 +559,12 @@ RCT_EXPORT_MODULE()
return 20;
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
#endif

Просмотреть файл

@ -278,6 +278,12 @@ RCT_EXPORT_MODULE()
RCTAssert(!self.valid, @"-invalidate must be called before -dealloc");
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
#endif

Просмотреть файл

@ -28,6 +28,12 @@ RCT_EXPORT_MODULE();
return nullptr;
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end
@implementation RCTSampleTurboCxxModule_v2
@ -39,4 +45,10 @@ RCT_EXPORT_MODULE();
return std::make_unique<react::SampleTurboCxxModuleLegacyImpl>();
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
@end