From 9f137980a3bd750bb6b537022c1613870e0c06ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Chmiela?= Date: Wed, 12 Aug 2020 19:32:02 +0200 Subject: [PATCH] Add support for enabled TurboModules in Expo --- src/RCTAsyncStorage.expo.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/RCTAsyncStorage.expo.js b/src/RCTAsyncStorage.expo.js index 3ce3183f..607eecc1 100644 --- a/src/RCTAsyncStorage.expo.js +++ b/src/RCTAsyncStorage.expo.js @@ -7,7 +7,18 @@ * will likely not be valid anymore, and the package will need to be included in the Expo SDK * to continue to work. */ -const {NativeModules} = require('react-native'); -const RCTAsyncStorage = NativeModules.AsyncSQLiteDBStorage || NativeModules.AsyncLocalStorage; +const {NativeModules, TurboModuleRegistry} = require('react-native'); -export default RCTAsyncStorage; \ No newline at end of file +let RCTAsyncStorage; + +// 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") || TurboModuleRegistry.get("AsyncLocalStorage"); +} else { + RCTAsyncStorage = NativeModules.AsyncSQLiteDBStorage || NativeModules.AsyncLocalStorage; +} + +export default RCTAsyncStorage;