Skip to content

Commit ef5b932

Browse files
committed
integrate apple again
1 parent 5b3a226 commit ef5b932

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

packages/async-storage/apple/storage/PersistentStorage.swift

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ public class PersistentStorage: NSObject {
1010
private let db: SharedStorage
1111

1212
init(databaseName: String) {
13-
db = SharedStorage.companion.create(context: PlatformContext.Instance(), databaseName: databaseName)
13+
db = SharedStorage(context: PlatformContext.Instance(), databaseName: databaseName)
1414
}
1515

1616
@objc
1717
public func get(
1818
keys: [String],
1919
resolver: @escaping RCTPromiseResolveBlock,
20-
rejecter _: @escaping RCTPromiseRejectBlock
20+
rejecter: @escaping RCTPromiseRejectBlock
2121
) {
22-
Task {
22+
runWithReject(rejecter) {
2323
let result = try await self.db.getValues(keys: keys)
2424
resolver(result.map { $0.toRNValue() })
2525
}
@@ -29,9 +29,9 @@ public class PersistentStorage: NSObject {
2929
public func set(
3030
values: [[String: String]],
3131
resolver: @escaping RCTPromiseResolveBlock,
32-
rejecter _: @escaping RCTPromiseRejectBlock
32+
rejecter: @escaping RCTPromiseRejectBlock
3333
) {
34-
Task {
34+
runWithReject(rejecter) {
3535
let entries = values.map { entry in Entry.fromRNValue(rnValue: entry) }
3636
let result = try await self.db.setValues(entries: entries)
3737
resolver(result.map { entry in entry.toRNValue() })
@@ -42,9 +42,9 @@ public class PersistentStorage: NSObject {
4242
public func remove(
4343
keys: [String],
4444
resolver: @escaping RCTPromiseResolveBlock,
45-
rejecter _: @escaping RCTPromiseRejectBlock
45+
rejecter: @escaping RCTPromiseRejectBlock
4646
) {
47-
Task {
47+
runWithReject(rejecter) {
4848
try await self.db.removeValues(keys: keys)
4949
resolver(nil)
5050
}
@@ -53,9 +53,9 @@ public class PersistentStorage: NSObject {
5353
@objc
5454
public func allKeys(
5555
resolver: @escaping RCTPromiseResolveBlock,
56-
rejecter _: @escaping RCTPromiseRejectBlock
56+
rejecter: @escaping RCTPromiseRejectBlock
5757
) {
58-
Task {
58+
runWithReject(rejecter) {
5959
let keys = try await self.db.getKeys()
6060
resolver(keys)
6161
}
@@ -64,9 +64,9 @@ public class PersistentStorage: NSObject {
6464
@objc
6565
public func clear(
6666
resolver: @escaping RCTPromiseResolveBlock,
67-
rejecter _: @escaping RCTPromiseRejectBlock
67+
rejecter: @escaping RCTPromiseRejectBlock
6868
) {
69-
Task {
69+
runWithReject(rejecter) {
7070
try await self.db.clear()
7171
resolver(nil)
7272
}
@@ -86,3 +86,16 @@ extension Entry {
8686
return Entry(key: key, value: value)
8787
}
8888
}
89+
90+
func runWithReject(_ reject: @escaping RCTPromiseRejectBlock, block: @escaping () async throws -> Void) {
91+
Task {
92+
do {
93+
try await block()
94+
} catch {
95+
if error is CancellationError {
96+
throw error
97+
}
98+
reject("AsyncStorageError", error.localizedDescription, error)
99+
}
100+
}
101+
}

0 commit comments

Comments
 (0)