@onekeyfe/react-native-async-storage 3.0.77 → 3.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/asyncstorage/RNCAsyncStorageModule.kt +0 -4
- package/ios/AsyncStorage.h +0 -3
- package/ios/AsyncStorage.mm +0 -16
- package/lib/module/index.js +7 -35
- package/lib/typescript/src/NativeAsyncStorage.d.ts +0 -1
- package/lib/typescript/src/index.d.ts +0 -2
- package/package.json +1 -1
- package/src/NativeAsyncStorage.ts +0 -1
- package/src/index.tsx +7 -88
- package/lib/module/runtimeConfig.js +0 -34
- package/lib/typescript/src/runtimeConfig.d.ts +0 -14
- package/src/runtimeConfig.ts +0 -76
|
@@ -292,10 +292,6 @@ class RNCAsyncStorageModule(reactContext: ReactApplicationContext) :
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
override fun reloadManifest(promise: Promise) {
|
|
296
|
-
promise.resolve(null)
|
|
297
|
-
}
|
|
298
|
-
|
|
299
295
|
// --- Private helpers (ported from AsyncLocalStorageUtil.java) ---
|
|
300
296
|
|
|
301
297
|
private fun ensureDatabase(): Boolean {
|
package/ios/AsyncStorage.h
CHANGED
package/ios/AsyncStorage.mm
CHANGED
|
@@ -711,20 +711,4 @@ static void RCTStorageDirectoryMigrationCheck(NSString *fromStorageDirectory,
|
|
|
711
711
|
});
|
|
712
712
|
}
|
|
713
713
|
|
|
714
|
-
- (void)reloadManifest:(RCTPromiseResolveBlock)resolve
|
|
715
|
-
reject:(RCTPromiseRejectBlock)reject
|
|
716
|
-
{
|
|
717
|
-
dispatch_async(RCTGetMethodQueue(), ^{
|
|
718
|
-
self->_haveSetup = NO;
|
|
719
|
-
NSDictionary *ensureSetupError = [self _ensureSetup];
|
|
720
|
-
if (ensureSetupError) {
|
|
721
|
-
reject(@"ASYNC_STORAGE_ERROR",
|
|
722
|
-
ensureSetupError[@"message"] ?: @"Storage setup failed",
|
|
723
|
-
nil);
|
|
724
|
-
return;
|
|
725
|
-
}
|
|
726
|
-
resolve(nil);
|
|
727
|
-
});
|
|
728
|
-
}
|
|
729
|
-
|
|
730
714
|
@end
|
package/lib/module/index.js
CHANGED
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import NativeModule from './NativeAsyncStorage';
|
|
4
|
-
import { forwardAsyncStorageWriteIfNeeded } from "./runtimeConfig.js";
|
|
5
|
-
async function forwardWriteAndReloadManifestIfNeeded(method, args) {
|
|
6
|
-
if (!(await forwardAsyncStorageWriteIfNeeded(method, args))) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
await NativeModule.reloadManifest();
|
|
10
|
-
return true;
|
|
11
|
-
}
|
|
12
|
-
async function runLocalWriteWithFreshManifest(write) {
|
|
13
|
-
await NativeModule.reloadManifest();
|
|
14
|
-
await write();
|
|
15
|
-
}
|
|
16
4
|
function createAsyncStorage() {
|
|
17
5
|
const getItem = async (key, callback) => {
|
|
18
6
|
try {
|
|
@@ -28,9 +16,7 @@ function createAsyncStorage() {
|
|
|
28
16
|
};
|
|
29
17
|
const setItem = async (key, value, callback) => {
|
|
30
18
|
try {
|
|
31
|
-
|
|
32
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiSet([[key, value]]));
|
|
33
|
-
}
|
|
19
|
+
await NativeModule.multiSet([[key, value]]);
|
|
34
20
|
callback?.(null);
|
|
35
21
|
} catch (e) {
|
|
36
22
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -40,9 +26,7 @@ function createAsyncStorage() {
|
|
|
40
26
|
};
|
|
41
27
|
const removeItem = async (key, callback) => {
|
|
42
28
|
try {
|
|
43
|
-
|
|
44
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiRemove([key]));
|
|
45
|
-
}
|
|
29
|
+
await NativeModule.multiRemove([key]);
|
|
46
30
|
callback?.(null);
|
|
47
31
|
} catch (e) {
|
|
48
32
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -52,9 +36,7 @@ function createAsyncStorage() {
|
|
|
52
36
|
};
|
|
53
37
|
const mergeItem = async (key, value, callback) => {
|
|
54
38
|
try {
|
|
55
|
-
|
|
56
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiMerge([[key, value]]));
|
|
57
|
-
}
|
|
39
|
+
await NativeModule.multiMerge([[key, value]]);
|
|
58
40
|
callback?.(null);
|
|
59
41
|
} catch (e) {
|
|
60
42
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -64,9 +46,7 @@ function createAsyncStorage() {
|
|
|
64
46
|
};
|
|
65
47
|
const clear = async callback => {
|
|
66
48
|
try {
|
|
67
|
-
|
|
68
|
-
await NativeModule.clear();
|
|
69
|
-
}
|
|
49
|
+
await NativeModule.clear();
|
|
70
50
|
callback?.(null);
|
|
71
51
|
} catch (e) {
|
|
72
52
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -102,9 +82,7 @@ function createAsyncStorage() {
|
|
|
102
82
|
const multiSet = async (keyValuePairs, callback) => {
|
|
103
83
|
try {
|
|
104
84
|
const mutablePairs = keyValuePairs.map(([k, v]) => [k, v]);
|
|
105
|
-
|
|
106
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiSet(mutablePairs));
|
|
107
|
-
}
|
|
85
|
+
await NativeModule.multiSet(mutablePairs);
|
|
108
86
|
callback?.(null);
|
|
109
87
|
} catch (e) {
|
|
110
88
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -114,10 +92,7 @@ function createAsyncStorage() {
|
|
|
114
92
|
};
|
|
115
93
|
const multiRemove = async (keys, callback) => {
|
|
116
94
|
try {
|
|
117
|
-
|
|
118
|
-
if (!(await forwardWriteAndReloadManifestIfNeeded('multiRemove', [mutableKeys]))) {
|
|
119
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiRemove(mutableKeys));
|
|
120
|
-
}
|
|
95
|
+
await NativeModule.multiRemove([...keys]);
|
|
121
96
|
callback?.(null);
|
|
122
97
|
} catch (e) {
|
|
123
98
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -127,9 +102,7 @@ function createAsyncStorage() {
|
|
|
127
102
|
};
|
|
128
103
|
const multiMerge = async (keyValuePairs, callback) => {
|
|
129
104
|
try {
|
|
130
|
-
|
|
131
|
-
await runLocalWriteWithFreshManifest(() => NativeModule.multiMerge(keyValuePairs));
|
|
132
|
-
}
|
|
105
|
+
await NativeModule.multiMerge(keyValuePairs);
|
|
133
106
|
callback?.(null);
|
|
134
107
|
} catch (e) {
|
|
135
108
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -153,5 +126,4 @@ function createAsyncStorage() {
|
|
|
153
126
|
}
|
|
154
127
|
const AsyncStorage = createAsyncStorage();
|
|
155
128
|
export default AsyncStorage;
|
|
156
|
-
export { setAsyncStorageShouldForwardWriteGetter, setAsyncStorageWriteForwarder } from "./runtimeConfig.js";
|
|
157
129
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,7 +6,6 @@ export interface Spec extends TurboModule {
|
|
|
6
6
|
multiMerge(keyValuePairs: [string, string][]): Promise<void>;
|
|
7
7
|
getAllKeys(): Promise<string[]>;
|
|
8
8
|
clear(): Promise<void>;
|
|
9
|
-
reloadManifest(): Promise<void>;
|
|
10
9
|
}
|
|
11
10
|
declare const _default: Spec;
|
|
12
11
|
export default _default;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { AsyncStorageStatic } from './types';
|
|
2
2
|
declare const AsyncStorage: AsyncStorageStatic;
|
|
3
3
|
export default AsyncStorage;
|
|
4
|
-
export type { AsyncStorageShouldForwardWriteGetter, AsyncStorageWriteArgs, AsyncStorageWriteArgsByMethod, AsyncStorageWriteForwarder, AsyncStorageWriteMethod, } from './runtimeConfig';
|
|
5
4
|
export type { AsyncStorageStatic, Callback, CallbackWithResult, KeyValuePair, MultiCallback, MultiGetCallback, } from './types';
|
|
6
|
-
export { setAsyncStorageShouldForwardWriteGetter, setAsyncStorageWriteForwarder, } from './runtimeConfig';
|
|
7
5
|
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -8,7 +8,6 @@ export interface Spec extends TurboModule {
|
|
|
8
8
|
multiMerge(keyValuePairs: [string, string][]): Promise<void>;
|
|
9
9
|
getAllKeys(): Promise<string[]>;
|
|
10
10
|
clear(): Promise<void>;
|
|
11
|
-
reloadManifest(): Promise<void>;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
export default TurboModuleRegistry.getEnforcing<Spec>('RNCAsyncStorage');
|
package/src/index.tsx
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import NativeModule from './NativeAsyncStorage';
|
|
2
|
-
import { forwardAsyncStorageWriteIfNeeded } from './runtimeConfig';
|
|
3
|
-
import type {
|
|
4
|
-
AsyncStorageWriteArgs,
|
|
5
|
-
AsyncStorageWriteMethod,
|
|
6
|
-
} from './runtimeConfig';
|
|
7
2
|
import type { AsyncStorageStatic } from './types';
|
|
8
3
|
|
|
9
|
-
async function forwardWriteAndReloadManifestIfNeeded<
|
|
10
|
-
T extends AsyncStorageWriteMethod
|
|
11
|
-
>(method: T, args: AsyncStorageWriteArgs<T>) {
|
|
12
|
-
if (!(await forwardAsyncStorageWriteIfNeeded(method, args))) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
await NativeModule.reloadManifest();
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async function runLocalWriteWithFreshManifest(write: () => Promise<void>) {
|
|
21
|
-
await NativeModule.reloadManifest();
|
|
22
|
-
await write();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
4
|
function createAsyncStorage(): AsyncStorageStatic {
|
|
26
5
|
const getItem: AsyncStorageStatic['getItem'] = async (key, callback) => {
|
|
27
6
|
try {
|
|
@@ -42,15 +21,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
42
21
|
callback
|
|
43
22
|
) => {
|
|
44
23
|
try {
|
|
45
|
-
|
|
46
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiSet', [
|
|
47
|
-
[[key, value]],
|
|
48
|
-
]))
|
|
49
|
-
) {
|
|
50
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
51
|
-
NativeModule.multiSet([[key, value]])
|
|
52
|
-
);
|
|
53
|
-
}
|
|
24
|
+
await NativeModule.multiSet([[key, value]]);
|
|
54
25
|
callback?.(null);
|
|
55
26
|
} catch (e) {
|
|
56
27
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -64,13 +35,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
64
35
|
callback
|
|
65
36
|
) => {
|
|
66
37
|
try {
|
|
67
|
-
|
|
68
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiRemove', [[key]]))
|
|
69
|
-
) {
|
|
70
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
71
|
-
NativeModule.multiRemove([key])
|
|
72
|
-
);
|
|
73
|
-
}
|
|
38
|
+
await NativeModule.multiRemove([key]);
|
|
74
39
|
callback?.(null);
|
|
75
40
|
} catch (e) {
|
|
76
41
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -85,15 +50,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
85
50
|
callback
|
|
86
51
|
) => {
|
|
87
52
|
try {
|
|
88
|
-
|
|
89
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiMerge', [
|
|
90
|
-
[[key, value]],
|
|
91
|
-
]))
|
|
92
|
-
) {
|
|
93
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
94
|
-
NativeModule.multiMerge([[key, value]])
|
|
95
|
-
);
|
|
96
|
-
}
|
|
53
|
+
await NativeModule.multiMerge([[key, value]]);
|
|
97
54
|
callback?.(null);
|
|
98
55
|
} catch (e) {
|
|
99
56
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -104,9 +61,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
104
61
|
|
|
105
62
|
const clear: AsyncStorageStatic['clear'] = async (callback) => {
|
|
106
63
|
try {
|
|
107
|
-
|
|
108
|
-
await NativeModule.clear();
|
|
109
|
-
}
|
|
64
|
+
await NativeModule.clear();
|
|
110
65
|
callback?.(null);
|
|
111
66
|
} catch (e) {
|
|
112
67
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -151,15 +106,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
151
106
|
const mutablePairs = keyValuePairs.map(
|
|
152
107
|
([k, v]) => [k, v] as [string, string]
|
|
153
108
|
);
|
|
154
|
-
|
|
155
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiSet', [
|
|
156
|
-
mutablePairs,
|
|
157
|
-
]))
|
|
158
|
-
) {
|
|
159
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
160
|
-
NativeModule.multiSet(mutablePairs)
|
|
161
|
-
);
|
|
162
|
-
}
|
|
109
|
+
await NativeModule.multiSet(mutablePairs);
|
|
163
110
|
callback?.(null);
|
|
164
111
|
} catch (e) {
|
|
165
112
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -173,16 +120,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
173
120
|
callback
|
|
174
121
|
) => {
|
|
175
122
|
try {
|
|
176
|
-
|
|
177
|
-
if (
|
|
178
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiRemove', [
|
|
179
|
-
mutableKeys,
|
|
180
|
-
]))
|
|
181
|
-
) {
|
|
182
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
183
|
-
NativeModule.multiRemove(mutableKeys)
|
|
184
|
-
);
|
|
185
|
-
}
|
|
123
|
+
await NativeModule.multiRemove([...keys]);
|
|
186
124
|
callback?.(null);
|
|
187
125
|
} catch (e) {
|
|
188
126
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -196,15 +134,7 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
196
134
|
callback
|
|
197
135
|
) => {
|
|
198
136
|
try {
|
|
199
|
-
|
|
200
|
-
!(await forwardWriteAndReloadManifestIfNeeded('multiMerge', [
|
|
201
|
-
keyValuePairs,
|
|
202
|
-
]))
|
|
203
|
-
) {
|
|
204
|
-
await runLocalWriteWithFreshManifest(() =>
|
|
205
|
-
NativeModule.multiMerge(keyValuePairs)
|
|
206
|
-
);
|
|
207
|
-
}
|
|
137
|
+
await NativeModule.multiMerge(keyValuePairs);
|
|
208
138
|
callback?.(null);
|
|
209
139
|
} catch (e) {
|
|
210
140
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -232,13 +162,6 @@ const AsyncStorage = createAsyncStorage();
|
|
|
232
162
|
|
|
233
163
|
export default AsyncStorage;
|
|
234
164
|
|
|
235
|
-
export type {
|
|
236
|
-
AsyncStorageShouldForwardWriteGetter,
|
|
237
|
-
AsyncStorageWriteArgs,
|
|
238
|
-
AsyncStorageWriteArgsByMethod,
|
|
239
|
-
AsyncStorageWriteForwarder,
|
|
240
|
-
AsyncStorageWriteMethod,
|
|
241
|
-
} from './runtimeConfig';
|
|
242
165
|
export type {
|
|
243
166
|
AsyncStorageStatic,
|
|
244
167
|
Callback,
|
|
@@ -247,7 +170,3 @@ export type {
|
|
|
247
170
|
MultiCallback,
|
|
248
171
|
MultiGetCallback,
|
|
249
172
|
} from './types';
|
|
250
|
-
export {
|
|
251
|
-
setAsyncStorageShouldForwardWriteGetter,
|
|
252
|
-
setAsyncStorageWriteForwarder,
|
|
253
|
-
} from './runtimeConfig';
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const runtimeGlobal = globalThis;
|
|
4
|
-
let shouldForwardWriteGetter = runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter;
|
|
5
|
-
let writeForwarder = runtimeGlobal.__onekeyAsyncStorageWriteForwarder;
|
|
6
|
-
export function setAsyncStorageShouldForwardWriteGetter(getter) {
|
|
7
|
-
shouldForwardWriteGetter = getter;
|
|
8
|
-
runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter = getter;
|
|
9
|
-
}
|
|
10
|
-
export function setAsyncStorageWriteForwarder(forwarder) {
|
|
11
|
-
writeForwarder = forwarder;
|
|
12
|
-
runtimeGlobal.__onekeyAsyncStorageWriteForwarder = forwarder;
|
|
13
|
-
}
|
|
14
|
-
function getShouldForwardWriteGetter() {
|
|
15
|
-
return shouldForwardWriteGetter ?? runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter;
|
|
16
|
-
}
|
|
17
|
-
function getWriteForwarder() {
|
|
18
|
-
return writeForwarder ?? runtimeGlobal.__onekeyAsyncStorageWriteForwarder;
|
|
19
|
-
}
|
|
20
|
-
function shouldForwardWriteToBackground() {
|
|
21
|
-
return getShouldForwardWriteGetter()?.() ?? false;
|
|
22
|
-
}
|
|
23
|
-
export async function forwardAsyncStorageWriteIfNeeded(method, args) {
|
|
24
|
-
if (!shouldForwardWriteToBackground()) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
const forwarder = getWriteForwarder();
|
|
28
|
-
if (!forwarder) {
|
|
29
|
-
throw new Error('AsyncStorage write forwarder is not configured.');
|
|
30
|
-
}
|
|
31
|
-
await forwarder(method, args);
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=runtimeConfig.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type AsyncStorageWriteArgsByMethod = {
|
|
2
|
-
clear: [];
|
|
3
|
-
multiSet: [[string, string][]];
|
|
4
|
-
multiRemove: [string[]];
|
|
5
|
-
multiMerge: [[string, string][]];
|
|
6
|
-
};
|
|
7
|
-
export type AsyncStorageWriteMethod = keyof AsyncStorageWriteArgsByMethod;
|
|
8
|
-
export type AsyncStorageWriteArgs<T extends AsyncStorageWriteMethod = AsyncStorageWriteMethod> = AsyncStorageWriteArgsByMethod[T];
|
|
9
|
-
export type AsyncStorageShouldForwardWriteGetter = () => boolean;
|
|
10
|
-
export type AsyncStorageWriteForwarder = <T extends AsyncStorageWriteMethod>(method: T, args: AsyncStorageWriteArgs<T>) => Promise<void>;
|
|
11
|
-
export declare function setAsyncStorageShouldForwardWriteGetter(getter: AsyncStorageShouldForwardWriteGetter): void;
|
|
12
|
-
export declare function setAsyncStorageWriteForwarder(forwarder: AsyncStorageWriteForwarder): void;
|
|
13
|
-
export declare function forwardAsyncStorageWriteIfNeeded<T extends AsyncStorageWriteMethod>(method: T, args: AsyncStorageWriteArgs<T>): Promise<boolean>;
|
|
14
|
-
//# sourceMappingURL=runtimeConfig.d.ts.map
|
package/src/runtimeConfig.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
export type AsyncStorageWriteArgsByMethod = {
|
|
2
|
-
clear: [];
|
|
3
|
-
multiSet: [[string, string][]];
|
|
4
|
-
multiRemove: [string[]];
|
|
5
|
-
multiMerge: [[string, string][]];
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export type AsyncStorageWriteMethod = keyof AsyncStorageWriteArgsByMethod;
|
|
9
|
-
|
|
10
|
-
export type AsyncStorageWriteArgs<
|
|
11
|
-
T extends AsyncStorageWriteMethod = AsyncStorageWriteMethod
|
|
12
|
-
> = AsyncStorageWriteArgsByMethod[T];
|
|
13
|
-
|
|
14
|
-
export type AsyncStorageShouldForwardWriteGetter = () => boolean;
|
|
15
|
-
|
|
16
|
-
export type AsyncStorageWriteForwarder = <T extends AsyncStorageWriteMethod>(
|
|
17
|
-
method: T,
|
|
18
|
-
args: AsyncStorageWriteArgs<T>
|
|
19
|
-
) => Promise<void>;
|
|
20
|
-
|
|
21
|
-
type AsyncStorageRuntimeGlobal = typeof globalThis & {
|
|
22
|
-
__onekeyAsyncStorageShouldForwardWriteGetter?: AsyncStorageShouldForwardWriteGetter;
|
|
23
|
-
__onekeyAsyncStorageWriteForwarder?: AsyncStorageWriteForwarder;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const runtimeGlobal = globalThis as AsyncStorageRuntimeGlobal;
|
|
27
|
-
|
|
28
|
-
let shouldForwardWriteGetter: AsyncStorageShouldForwardWriteGetter | undefined =
|
|
29
|
-
runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter;
|
|
30
|
-
let writeForwarder: AsyncStorageWriteForwarder | undefined =
|
|
31
|
-
runtimeGlobal.__onekeyAsyncStorageWriteForwarder;
|
|
32
|
-
|
|
33
|
-
export function setAsyncStorageShouldForwardWriteGetter(
|
|
34
|
-
getter: AsyncStorageShouldForwardWriteGetter
|
|
35
|
-
) {
|
|
36
|
-
shouldForwardWriteGetter = getter;
|
|
37
|
-
runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter = getter;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function setAsyncStorageWriteForwarder(
|
|
41
|
-
forwarder: AsyncStorageWriteForwarder
|
|
42
|
-
) {
|
|
43
|
-
writeForwarder = forwarder;
|
|
44
|
-
runtimeGlobal.__onekeyAsyncStorageWriteForwarder = forwarder;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function getShouldForwardWriteGetter() {
|
|
48
|
-
return (
|
|
49
|
-
shouldForwardWriteGetter ??
|
|
50
|
-
runtimeGlobal.__onekeyAsyncStorageShouldForwardWriteGetter
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function getWriteForwarder() {
|
|
55
|
-
return writeForwarder ?? runtimeGlobal.__onekeyAsyncStorageWriteForwarder;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function shouldForwardWriteToBackground() {
|
|
59
|
-
return getShouldForwardWriteGetter()?.() ?? false;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export async function forwardAsyncStorageWriteIfNeeded<
|
|
63
|
-
T extends AsyncStorageWriteMethod
|
|
64
|
-
>(method: T, args: AsyncStorageWriteArgs<T>): Promise<boolean> {
|
|
65
|
-
if (!shouldForwardWriteToBackground()) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const forwarder = getWriteForwarder();
|
|
70
|
-
if (!forwarder) {
|
|
71
|
-
throw new Error('AsyncStorage write forwarder is not configured.');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
await forwarder(method, args);
|
|
75
|
-
return true;
|
|
76
|
-
}
|