From 577cd24230fcd6a08bcf90ff53c407f8bbad121e Mon Sep 17 00:00:00 2001 From: Eric Rozell Date: Fri, 26 May 2023 10:33:30 -0400 Subject: [PATCH 1/2] Allow consumption of RCTAsyncStorage as TurboModule In react-native-windows, attributed C++ modules can be consumed as either a legacy native module or TurboModule. This change enables registration of RNCAsyncStorage as a TurboModule. --- src/RCTAsyncStorage.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/RCTAsyncStorage.ts b/src/RCTAsyncStorage.ts index a353a137..bd87daed 100644 --- a/src/RCTAsyncStorage.ts +++ b/src/RCTAsyncStorage.ts @@ -2,15 +2,18 @@ import { NativeModules, TurboModuleRegistry } from 'react-native'; import { shouldFallbackToLegacyNativeModule } from './shouldFallbackToLegacyNativeModule'; -let RCTAsyncStorage = - NativeModules['PlatformLocalStorage'] || // Support for external modules, like react-native-windows - NativeModules['RNC_AsyncSQLiteDBStorage'] || - NativeModules['RNCAsyncStorage']; +// TurboModuleRegistry falls back to NativeModules so we don't have to try go +// assign NativeModules' counterparts if TurboModuleRegistry would resolve +// with undefined. +let RCTAsyncStorage = TurboModuleRegistry + ? TurboModuleRegistry.get('PlatformLocalStorage') || // Support for external modules, like react-native-windows + TurboModuleRegistry.get('RNC_AsyncSQLiteDBStorage') || + TurboModuleRegistry.get('RNCAsyncStorage'); + : NativeModules['PlatformLocalStorage'] || // Support for external modules, like react-native-windows + NativeModules['RNC_AsyncSQLiteDBStorage'] || + NativeModules['RNCAsyncStorage']; if (!RCTAsyncStorage && shouldFallbackToLegacyNativeModule()) { - // TurboModuleRegistry falls back to NativeModules so we don't have to try go - // assign NativeModules' counterparts if TurboModuleRegistry would resolve - // with undefined. if (TurboModuleRegistry) { RCTAsyncStorage = TurboModuleRegistry.get('AsyncSQLiteDBStorage') || From ef813bcabc1e98eba7a83bba1abd3023d21ac4df Mon Sep 17 00:00:00 2001 From: Eric Rozell Date: Fri, 26 May 2023 11:00:28 -0400 Subject: [PATCH 2/2] Remove spurious semi-colon --- src/RCTAsyncStorage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RCTAsyncStorage.ts b/src/RCTAsyncStorage.ts index bd87daed..88292a07 100644 --- a/src/RCTAsyncStorage.ts +++ b/src/RCTAsyncStorage.ts @@ -8,7 +8,7 @@ import { shouldFallbackToLegacyNativeModule } from './shouldFallbackToLegacyNati let RCTAsyncStorage = TurboModuleRegistry ? TurboModuleRegistry.get('PlatformLocalStorage') || // Support for external modules, like react-native-windows TurboModuleRegistry.get('RNC_AsyncSQLiteDBStorage') || - TurboModuleRegistry.get('RNCAsyncStorage'); + TurboModuleRegistry.get('RNCAsyncStorage') : NativeModules['PlatformLocalStorage'] || // Support for external modules, like react-native-windows NativeModules['RNC_AsyncSQLiteDBStorage'] || NativeModules['RNCAsyncStorage'];