@onekeyfe/react-native-async-storage 3.0.6 → 3.0.7

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.
@@ -1,5 +1,129 @@
1
1
  "use strict";
2
2
 
3
- import NativeAsyncStorage from "./NativeAsyncStorage.js";
4
- export default NativeAsyncStorage;
3
+ import NativeModule from "./NativeAsyncStorage.js";
4
+ function createAsyncStorage() {
5
+ const getItem = async (key, callback) => {
6
+ try {
7
+ const result = await NativeModule.multiGet([key]);
8
+ const value = result?.[0]?.[1] ?? null;
9
+ callback?.(null, value);
10
+ return value;
11
+ } catch (e) {
12
+ const error = e instanceof Error ? e : new Error(String(e));
13
+ callback?.(error);
14
+ throw error;
15
+ }
16
+ };
17
+ const setItem = async (key, value, callback) => {
18
+ try {
19
+ await NativeModule.multiSet([[key, value]]);
20
+ callback?.(null);
21
+ } catch (e) {
22
+ const error = e instanceof Error ? e : new Error(String(e));
23
+ callback?.(error);
24
+ throw error;
25
+ }
26
+ };
27
+ const removeItem = async (key, callback) => {
28
+ try {
29
+ await NativeModule.multiRemove([key]);
30
+ callback?.(null);
31
+ } catch (e) {
32
+ const error = e instanceof Error ? e : new Error(String(e));
33
+ callback?.(error);
34
+ throw error;
35
+ }
36
+ };
37
+ const mergeItem = async (key, value, callback) => {
38
+ try {
39
+ await NativeModule.multiMerge([[key, value]]);
40
+ callback?.(null);
41
+ } catch (e) {
42
+ const error = e instanceof Error ? e : new Error(String(e));
43
+ callback?.(error);
44
+ throw error;
45
+ }
46
+ };
47
+ const clear = async callback => {
48
+ try {
49
+ await NativeModule.clear();
50
+ callback?.(null);
51
+ } catch (e) {
52
+ const error = e instanceof Error ? e : new Error(String(e));
53
+ callback?.(error);
54
+ throw error;
55
+ }
56
+ };
57
+ const getAllKeys = async callback => {
58
+ try {
59
+ const keys = await NativeModule.getAllKeys();
60
+ callback?.(null, keys);
61
+ return keys;
62
+ } catch (e) {
63
+ const error = e instanceof Error ? e : new Error(String(e));
64
+ callback?.(error);
65
+ throw error;
66
+ }
67
+ };
68
+ const flushGetRequests = () => {
69
+ // No-op: legacy batching API, not needed with TurboModules
70
+ };
71
+ const multiGet = async (keys, callback) => {
72
+ try {
73
+ const result = await NativeModule.multiGet([...keys]);
74
+ callback?.(null, result);
75
+ return result;
76
+ } catch (e) {
77
+ const error = e instanceof Error ? e : new Error(String(e));
78
+ callback?.([error]);
79
+ throw error;
80
+ }
81
+ };
82
+ const multiSet = async (keyValuePairs, callback) => {
83
+ try {
84
+ const mutablePairs = keyValuePairs.map(([k, v]) => [k, v]);
85
+ await NativeModule.multiSet(mutablePairs);
86
+ callback?.(null);
87
+ } catch (e) {
88
+ const error = e instanceof Error ? e : new Error(String(e));
89
+ callback?.([error]);
90
+ throw error;
91
+ }
92
+ };
93
+ const multiRemove = async (keys, callback) => {
94
+ try {
95
+ await NativeModule.multiRemove([...keys]);
96
+ callback?.(null);
97
+ } catch (e) {
98
+ const error = e instanceof Error ? e : new Error(String(e));
99
+ callback?.([error]);
100
+ throw error;
101
+ }
102
+ };
103
+ const multiMerge = async (keyValuePairs, callback) => {
104
+ try {
105
+ await NativeModule.multiMerge(keyValuePairs);
106
+ callback?.(null);
107
+ } catch (e) {
108
+ const error = e instanceof Error ? e : new Error(String(e));
109
+ callback?.([error]);
110
+ throw error;
111
+ }
112
+ };
113
+ return {
114
+ getItem,
115
+ setItem,
116
+ removeItem,
117
+ mergeItem,
118
+ clear,
119
+ getAllKeys,
120
+ flushGetRequests,
121
+ multiGet,
122
+ multiSet,
123
+ multiRemove,
124
+ multiMerge
125
+ };
126
+ }
127
+ const AsyncStorage = createAsyncStorage();
128
+ export default AsyncStorage;
5
129
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeAsyncStorage"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,kBAAkB,MAAM,yBAAsB;AAErD,eAAeA,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["NativeModule","createAsyncStorage","getItem","key","callback","result","multiGet","value","e","error","Error","String","setItem","multiSet","removeItem","multiRemove","mergeItem","multiMerge","clear","getAllKeys","keys","flushGetRequests","keyValuePairs","mutablePairs","map","k","v","AsyncStorage"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import NativeAsyncStorage from './NativeAsyncStorage';
2
- export default NativeAsyncStorage;
3
- export type { Spec as AsyncStorageSpec } from './NativeAsyncStorage';
1
+ import type { AsyncStorageStatic } from './types';
2
+ declare const AsyncStorage: AsyncStorageStatic;
3
+ export default AsyncStorage;
4
+ export type { AsyncStorageStatic, Callback, CallbackWithResult, KeyValuePair, MultiCallback, MultiGetCallback, } from './types';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,eAAe,kBAAkB,CAAC;AAClC,YAAY,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA+JlD,QAAA,MAAM,YAAY,oBAAuB,CAAC;AAE1C,eAAe,YAAY,CAAC;AAE5B,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type Callback = (error?: Error | null) => void;
2
+ export type CallbackWithResult<T> = (error?: Error | null, result?: T | null) => void;
3
+ export type KeyValuePair = [string, string | null];
4
+ export type MultiCallback = (errors?: readonly (Error | null)[] | null) => void;
5
+ export type MultiGetCallback = (errors?: readonly (Error | null)[] | null, result?: readonly KeyValuePair[]) => void;
6
+ export type AsyncStorageStatic = {
7
+ getItem: (key: string, callback?: CallbackWithResult<string>) => Promise<string | null>;
8
+ setItem: (key: string, value: string, callback?: Callback) => Promise<void>;
9
+ removeItem: (key: string, callback?: Callback) => Promise<void>;
10
+ mergeItem: (key: string, value: string, callback?: Callback) => Promise<void>;
11
+ clear: (callback?: Callback) => Promise<void>;
12
+ getAllKeys: (callback?: CallbackWithResult<readonly string[]>) => Promise<readonly string[]>;
13
+ flushGetRequests: () => void;
14
+ multiGet: (keys: readonly string[], callback?: MultiGetCallback) => Promise<readonly KeyValuePair[]>;
15
+ multiSet: (keyValuePairs: ReadonlyArray<readonly [string, string]>, callback?: MultiCallback) => Promise<void>;
16
+ multiRemove: (keys: readonly string[], callback?: MultiCallback) => Promise<void>;
17
+ multiMerge: (keyValuePairs: [string, string][], callback?: MultiCallback) => Promise<void>;
18
+ };
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAEtD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAClC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,EACpB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,KACd,IAAI,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,KACtC,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,EACzC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,KAC7B,IAAI,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,CACP,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,QAAQ,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,EAAE,CACV,QAAQ,CAAC,EAAE,kBAAkB,CAAC,SAAS,MAAM,EAAE,CAAC,KAC7C,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAChC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,CACR,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,gBAAgB,KACxB,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,EAAE,CACR,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvD,QAAQ,CAAC,EAAE,aAAa,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CACX,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,aAAa,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,EAAE,CACV,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACjC,QAAQ,CAAC,EAAE,aAAa,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/react-native-async-storage",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "description": "react-native-async-storage",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
package/src/index.tsx CHANGED
@@ -1,4 +1,172 @@
1
- import NativeAsyncStorage from './NativeAsyncStorage';
1
+ import NativeModule from './NativeAsyncStorage';
2
+ import type { AsyncStorageStatic } from './types';
2
3
 
