Skip to content

Commit 7b8235a

Browse files
ejmartin504facebook-github-bot
authored andcommittedJan 29, 2019
Expose AsyncLocalStorage get/set methods (#18454)
Summary: Currently, if an app uses AsyncStorage on the JS side, there is no public interface to access stored data from the native side. In our app, written in Swift, I have written a [helper](https://gist.github.com/ejmartin504/d501abe55c28450a0e52ac39aee7b0e6) that pulls out the data. I accomplished this by reverse-engineering the code in RCTAsyncLocalStorage.m. It would have been far easier had this code been exposed to native. I made this change locally and tested out getting the data from Swift code. This worked like a charm: ```swift let storage = RCTAsyncLocalStorage() let cacheKey = "test" storage.methodQueue?.async { self.storage.multiGet([cacheKey]) { values in print(values) } } ``` [IOS ][ENHANCEMENT ][RCTAsyncLocalStorage.h] - Expose AsyncLocalStorage get/set methods to native code. <!-- **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.** CATEGORY [----------] TYPE [ CLI ] [-------------] LOCATION [ DOCS ] [ BREAKING ] [-------------] [ GENERAL ] [ BUGFIX ] [ {Component} ] [ INTERNAL ] [ ENHANCEMENT ] [ {Filename} ] [ IOS ] [ FEATURE ] [ {Directory} ] |-----------| [ ANDROID ] [ MINOR ] [ {Framework} ] - | {Message} | [----------] [-------------] [-------------] |-----------| EXAMPLES: [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see --> Pull Request resolved: #18454 Differential Revision: D13860333 Pulled By: cpojer fbshipit-source-id: b33ee5bf1ec65c8291bfcb76b0d6f0df39376a7e
1 parent 745484c commit 7b8235a

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed
 

‎React/Modules/RCTAsyncLocalStorage.h

+7
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,11 @@
3131
// For clearing data when the bridge may not exist, e.g. when logging out.
3232
+ (void)clearAllData;
3333

34+
// Grab data from the cache. ResponseBlock result array will have an error at position 0, and an array of arrays at position 1.
35+
- (void)multiGet:(NSArray<NSString *> *)keys callback:(RCTResponseSenderBlock)callback;
36+
37+
// Add multiple key value pairs to the cache.
38+
- (void)multiSet:(NSArray<NSArray<NSString *> *> *)kvPairs callback:(RCTResponseSenderBlock)callback;
39+
40+
3441
@end

1 commit comments

Comments
 (1)

dulmandakh commented on Jan 31, 2019

@dulmandakh
Contributor

this commit introduced feature imparity, due to lack of Android support.

Please sign in to comment.