From 2b62bd7695e568ff97797f161ef9f75a063eece2 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Tue, 15 Oct 2019 09:12:56 -0700 Subject: [PATCH] Make RCTAsyncLocalStorage TurboModule-compatible Summary: **Note:** This was landed in D17724498 but reverted in D17855088. The revert had nothing to do with this NativeModule. Changelog: [iOS][Added] Make RCTAsyncLocalStorage TurboModule-compatible Reviewed By: PeteTheHeat Differential Revision: D17917841 fbshipit-source-id: 0f9dd5f592180d6512ca560007daa531a4da5b59 --- React/CoreModules/BUCK | 3 +++ React/CoreModules/CoreModulesPlugins.h | 1 + React/CoreModules/CoreModulesPlugins.mm | 1 + .../RCTAsyncLocalStorage.h | 0 .../RCTAsyncLocalStorage.mm} | 21 ++++++++++++++++--- 5 files changed, 23 insertions(+), 3 deletions(-) rename React/{Modules => CoreModules}/RCTAsyncLocalStorage.h (100%) rename React/{Modules/RCTAsyncLocalStorage.m => CoreModules/RCTAsyncLocalStorage.mm} (96%) diff --git a/React/CoreModules/BUCK b/React/CoreModules/BUCK index 2505b6501e2..f01217dc422 100644 --- a/React/CoreModules/BUCK +++ b/React/CoreModules/BUCK @@ -72,6 +72,9 @@ rn_apple_library( ) + react_module_plugin_providers( name = "AlertManager", native_class_func = "RCTAlertManagerCls", + ) + react_module_plugin_providers( + name = "AsyncLocalStorage", + native_class_func = "RCTAsyncLocalStorageCls", ), plugins_header = "FBCoreModulesPlugins.h", preprocessor_flags = OBJC_ARC_PREPROCESSOR_FLAGS + get_debug_preprocessor_flags() + rn_extra_build_flags() + [ diff --git a/React/CoreModules/CoreModulesPlugins.h b/React/CoreModules/CoreModulesPlugins.h index 30b6b8d357d..e1b8558a144 100644 --- a/React/CoreModules/CoreModulesPlugins.h +++ b/React/CoreModules/CoreModulesPlugins.h @@ -40,6 +40,7 @@ Class RCTI18nManagerCls(void) __attribute__((used)); Class RCTSourceCodeCls(void) __attribute__((used)); Class RCTActionSheetManagerCls(void) __attribute__((used)); Class RCTAlertManagerCls(void) __attribute__((used)); +Class RCTAsyncLocalStorageCls(void) __attribute__((used)); #ifdef __cplusplus } diff --git a/React/CoreModules/CoreModulesPlugins.mm b/React/CoreModules/CoreModulesPlugins.mm index 3e58989e36b..61e400db4e2 100644 --- a/React/CoreModules/CoreModulesPlugins.mm +++ b/React/CoreModules/CoreModulesPlugins.mm @@ -29,6 +29,7 @@ Class RCTCoreModulesClassProvider(const char *name) { {"SourceCode", RCTSourceCodeCls}, {"ActionSheetManager", RCTActionSheetManagerCls}, {"AlertManager", RCTAlertManagerCls}, + {"AsyncLocalStorage", RCTAsyncLocalStorageCls}, }; auto p = sCoreModuleClassMap.find(name); diff --git a/React/Modules/RCTAsyncLocalStorage.h b/React/CoreModules/RCTAsyncLocalStorage.h similarity index 100% rename from React/Modules/RCTAsyncLocalStorage.h rename to React/CoreModules/RCTAsyncLocalStorage.h diff --git a/React/Modules/RCTAsyncLocalStorage.m b/React/CoreModules/RCTAsyncLocalStorage.mm similarity index 96% rename from React/Modules/RCTAsyncLocalStorage.m rename to React/CoreModules/RCTAsyncLocalStorage.mm index c77fac403c7..b6a1f19a7ae 100644 --- a/React/Modules/RCTAsyncLocalStorage.m +++ b/React/CoreModules/RCTAsyncLocalStorage.mm @@ -9,12 +9,15 @@ #import +#import #import #import -#import "RCTConvert.h" -#import "RCTLog.h" -#import "RCTUtils.h" +#import +#import +#import + +#import "CoreModulesPlugins.h" static NSString *const RCTStorageDirectory = @"RCTAsyncLocalStorage_V1"; static NSString *const RCTManifestFileName = @"manifest.json"; @@ -158,6 +161,9 @@ static NSDictionary *RCTDeleteStorageDirectory() #pragma mark - RCTAsyncLocalStorage +@interface RCTAsyncLocalStorage() +@end + @implementation RCTAsyncLocalStorage { BOOL _haveSetup; @@ -455,4 +461,13 @@ RCT_EXPORT_METHOD(getAllKeys:(RCTResponseSenderBlock)callback) } } +- (std::shared_ptr)getTurboModuleWithJsInvoker:(std::shared_ptr)jsInvoker +{ + return std::make_shared(self, jsInvoker); +} + @end + +Class RCTAsyncLocalStorageCls(void) { + return RCTAsyncLocalStorage.class; +}