3
- export default NativeAsyncStorage;
4
- export type { Spec as AsyncStorageSpec } from './NativeAsyncStorage';
4
+ function createAsyncStorage(): AsyncStorageStatic {
5
+ const getItem: AsyncStorageStatic['getItem'] = async (key, callback) => {
6
+ try {
7
+ const result = await NativeModule.multiGet([key]);
8
+ const value = result?.[0]?.[1] ?? null;
9
+ callback?.(null, value);
10
+ return value;
11
+ } catch (e) {
12
+ const error = e instanceof Error ? e : new Error(String(e));
13
+ callback?.(error);
14
+ throw error;
15
+ }
16
+ };
17
+
18
+ const setItem: AsyncStorageStatic['setItem'] = async (
19
+ key,
20
+ value,
21
+ callback
22
+ ) => {
23
+ try {
24
+ await NativeModule.multiSet([[key, value]]);
25
+ callback?.(null);
26
+ } catch (e) {
27
+ const error = e instanceof Error ? e : new Error(String(e));
28
+ callback?.(error);
29
+ throw error;
30
+ }
31
+ };
32
+
33
+ const removeItem: AsyncStorageStatic['removeItem'] = async (
34
+ key,
35
+ callback
36
+ ) => {
37
+ try {
38
+ await NativeModule.multiRemove([key]);
39
+ callback?.(null);
40
+ } catch (e) {
41
+ const error = e instanceof Error ? e : new Error(String(e));
42
+ callback?.(error);
43
+ throw error;
44
+ }
45
+ };
46
+
47
+ const mergeItem: AsyncStorageStatic['mergeItem'] = async (
48
+ key,
49
+ value,
50
+ callback
51
+ ) => {
52
+ try {
53
+ await NativeModule.multiMerge([[key, value]]);
54
+ callback?.(null);
55
+ } catch (e) {
56
+ const error = e instanceof Error ? e : new Error(String(e));
57
+ callback?.(error);
58
+ throw error;
59
+ }
60
+ };
61
+
62
+ const clear: AsyncStorageStatic['clear'] = async (callback) => {
63
+ try {
64
+ await NativeModule.clear();
65
+ callback?.(null);
66
+ } catch (e) {
67
+ const error = e instanceof Error ? e : new Error(String(e));
68
+ callback?.(error);
69
+ throw error;
70
+ }
71
+ };
72
+
73
+ const getAllKeys: AsyncStorageStatic['getAllKeys'] = async (callback) => {
74
+ try {
75
+ const keys = await NativeModule.getAllKeys();
76
+ callback?.(null, keys);
77
+ return keys;
78
+ } catch (e) {
79
+ const error = e instanceof Error ? e : new Error(String(e));
80
+ callback?.(error);
81
+ throw error;
82
+ }
83
+ };
84
+
85
+ const flushGetRequests: AsyncStorageStatic['flushGetRequests'] = () => {
86
+ // No-op: legacy batching API, not needed with TurboModules
87
+ };
88
+
89
+ const multiGet: AsyncStorageStatic['multiGet'] = async (keys, callback) => {
90
+ try {
91
+ const result = await NativeModule.multiGet([...keys]);
92
+ callback?.(null, result);
93
+ return result;
94
+ } catch (e) {
95
+ const error = e instanceof Error ? e : new Error(String(e));
96
+ callback?.([error]);
97
+ throw error;
98
+ }
99
+ };
100
+
101
+ const multiSet: AsyncStorageStatic['multiSet'] = async (
102
+ keyValuePairs,
103
+ callback
104
+ ) => {
105
+ try {
106
+ const mutablePairs = keyValuePairs.map(
107
+ ([k, v]) => [k, v] as [string, string]
108
+ );
109
+ await NativeModule.multiSet(mutablePairs);
110
+ callback?.(null);
111
+ } catch (e) {
112
+ const error = e instanceof Error ? e : new Error(String(e));
113
+ callback?.([error]);
114
+ throw error;
115
+ }
116
+ };
117
+
118
+ const multiRemove: AsyncStorageStatic['multiRemove'] = async (
119
+ keys,
120
+ callback
121
+ ) => {
122
+ try {
123
+ await NativeModule.multiRemove([...keys]);
124
+ callback?.(null);
125
+ } catch (e) {
126
+ const error = e instanceof Error ? e : new Error(String(e));
127
+ callback?.([error]);
128
+ throw error;
129
+ }
130
+ };
131
+
132
+ const multiMerge: AsyncStorageStatic['multiMerge'] = async (
133
+ keyValuePairs,
134
+ callback
135
+ ) => {
136
+ try {
137
+ await NativeModule.multiMerge(keyValuePairs);
138
+ callback?.(null);
139
+ } catch (e) {
140
+ const error = e instanceof Error ? e : new Error(String(e));
141
+ callback?.([error]);
142
+ throw error;
143
+ }
144
+ };
145
+
146
+ return {
147
+ getItem,
148
+ setItem,
149
+ removeItem,
150
+ mergeItem,
151
+ clear,
152
+ getAllKeys,
153
+ flushGetRequests,
154
+ multiGet,
155
+ multiSet,
156
+ multiRemove,
157
+ multiMerge,
158
+ };
159
+ }
160
+
161
+ const AsyncStorage = createAsyncStorage();
162
+
163
+ export default AsyncStorage;
164
+
165
+ export type {
166
+ AsyncStorageStatic,
167
+ Callback,
168
+ CallbackWithResult,
169
+ KeyValuePair,
170
+ MultiCallback,
171
+ MultiGetCallback,
172
+ } from './types';
package/src/types.ts ADDED
@@ -0,0 +1,54 @@
1
+ // Types aligned with the original @react-native-async-storage/async-storage
2
+
3
+ export type Callback = (error?: Error | null) => void;
4
+
5
+ export type CallbackWithResult<T> = (
6
+ error?: Error | null,
7
+ result?: T | null
8
+ ) => void;
9
+
10
+ export type KeyValuePair = [string, string | null];
11
+
12
+ export type MultiCallback = (
13
+ errors?: readonly (Error | null)[] | null
14
+ ) => void;
15
+
16
+ export type MultiGetCallback = (
17
+ errors?: readonly (Error | null)[] | null,
18
+ result?: readonly KeyValuePair[]
19
+ ) => void;
20
+
21
+ export type AsyncStorageStatic = {
22
+ getItem: (
23
+ key: string,
24
+ callback?: CallbackWithResult<string>
25
+ ) => Promise<string | null>;
26
+ setItem: (
27
+ key: string,
28
+ value: string,
29
+ callback?: Callback
30
+ ) => Promise<void>;
31
+ removeItem: (key: string, callback?: Callback) => Promise<void>;
32
+ mergeItem: (key: string, value: string, callback?: Callback) => Promise<void>;
33
+ clear: (callback?: Callback) => Promise<void>;
34
+ getAllKeys: (
35
+ callback?: CallbackWithResult<readonly string[]>
36
+ ) => Promise<readonly string[]>;
37
+ flushGetRequests: () => void;
38
+ multiGet: (
39
+ keys: readonly string[],
40
+ callback?: MultiGetCallback
41
+ ) => Promise<readonly KeyValuePair[]>;
42
+ multiSet: (
43
+ keyValuePairs: ReadonlyArray<readonly [string, string]>,
44
+ callback?: MultiCallback
45
+ ) => Promise<void>;
46
+ multiRemove: (
47
+ keys: readonly string[],
48
+ callback?: MultiCallback
49
+ ) => Promise<void>;
50
+ multiMerge: (
51
+ keyValuePairs: [string, string][],
52
+ callback?: MultiCallback
53
+ ) => Promise<void>;
54
+ };