1
1
// CREDITS: This types are based on the original work made by all the people who contributed to @types /react-native
2
2
3
+ interface AsyncStorage {
4
+ /**
5
+ * Fetches key and passes the result to callback, along with an Error if there is any.
6
+ */
7
+ getItem ( key : string , callback ?: ( error ?: Error , result ?: string ) => void ) : Promise < string | null > ;
8
+
9
+ /**
10
+ * Sets value for key and calls callback on completion, along with an Error if there is any
11
+ */
12
+ setItem ( key : string , value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
13
+
14
+ removeItem ( key : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
15
+
16
+ /**
17
+ * Merges existing value with input value, assuming they are stringified json. Returns a Promise object.
18
+ * Not supported by all native implementation
19
+ */
20
+ mergeItem ( key : string , value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
21
+
22
+ /**
23
+ * Erases all AsyncStorage for all clients, libraries, etc. You probably don't want to call this.
24
+ * Use removeItem or multiRemove to clear only your own keys instead.
25
+ */
26
+ clear ( callback ?: ( error ?: Error ) => void ) : Promise < void > ;
27
+
28
+ /**
29
+ * Gets all keys known to the app, for all callers, libraries, etc
30
+ */
31
+ getAllKeys ( callback ?: ( error ?: Error , keys ?: string [ ] ) => void ) : Promise < string [ ] > ;
32
+
33
+ /**
34
+ * multiGet invokes callback with an array of key-value pair arrays that matches the input format of multiSet
35
+ */
36
+ multiGet (
37
+ keys : string [ ] ,
38
+ callback ?: ( errors ?: Error [ ] , result ?: [ string , string | null ] [ ] ) => void
39
+ ) : Promise < [ string , string | null ] [ ] > ;
40
+
41
+ /**
42
+ * multiSet and multiMerge take arrays of key-value array pairs that match the output of multiGet,
43
+ *
44
+ * multiSet([['k1', 'val1'], ['k2', 'val2']], cb);
45
+ */
46
+ multiSet ( keyValuePairs : string [ ] [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
47
+
48
+ /**
49
+ * Delete all the keys in the keys array.
50
+ */
51
+ multiRemove ( keys : string [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
52
+
53
+ /**
54
+ * Merges existing values with input values, assuming they are stringified json.
55
+ * Returns a Promise object.
56
+ *
57
+ * Not supported by all native implementations.
58
+ */
59
+ multiMerge ( keyValuePairs : string [ ] [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
60
+ }
61
+
62
+ type AsyncStorageHook = {
63
+ getItem ( callback ?: ( error ?: Error , result ?: string ) => void ) : Promise < string | null > ;
64
+ setItem ( value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
65
+ mergeItem ( value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
66
+ removeItem ( callback ?: ( error ?: Error ) => void ) : Promise < void > ;
67
+ }
68
+
3
69
declare module '@react-native-async-storage/async-storage' {
4
70
/**
5
71
* AsyncStorage is a simple, unencrypted, asynchronous, persistent, key-value storage
@@ -16,73 +82,13 @@ declare module '@react-native-async-storage/async-storage' {
16
82
*
17
83
* @see https://react-native-async-storage.github.io/async-storage/docs/api
18
84
*/
19
- export interface AsyncStorageStatic {
20
- /**
21
- * Fetches key and passes the result to callback, along with an Error if there is any.
22
- */
23
- getItem ( key : string , callback ?: ( error ?: Error , result ?: string ) => void ) : Promise < string | null > ;
24
-
25
- /**
26
- * Sets value for key and calls callback on completion, along with an Error if there is any
27
- */
28
- setItem ( key : string , value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
29
-
30
- removeItem ( key : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
31
-
32
- /**
33
- * Merges existing value with input value, assuming they are stringified json. Returns a Promise object.
34
- * Not supported by all native implementation
35
- */
36
- mergeItem ( key : string , value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
37
-
38
- /**
39
- * Erases all AsyncStorage for all clients, libraries, etc. You probably don't want to call this.
40
- * Use removeItem or multiRemove to clear only your own keys instead.
41
- */
42
- clear ( callback ?: ( error ?: Error ) => void ) : Promise < void > ;
43
-
44
- /**
45
- * Gets all keys known to the app, for all callers, libraries, etc
46
- */
47
- getAllKeys ( callback ?: ( error ?: Error , keys ?: string [ ] ) => void ) : Promise < string [ ] > ;
48
-
49
- /**
50
- * multiGet invokes callback with an array of key-value pair arrays that matches the input format of multiSet
51
- */
52
- multiGet (
53
- keys : string [ ] ,
54
- callback ?: ( errors ?: Error [ ] , result ?: [ string , string | null ] [ ] ) => void
55
- ) : Promise < [ string , string | null ] [ ] > ;
56
-
57
- /**
58
- * multiSet and multiMerge take arrays of key-value array pairs that match the output of multiGet,
59
- *
60
- * multiSet([['k1', 'val1'], ['k2', 'val2']], cb);
61
- */
62
- multiSet ( keyValuePairs : string [ ] [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
63
-
64
- /**
65
- * Delete all the keys in the keys array.
66
- */
67
- multiRemove ( keys : string [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
68
-
69
- /**
70
- * Merges existing values with input values, assuming they are stringified json.
71
- * Returns a Promise object.
72
- *
73
- * Not supported by all native implementations.
74
- */
75
- multiMerge ( keyValuePairs : string [ ] [ ] , callback ?: ( errors ?: Error [ ] ) => void ) : Promise < void > ;
76
- }
77
-
78
- export function useAsyncStorage ( key : string ) : {
79
- getItem ( callback ?: ( error ?: Error , result ?: string ) => void ) : Promise < string | null > ;
80
- setItem ( value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
81
- mergeItem ( value : string , callback ?: ( error ?: Error ) => void ) : Promise < void > ;
82
- removeItem ( callback ?: ( error ?: Error ) => void ) : Promise < void > ;
83
- }
84
-
85
- const AsyncStorage : AsyncStorageStatic ;
85
+ export function useAsyncStorage ( key : string ) : AsyncStorageHook
86
+ const AsyncStorageLib : AsyncStorage ;
87
+ export default AsyncStorageLib ;
88
+ }
86
89
87
- export default AsyncStorage ;
90
+ declare module '@react-native-async-storage/async-storage/jest/async-storage-mock' {
91
+ export function useAsyncStorage ( key : string ) : AsyncStorageHook
92
+ const AsyncStorageLib : AsyncStorage ;
93
+ export default AsyncStorageLib ;
88
94
}
0 commit comments