From 3d89597aef9529943f6c321328f7e8037568063a Mon Sep 17 00:00:00 2001 From: camilossantos2809 Date: Tue, 20 Feb 2024 19:44:23 -0300 Subject: [PATCH 1/3] fix: check directory before call delete --- packages/default-storage/ios/RNCAsyncStorage.mm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/default-storage/ios/RNCAsyncStorage.mm b/packages/default-storage/ios/RNCAsyncStorage.mm index a099dba9..80f3208d 100644 --- a/packages/default-storage/ios/RNCAsyncStorage.mm +++ b/packages/default-storage/ios/RNCAsyncStorage.mm @@ -869,8 +869,14 @@ - (BOOL)_passthroughDelegate [_manifest removeAllObjects]; [RCTGetCache() removeAllObjects]; - NSDictionary *error = RCTDeleteStorageDirectory(); - callback(@[RCTNullIfNil(error)]); + + NSFileManager *fileManager = [NSFileManager defaultManager]; + if ([fileManager fileExistsAtPath:RCTGetStorageDirectory()]) { + NSDictionary *error = RCTDeleteStorageDirectory(); + callback(@[RCTNullIfNil(error)]); + } else { + callback(@[[NSNull null]]); + } } // clang-format off From 8908ef016b09c9581e71585bee8c3ac928581146 Mon Sep 17 00:00:00 2001 From: camilossantos2809 Date: Thu, 22 Feb 2024 13:45:12 -0300 Subject: [PATCH 2/3] refactor: capture error code instead of check directory existence --- packages/default-storage/ios/RNCAsyncStorage.mm | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/default-storage/ios/RNCAsyncStorage.mm b/packages/default-storage/ios/RNCAsyncStorage.mm index 80f3208d..a9004c8b 100644 --- a/packages/default-storage/ios/RNCAsyncStorage.mm +++ b/packages/default-storage/ios/RNCAsyncStorage.mm @@ -250,6 +250,9 @@ static dispatch_queue_t RCTGetMethodQueue() NSError *error; [[NSFileManager defaultManager] removeItemAtPath:RCTGetStorageDirectory() error:&error]; RCTHasCreatedStorageDirectory = NO; + if (error.code == NSFileNoSuchFileError) { + return nil; + } return error ? RCTMakeError(@"Failed to delete storage directory.", error, nil) : nil; } @@ -869,14 +872,8 @@ - (BOOL)_passthroughDelegate [_manifest removeAllObjects]; [RCTGetCache() removeAllObjects]; - - NSFileManager *fileManager = [NSFileManager defaultManager]; - if ([fileManager fileExistsAtPath:RCTGetStorageDirectory()]) { - NSDictionary *error = RCTDeleteStorageDirectory(); - callback(@[RCTNullIfNil(error)]); - } else { - callback(@[[NSNull null]]); - } + NSDictionary *error = RCTDeleteStorageDirectory(); + callback(@[RCTNullIfNil(error)]); } // clang-format off From 28828e9ef221ed69a4f526da0bc825752b7774f0 Mon Sep 17 00:00:00 2001 From: Camilo Santos Date: Fri, 23 Feb 2024 08:48:25 -0300 Subject: [PATCH 3/3] refactor: more cleanups Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com> --- packages/default-storage/ios/RNCAsyncStorage.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/default-storage/ios/RNCAsyncStorage.mm b/packages/default-storage/ios/RNCAsyncStorage.mm index a9004c8b..6b81187b 100644 --- a/packages/default-storage/ios/RNCAsyncStorage.mm +++ b/packages/default-storage/ios/RNCAsyncStorage.mm @@ -250,10 +250,10 @@ static dispatch_queue_t RCTGetMethodQueue() NSError *error; [[NSFileManager defaultManager] removeItemAtPath:RCTGetStorageDirectory() error:&error]; RCTHasCreatedStorageDirectory = NO; - if (error.code == NSFileNoSuchFileError) { - return nil; + if (error && error.code != NSFileNoSuchFileError) { + return RCTMakeError(@"Failed to delete storage directory.", error, nil); } - return error ? RCTMakeError(@"Failed to delete storage directory.", error, nil) : nil; + return nil; } static NSDate *RCTManifestModificationDate(NSString *manifestFilePath)