@onekeyfe/react-native-async-storage 3.0.74 → 3.0.76
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/lib/module/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import NativeModule from './NativeAsyncStorage';
|
|
4
|
+
import { forwardAsyncStorageWriteIfNeeded } from "./runtimeConfig.js";
|
|
4
5
|
function createAsyncStorage() {
|
|
5
6
|
const getItem = async (key, callback) => {
|
|
6
7
|
try {
|
|
@@ -16,7 +17,9 @@ function createAsyncStorage() {
|
|
|
16
17
|
};
|
|
17
18
|
const setItem = async (key, value, callback) => {
|
|
18
19
|
try {
|
|
19
|
-
await
|
|
20
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiSet', [[[key, value]]]))) {
|
|
21
|
+
await NativeModule.multiSet([[key, value]]);
|
|
22
|
+
}
|
|
20
23
|
callback?.(null);
|
|
21
24
|
} catch (e) {
|
|
22
25
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -26,7 +29,9 @@ function createAsyncStorage() {
|
|
|
26
29
|
};
|
|
27
30
|
const removeItem = async (key, callback) => {
|
|
28
31
|
try {
|
|
29
|
-
await
|
|
32
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiRemove', [[key]]))) {
|
|
33
|
+
await NativeModule.multiRemove([key]);
|
|
34
|
+
}
|
|
30
35
|
callback?.(null);
|
|
31
36
|
} catch (e) {
|
|
32
37
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -36,7 +41,9 @@ function createAsyncStorage() {
|
|
|
36
41
|
};
|
|
37
42
|
const mergeItem = async (key, value, callback) => {
|
|
38
43
|
try {
|
|
39
|
-
await
|
|
44
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiMerge', [[[key, value]]]))) {
|
|
45
|
+
await NativeModule.multiMerge([[key, value]]);
|
|
46
|
+
}
|
|
40
47
|
callback?.(null);
|
|
41
48
|
} catch (e) {
|
|
42
49
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -46,7 +53,9 @@ function createAsyncStorage() {
|
|
|
46
53
|
};
|
|
47
54
|
const clear = async callback => {
|
|
48
55
|
try {
|
|
49
|
-
await
|
|
56
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('clear', []))) {
|
|
57
|
+
await NativeModule.clear();
|
|
58
|
+
}
|
|
50
59
|
callback?.(null);
|
|
51
60
|
} catch (e) {
|
|
52
61
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -82,7 +91,9 @@ function createAsyncStorage() {
|
|
|
82
91
|
const multiSet = async (keyValuePairs, callback) => {
|
|
83
92
|
try {
|
|
84
93
|
const mutablePairs = keyValuePairs.map(([k, v]) => [k, v]);
|
|
85
|
-
await
|
|
94
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiSet', [mutablePairs]))) {
|
|
95
|
+
await NativeModule.multiSet(mutablePairs);
|
|
96
|
+
}
|
|
86
97
|
callback?.(null);
|
|
87
98
|
} catch (e) {
|
|
88
99
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -92,7 +103,10 @@ function createAsyncStorage() {
|
|
|
92
103
|
};
|
|
93
104
|
const multiRemove = async (keys, callback) => {
|
|
94
105
|
try {
|
|
95
|
-
|
|
106
|
+
const mutableKeys = [...keys];
|
|
107
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiRemove', [mutableKeys]))) {
|
|
108
|
+
await NativeModule.multiRemove(mutableKeys);
|
|
109
|
+
}
|
|
96
110
|
callback?.(null);
|
|
97
111
|
} catch (e) {
|
|
98
112
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -102,7 +116,9 @@ function createAsyncStorage() {
|
|
|
102
116
|
};
|
|
103
117
|
const multiMerge = async (keyValuePairs, callback) => {
|
|
104
118
|
try {
|
|
105
|
-
await
|
|
119
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiMerge', [keyValuePairs]))) {
|
|
120
|
+
await NativeModule.multiMerge(keyValuePairs);
|
|
121
|
+
}
|
|
106
122
|
callback?.(null);
|
|
107
123
|
} catch (e) {
|
|
108
124
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -126,4 +142,5 @@ function createAsyncStorage() {
|
|
|
126
142
|
}
|
|
127
143
|
const AsyncStorage = createAsyncStorage();
|
|
128
144
|
export default AsyncStorage;
|
|
145
|
+
export { setAsyncStorageShouldForwardWriteGetter, setAsyncStorageWriteForwarder } from "./runtimeConfig.js";
|
|
129
146
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
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,5 +1,7 @@
|
|
|
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';
|
|
4
5
|
export type { AsyncStorageStatic, Callback, CallbackWithResult, KeyValuePair, MultiCallback, MultiGetCallback, } from './types';
|
|
6
|
+
export { setAsyncStorageShouldForwardWriteGetter, setAsyncStorageWriteForwarder, } from './runtimeConfig';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
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/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import NativeModule from './NativeAsyncStorage';
|
|
2
|
+
import { forwardAsyncStorageWriteIfNeeded } from './runtimeConfig';
|
|
2
3
|
import type { AsyncStorageStatic } from './types';
|
|
3
4
|
|
|
4
5
|
function createAsyncStorage(): AsyncStorageStatic {
|
|
@@ -21,7 +22,11 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
21
22
|
callback
|
|
22
23
|
) => {
|
|
23
24
|
try {
|
|
24
|
-
|
|
25
|
+
if (
|
|
26
|
+
!(await forwardAsyncStorageWriteIfNeeded('multiSet', [[[key, value]]]))
|
|
27
|
+
) {
|
|
28
|
+
await NativeModule.multiSet([[key, value]]);
|
|
29
|
+
}
|
|
25
30
|
callback?.(null);
|
|
26
31
|
} catch (e) {
|
|
27
32
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -35,7 +40,9 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
35
40
|
callback
|
|
36
41
|
) => {
|
|
37
42
|
try {
|
|
38
|
-
await
|
|
43
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('multiRemove', [[key]]))) {
|
|
44
|
+
await NativeModule.multiRemove([key]);
|
|
45
|
+
}
|
|
39
46
|
callback?.(null);
|
|
40
47
|
} catch (e) {
|
|
41
48
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -50,7 +57,13 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
50
57
|
callback
|
|
51
58
|
) => {
|
|
52
59
|
try {
|
|
53
|
-
|
|
60
|
+
if (
|
|
61
|
+
!(await forwardAsyncStorageWriteIfNeeded('multiMerge', [
|
|
62
|
+
[[key, value]],
|
|
63
|
+
]))
|
|
64
|
+
) {
|
|
65
|
+
await NativeModule.multiMerge([[key, value]]);
|
|
66
|
+
}
|
|
54
67
|
callback?.(null);
|
|
55
68
|
} catch (e) {
|
|
56
69
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -61,7 +74,9 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
61
74
|
|
|
62
75
|
const clear: AsyncStorageStatic['clear'] = async (callback) => {
|
|
63
76
|
try {
|
|
64
|
-
await
|
|
77
|
+
if (!(await forwardAsyncStorageWriteIfNeeded('clear', []))) {
|
|
78
|
+
await NativeModule.clear();
|
|
79
|
+
}
|
|
65
80
|
callback?.(null);
|
|
66
81
|
} catch (e) {
|
|
67
82
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -106,7 +121,11 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
106
121
|
const mutablePairs = keyValuePairs.map(
|
|
107
122
|
([k, v]) => [k, v] as [string, string]
|
|
108
123
|
);
|
|
109
|
-
|
|
124
|
+
if (
|
|
125
|
+
!(await forwardAsyncStorageWriteIfNeeded('multiSet', [mutablePairs]))
|
|
126
|
+
) {
|
|
127
|
+
await NativeModule.multiSet(mutablePairs);
|
|
128
|
+
}
|
|
110
129
|
callback?.(null);
|
|
111
130
|
} catch (e) {
|
|
112
131
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -120,7 +139,12 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
120
139
|
callback
|
|
121
140
|
) => {
|
|
122
141
|
try {
|
|
123
|
-
|
|
142
|
+
const mutableKeys = [...keys];
|
|
143
|
+
if (
|
|
144
|
+
!(await forwardAsyncStorageWriteIfNeeded('multiRemove', [mutableKeys]))
|
|
145
|
+
) {
|
|
146
|
+
await NativeModule.multiRemove(mutableKeys);
|
|
147
|
+
}
|
|
124
148
|
callback?.(null);
|
|
125
149
|
} catch (e) {
|
|
126
150
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -134,7 +158,11 @@ function createAsyncStorage(): AsyncStorageStatic {
|
|
|
134
158
|
callback
|
|
135
159
|
) => {
|
|
136
160
|
try {
|
|
137
|
-
|
|
161
|
+
if (
|
|
162
|
+
!(await forwardAsyncStorageWriteIfNeeded('multiMerge', [keyValuePairs]))
|
|
163
|
+
) {
|
|
164
|
+
await NativeModule.multiMerge(keyValuePairs);
|
|
165
|
+
}
|
|
138
166
|
callback?.(null);
|
|
139
167
|
} catch (e) {
|
|
140
168
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
@@ -162,6 +190,13 @@ const AsyncStorage = createAsyncStorage();
|
|
|
162
190
|
|
|
163
191
|
export default AsyncStorage;
|
|
164
192
|
|
|
193
|
+
export type {
|
|
194
|
+
AsyncStorageShouldForwardWriteGetter,
|
|
195
|
+
AsyncStorageWriteArgs,
|
|
196
|
+
AsyncStorageWriteArgsByMethod,
|
|
197
|
+
AsyncStorageWriteForwarder,
|
|
198
|
+
AsyncStorageWriteMethod,
|
|
199
|
+
} from './runtimeConfig';
|
|
165
200
|
export type {
|
|
166
201
|
AsyncStorageStatic,
|
|
167
202
|
Callback,
|
|
@@ -170,3 +205,7 @@ export type {
|
|
|
170
205
|
MultiCallback,
|
|
171
206
|
MultiGetCallback,
|
|
172
207
|
} from './types';
|
|
208
|
+
export {
|
|
209
|
+
setAsyncStorageShouldForwardWriteGetter,
|
|
210
|
+
setAsyncStorageWriteForwarder,
|
|
211
|
+
} from './runtimeConfig';
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
}
|