From 5a57a538c99b179d45774596df782ede58e40dc9 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Thu, 15 Oct 2020 08:46:34 -0700 Subject: [PATCH] Split NativeAsyncStorage into NativeAsyncLocalStorage and NativeAsyncSQLiteDBStorage Summary: Although the interface for both NativeModules is the same, we'd like to enforce 1 `TurboModuleRegistry.get` call per NativeModule spec file. Therefore this diff splits the one spec into two. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D24325260 fbshipit-source-id: f18718e4235b7b8ccbfc44a7e48571ecf483a36c --- .../FBReactNativeSpec-generated.mm | 77 +++++++++++++++--- .../FBReactNativeSpec/FBReactNativeSpec.h | 35 +++++++- Libraries/Storage/AsyncStorage.js | 5 +- Libraries/Storage/NativeAsyncLocalStorage.js | 43 ++++++++++ ...orage.js => NativeAsyncSQLiteDBStorage.js} | 3 +- React/CoreModules/RCTAsyncLocalStorage.mm | 4 +- ....java => NativeAsyncLocalStorageSpec.java} | 4 +- .../specs/NativeAsyncSQLiteDBStorageSpec.java | 45 +++++++++++ .../specs/jni/FBReactNativeSpec-generated.cpp | 81 ++++++++++++++++--- .../fbreact/specs/jni/FBReactNativeSpec.h | 20 ++++- .../modules/storage/AsyncStorageModule.java | 4 +- 11 files changed, 278 insertions(+), 43 deletions(-) create mode 100644 Libraries/Storage/NativeAsyncLocalStorage.js rename Libraries/Storage/{NativeAsyncStorage.js => NativeAsyncSQLiteDBStorage.js} (94%) rename ReactAndroid/src/main/java/com/facebook/fbreact/specs/{NativeAsyncStorageSpec.java => NativeAsyncLocalStorageSpec.java} (85%) create mode 100644 ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncSQLiteDBStorageSpec.java diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm index fb8a3b1dc40..8fcd18e133b 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm @@ -612,49 +612,100 @@ namespace facebook { namespace facebook { namespace react { - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiGet", @selector(multiGet:callback:), args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiSet", @selector(multiSet:callback:), args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiMerge", @selector(multiMerge:callback:), args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiRemove", @selector(multiRemove:callback:), args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "clear", @selector(clear:), args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "getAllKeys", @selector(getAllKeys:), args, count); } - NativeAsyncStorageSpecJSI::NativeAsyncStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms) + NativeAsyncLocalStorageSpecJSI::NativeAsyncLocalStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms) : ObjCTurboModule(params) { - methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiGet}; + methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiGet}; - methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiSet}; + methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiSet}; - methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiMerge}; + methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiMerge}; - methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiRemove}; + methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiRemove}; - methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncStorageSpecJSI_clear}; + methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncLocalStorageSpecJSI_clear}; - methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncStorageSpecJSI_getAllKeys}; + methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncLocalStorageSpecJSI_getAllKeys}; + + } + } // namespace react +} // namespace facebook + +namespace facebook { + namespace react { + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiGet", @selector(multiGet:callback:), args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiSet", @selector(multiSet:callback:), args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiMerge", @selector(multiMerge:callback:), args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "multiRemove", @selector(multiRemove:callback:), args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "clear", @selector(clear:), args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "getAllKeys", @selector(getAllKeys:), args, count); + } + + NativeAsyncSQLiteDBStorageSpecJSI::NativeAsyncSQLiteDBStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms) + : ObjCTurboModule(params) { + + methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiGet}; + + + methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiSet}; + + + methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiMerge}; + + + methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiRemove}; + + + methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_clear}; + + + methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_getAllKeys}; } } // namespace react diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h index 1ba546bd1cb..5d33c3219e5 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h @@ -425,7 +425,7 @@ namespace facebook { } // namespace react } // namespace facebook -@protocol NativeAsyncStorageSpec +@protocol NativeAsyncLocalStorageSpec - (void)multiGet:(NSArray *)keys callback:(RCTResponseSenderBlock)callback; @@ -442,11 +442,37 @@ namespace facebook { namespace facebook { namespace react { /** - * ObjC++ class for module 'AsyncStorage' + * ObjC++ class for module 'AsyncLocalStorage' */ - class JSI_EXPORT NativeAsyncStorageSpecJSI : public ObjCTurboModule { + class JSI_EXPORT NativeAsyncLocalStorageSpecJSI : public ObjCTurboModule { public: - NativeAsyncStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms); + NativeAsyncLocalStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms); + }; + } // namespace react +} // namespace facebook + +@protocol NativeAsyncSQLiteDBStorageSpec + +- (void)multiGet:(NSArray *)keys + callback:(RCTResponseSenderBlock)callback; +- (void)multiSet:(NSArray *)kvPairs + callback:(RCTResponseSenderBlock)callback; +- (void)multiMerge:(NSArray *)kvPairs + callback:(RCTResponseSenderBlock)callback; +- (void)multiRemove:(NSArray *)keys + callback:(RCTResponseSenderBlock)callback; +- (void)clear:(RCTResponseSenderBlock)callback; +- (void)getAllKeys:(RCTResponseSenderBlock)callback; + +@end +namespace facebook { + namespace react { + /** + * ObjC++ class for module 'AsyncSQLiteDBStorage' + */ + class JSI_EXPORT NativeAsyncSQLiteDBStorageSpecJSI : public ObjCTurboModule { + public: + NativeAsyncSQLiteDBStorageSpecJSI(const ObjCTurboModule::InitParams ¶ms); }; } // namespace react } // namespace facebook @@ -2488,6 +2514,7 @@ inline JS::NativeAppState::Constants::Builder::Builder(Constants i) : _factory(^ }) {} + inline JS::NativeBlobModule::Constants::Builder::Builder(const Input i) : _factory(^{ NSMutableDictionary *d = [NSMutableDictionary new]; auto BLOB_URI_SCHEME = i.BLOB_URI_SCHEME.get(); diff --git a/Libraries/Storage/AsyncStorage.js b/Libraries/Storage/AsyncStorage.js index 67f365a0e03..d1fd9c23f54 100644 --- a/Libraries/Storage/AsyncStorage.js +++ b/Libraries/Storage/AsyncStorage.js @@ -12,11 +12,12 @@ 'use strict'; -import NativeAsyncStorage from './NativeAsyncStorage'; +import NativeAsyncLocalStorage from './NativeAsyncLocalStorage'; +import NativeAsyncSQLiteDBStorage from './NativeAsyncSQLiteDBStorage'; import invariant from 'invariant'; // Use SQLite if available, otherwise file storage. -const RCTAsyncStorage = NativeAsyncStorage; +const RCTAsyncStorage = NativeAsyncSQLiteDBStorage || NativeAsyncLocalStorage; /** * `AsyncStorage` is a simple, unencrypted, asynchronous, persistent, key-value diff --git a/Libraries/Storage/NativeAsyncLocalStorage.js b/Libraries/Storage/NativeAsyncLocalStorage.js new file mode 100644 index 00000000000..834cd97f359 --- /dev/null +++ b/Libraries/Storage/NativeAsyncLocalStorage.js @@ -0,0 +1,43 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict + * @format + */ + +'use strict'; + +import type {TurboModule} from '../TurboModule/RCTExport'; +import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry'; + +export interface Spec extends TurboModule { + +getConstants: () => {||}; + +multiGet: ( + keys: Array, + callback: ( + errors: ?Array<{|message: string|}>, + kvPairs: ?Array>, + ) => void, + ) => void; + +multiSet: ( + kvPairs: Array>, + callback: (errors: ?Array<{|message: string|}>) => void, + ) => void; + +multiMerge: ( + kvPairs: Array>, + callback: (errors: ?Array<{|message: string|}>) => void, + ) => void; + +multiRemove: ( + keys: Array, + callback: (errors: ?Array<{|message: string|}>) => void, + ) => void; + +clear: (callback: (error: {|message: string|}) => void) => void; + +getAllKeys: ( + callback: (error: ?{|message: string|}, allKeys: ?Array) => void, + ) => void; +} + +export default (TurboModuleRegistry.get('AsyncLocalStorage'): ?Spec); diff --git a/Libraries/Storage/NativeAsyncStorage.js b/Libraries/Storage/NativeAsyncSQLiteDBStorage.js similarity index 94% rename from Libraries/Storage/NativeAsyncStorage.js rename to Libraries/Storage/NativeAsyncSQLiteDBStorage.js index 539adfd80dc..6009a98d14a 100644 --- a/Libraries/Storage/NativeAsyncStorage.js +++ b/Libraries/Storage/NativeAsyncSQLiteDBStorage.js @@ -40,5 +40,4 @@ export interface Spec extends TurboModule { ) => void; } -export default (TurboModuleRegistry.get('AsyncSQLiteDBStorage') || - TurboModuleRegistry.get('AsyncLocalStorage'): ?Spec); +export default (TurboModuleRegistry.get('AsyncSQLiteDBStorage'): ?Spec); diff --git a/React/CoreModules/RCTAsyncLocalStorage.mm b/React/CoreModules/RCTAsyncLocalStorage.mm index ecbb05976a0..3276d152013 100644 --- a/React/CoreModules/RCTAsyncLocalStorage.mm +++ b/React/CoreModules/RCTAsyncLocalStorage.mm @@ -162,7 +162,7 @@ static NSDictionary *RCTDeleteStorageDirectory() #pragma mark - RCTAsyncLocalStorage -@interface RCTAsyncLocalStorage () +@interface RCTAsyncLocalStorage () @end @implementation RCTAsyncLocalStorage { @@ -455,7 +455,7 @@ RCT_EXPORT_METHOD(getAllKeys : (RCTResponseSenderBlock)callback) - (std::shared_ptr)getTurboModule: (const facebook::react::ObjCTurboModule::InitParams &)params { - return std::make_shared(params); + return std::make_shared(params); } @end diff --git a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncStorageSpec.java b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncLocalStorageSpec.java similarity index 85% rename from ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncStorageSpec.java rename to ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncLocalStorageSpec.java index 9c61d97d266..d3bad8f090e 100644 --- a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncStorageSpec.java +++ b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncLocalStorageSpec.java @@ -20,8 +20,8 @@ import com.facebook.react.bridge.ReactModuleWithSpec; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.turbomodule.core.interfaces.TurboModule; -public abstract class NativeAsyncStorageSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { - public NativeAsyncStorageSpec(ReactApplicationContext reactContext) { +public abstract class NativeAsyncLocalStorageSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { + public NativeAsyncLocalStorageSpec(ReactApplicationContext reactContext) { super(reactContext); } diff --git a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncSQLiteDBStorageSpec.java b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncSQLiteDBStorageSpec.java new file mode 100644 index 00000000000..8a426c97910 --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAsyncSQLiteDBStorageSpec.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + *

