Skip to content

Commit f91c278

Browse files
committed
Add init & extract storage directory path creation
1 parent 55acf4c commit f91c278

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

ios/RNCAsyncStorage.m

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,23 @@ static void RCTAppendError(NSDictionary *error, NSMutableArray<NSDictionary *> *
6666
return nil;
6767
}
6868

69+
static NSString *RCTCreateStorageDirectoryPath(NSString *storageDir) {
70+
NSString *storageDirectoryPath;
71+
#if TARGET_OS_TV
72+
storageDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
73+
#else
74+
storageDirectoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
75+
#endif
76+
storageDirectoryPath = [storageDirectoryPath stringByAppendingPathComponent:RCTStorageDirectory];
77+
return storageDirectoryPath;
78+
}
79+
6980
static NSString *RCTGetStorageDirectory()
7081
{
7182
static NSString *storageDirectory = nil;
7283
static dispatch_once_t onceToken;
7384
dispatch_once(&onceToken, ^{
74-
#if TARGET_OS_TV
75-
storageDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
76-
#else
77-
storageDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
78-
#endif
79-
storageDirectory = [storageDirectory stringByAppendingPathComponent:RCTStorageDirectory];
85+
storageDirectory = RCTCreateStorageDirectoryPath(RCTStorageDirectory);
8086
});
8187
return storageDirectory;
8288
}
@@ -156,6 +162,12 @@ static dispatch_queue_t RCTGetMethodQueue()
156162
return error ? RCTMakeError(@"Failed to delete storage directory.", error, nil) : nil;
157163
}
158164

165+
static void RCTPerformDirectoryMigrationCheck() {
166+
// NSString *oldRCTStorageDirectory = @"RNCAsyncLocalStorage_V1";
167+
// NSString *storageDir = RCTCreateStorageDirectoryPath(oldRCTStorageDirectory);
168+
// printf("%s%s\n", "TESTING: ", [storageDir UTF8String]);
169+
}
170+
159171
#pragma mark - RNCAsyncStorage
160172

161173
@implementation RNCAsyncStorage
@@ -167,6 +179,19 @@ @implementation RNCAsyncStorage
167179
NSMutableDictionary<NSString *, NSString *> *_manifest;
168180
}
169181

182+
+ (BOOL)requiresMainQueueSetup {
183+
return YES;
184+
}
185+
186+
- (instancetype)init
187+
{
188+
if (!(self = [super init])) {
189+
return nil;
190+
}
191+
RCTPerformDirectoryMigrationCheck();
192+
return self;
193+
}
194+
170195
RCT_EXPORT_MODULE()
171196

172197
- (dispatch_queue_t)methodQueue
@@ -371,7 +396,7 @@ - (NSDictionary *)_writeEntry:(NSArray<NSString *> *)entry changedManifest:(BOOL
371396
}
372397

373398
RCT_EXPORT_METHOD(multiMerge:(NSArray<NSArray<NSString *> *> *)kvPairs
374-
callback:(RCTResponseSenderBlock)callback)
399+
callback:(RCTResponseSenderBlock)callback)
375400
{
376401
NSDictionary *errorOut = [self _ensureSetup];
377402
if (errorOut) {
@@ -456,3 +481,4 @@ - (NSDictionary *)_writeEntry:(NSArray<NSString *> *)entry changedManifest:(BOOL
456481
}
457482

458483
@end
484+

0 commit comments

Comments
 (0)