@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.
- package/lib/module/index.js +126 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +19 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.tsx +171 -3
- package/src/types.ts +54 -0
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,129 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
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
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export
|
|
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":"
|
|
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
package/src/index.tsx
CHANGED
|
@@ -1,4 +1,172 @@
|
|
|
1
|
-
import
|
|
1
|
+
import NativeModule from './NativeAsyncStorage';
|
|
2
|
+
import type { AsyncStorageStatic } from './types';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
};
|