This source code is licensed under the MIT license found in the LICENSE file in the root + * directory of this source tree. + * + *

Generated by an internal genrule from Flow types. + * + * @generated + * @nolint + */ + +package com.facebook.fbreact.specs; + +import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReactModuleWithSpec; +import com.facebook.react.bridge.ReadableArray; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; + +public abstract class NativeAsyncSQLiteDBStorageSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { + public NativeAsyncSQLiteDBStorageSpec(ReactApplicationContext reactContext) { + super(reactContext); + } + + @ReactMethod + public abstract void clear(Callback callback); + + @ReactMethod + public abstract void getAllKeys(Callback callback); + + @ReactMethod + public abstract void multiGet(ReadableArray keys, Callback callback); + + @ReactMethod + public abstract void multiMerge(ReadableArray kvPairs, Callback callback); + + @ReactMethod + public abstract void multiRemove(ReadableArray keys, Callback callback); + + @ReactMethod + public abstract void multiSet(ReadableArray kvPairs, Callback callback); +} diff --git a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec-generated.cpp b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec-generated.cpp index 9cafe9628e5..d10ee81dff2 100644 --- a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec-generated.cpp +++ b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec-generated.cpp @@ -618,50 +618,105 @@ namespace facebook { namespace react { - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiGet", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiSet", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiMerge", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiRemove", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "clear", "(Lcom/facebook/react/bridge/Callback;)V", args, count); } - static facebook::jsi::Value __hostFunction_NativeAsyncStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + static facebook::jsi::Value __hostFunction_NativeAsyncLocalStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "getAllKeys", "(Lcom/facebook/react/bridge/Callback;)V", args, count); } - NativeAsyncStorageSpecJSI::NativeAsyncStorageSpecJSI(const JavaTurboModule::InitParams ¶ms) + NativeAsyncLocalStorageSpecJSI::NativeAsyncLocalStorageSpecJSI(const JavaTurboModule::InitParams ¶ms) : JavaTurboModule(params) { - methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiGet}; + methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiGet}; - methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiSet}; + methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiSet}; - methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiMerge}; + methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiMerge}; - methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncStorageSpecJSI_multiRemove}; + methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncLocalStorageSpecJSI_multiRemove}; - methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncStorageSpecJSI_clear}; + methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncLocalStorageSpecJSI_clear}; - methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncStorageSpecJSI_getAllKeys}; + methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncLocalStorageSpecJSI_getAllKeys}; + + + + } + + } // namespace react +} // namespace facebook +namespace facebook { + namespace react { + + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiGet", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiSet", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiMerge(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiMerge", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiRemove(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "multiRemove", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_clear(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "clear", "(Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + static facebook::jsi::Value __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_getAllKeys(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeJavaMethod(rt, VoidKind, "getAllKeys", "(Lcom/facebook/react/bridge/Callback;)V", args, count); + } + + + NativeAsyncSQLiteDBStorageSpecJSI::NativeAsyncSQLiteDBStorageSpecJSI(const JavaTurboModule::InitParams ¶ms) + : JavaTurboModule(params) { + + methodMap_["multiGet"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiGet}; + + + methodMap_["multiSet"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiSet}; + + + methodMap_["multiMerge"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiMerge}; + + + methodMap_["multiRemove"] = MethodMetadata {2, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_multiRemove}; + + + methodMap_["clear"] = MethodMetadata {1, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_clear}; + + + methodMap_["getAllKeys"] = MethodMetadata {1, __hostFunction_NativeAsyncSQLiteDBStorageSpecJSI_getAllKeys}; diff --git a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec.h b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec.h index b62e71022f8..da6e4101fa7 100644 --- a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec.h +++ b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/jni/FBReactNativeSpec.h @@ -146,12 +146,26 @@ namespace facebook { namespace facebook { namespace react { /** - * C++ class for module 'AsyncStorage' + * C++ class for module 'AsyncLocalStorage' */ - class JSI_EXPORT NativeAsyncStorageSpecJSI : public JavaTurboModule { + class JSI_EXPORT NativeAsyncLocalStorageSpecJSI : public JavaTurboModule { public: - NativeAsyncStorageSpecJSI(const JavaTurboModule::InitParams ¶ms); + NativeAsyncLocalStorageSpecJSI(const JavaTurboModule::InitParams ¶ms); + + }; + } // namespace react +} // namespace facebook + +namespace facebook { + namespace react { + /** + * C++ class for module 'AsyncSQLiteDBStorage' + */ + + class JSI_EXPORT NativeAsyncSQLiteDBStorageSpecJSI : public JavaTurboModule { + public: + NativeAsyncSQLiteDBStorageSpecJSI(const JavaTurboModule::InitParams ¶ms); }; } // namespace react diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java index 2b605a571f9..34890a98ba3 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java @@ -15,7 +15,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteStatement; import android.os.AsyncTask; import com.facebook.common.logging.FLog; -import com.facebook.fbreact.specs.NativeAsyncStorageSpec; +import com.facebook.fbreact.specs.NativeAsyncSQLiteDBStorageSpec; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.GuardedAsyncTask; @@ -32,7 +32,7 @@ import java.util.HashSet; import java.util.concurrent.Executor; @ReactModule(name = AsyncStorageModule.NAME) -public final class AsyncStorageModule extends NativeAsyncStorageSpec +public final class AsyncStorageModule extends NativeAsyncSQLiteDBStorageSpec implements ModuleDataCleaner.Cleanable { public static final String NAME = "AsyncSQLiteDBStorage";