1
1
/**
2
2
* @format
3
- * @flow
4
3
*/
5
4
6
- type KeysType = Array < string > ;
7
- type KeyValueType = Array < Array < * >> ;
8
- type CallbackType = ( ( ?Error ) => void ) | void ;
9
- type ItemGetCallbackType = ( ( ?Error , ?string ) => void ) | void ;
10
- type ResultCallbackType = ( ( ?Error , ?KeyValueType ) => void ) | void ;
11
-
12
5
const asMock = {
13
6
__INTERNAL_MOCK_STORAGE__ : { } ,
14
7
15
- setItem : jest . fn < [ string , string , CallbackType ] , Promise < * >> (
16
- async ( key : string , value : string , callback : CallbackType ) => {
17
- const setResult = await asMock . multiSet ( [ [ key , value ] ] , undefined ) ;
8
+ setItem : jest . fn ( async ( key , value , callback ) => {
9
+ const setResult = await asMock . multiSet ( [ [ key , value ] ] , undefined ) ;
18
10
19
- callback && callback ( setResult ) ;
20
- return setResult ;
21
- } ,
22
- ) ,
23
- getItem : jest . fn < [ string , ItemGetCallbackType ] , Promise < * >> (
24
- async ( key : string , callback : ItemGetCallbackType ) => {
25
- const getResult = await asMock . multiGet ( [ key ] , undefined ) ;
11
+ callback && callback ( setResult ) ;
12
+ return setResult ;
13
+ } ) ,
26
14
27
- const result = getResult [ 0 ] ? getResult [ 0 ] [ 1 ] : null ;
15
+ getItem : jest . fn ( async ( key , callback ) => {
16
+ const getResult = await asMock . multiGet ( [ key ] , undefined ) ;
28
17
29
- callback && callback ( null , result ) ;
30
- return result ;
31
- } ,
32
- ) ,
33
- removeItem : jest . fn < [ string , CallbackType ] , Promise < null >> (
34
- ( key : string , callback : CallbackType ) =>
35
- asMock . multiRemove ( [ key ] , callback ) ,
36
- ) ,
37
- mergeItem : jest . fn < [ string , string , CallbackType ] , Promise < * >> (
38
- ( key : string , value : string , callback : CallbackType ) =>
39
- asMock . multiMerge ( [ [ key , value ] ] , callback ) ,
18
+ const result = getResult [ 0 ] ? getResult [ 0 ] [ 1 ] : null ;
19
+
20
+ callback && callback ( null , result ) ;
21
+ return result ;
22
+ } ) ,
23
+
24
+ removeItem : jest . fn ( ( key , callback ) => asMock . multiRemove ( [ key ] , callback ) ) ,
25
+ mergeItem : jest . fn ( ( key , value , callback ) =>
26
+ asMock . multiMerge ( [ [ key , value ] ] , callback ) ,
40
27
) ,
41
28
42
- clear : jest . fn < [ CallbackType ] , Promise < * >> ( _clear ) ,
43
- getAllKeys : jest . fn < [ ] , Promise < string [ ] >> ( _getAllKeys ) ,
44
- flushGetRequests : jest . fn < [ ] , void > ( ) ,
29
+ clear : jest . fn ( _clear ) ,
30
+ getAllKeys : jest . fn ( _getAllKeys ) ,
31
+ flushGetRequests : jest . fn ( ) ,
45
32
46
- multiGet : jest . fn < [ KeysType , ResultCallbackType ] , Promise < * >> ( _multiGet ) ,
47
- multiSet : jest . fn < [ KeyValueType , CallbackType ] , Promise < * >> ( _multiSet ) ,
48
- multiRemove : jest . fn < [ KeysType , CallbackType ] , Promise < * >> ( _multiRemove ) ,
49
- multiMerge : jest . fn < [ KeyValueType , CallbackType ] , Promise < * >> ( _multiMerge ) ,
33
+ multiGet : jest . fn ( _multiGet ) ,
34
+ multiSet : jest . fn ( _multiSet ) ,
35
+ multiRemove : jest . fn ( _multiRemove ) ,
36
+ multiMerge : jest . fn ( _multiMerge ) ,
50
37
} ;
51
38
52
- async function _multiSet ( keyValuePairs : KeyValueType , callback : CallbackType ) {
39
+ async function _multiSet ( keyValuePairs , callback ) {
53
40
keyValuePairs . forEach ( keyValue => {
54
41
const key = keyValue [ 0 ] ;
55
- const value = keyValue [ 1 ] ;
56
42
57
- asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = value ;
43
+ asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = keyValue [ 1 ] ;
58
44
} ) ;
59
45
callback && callback ( null ) ;
60
46
return null ;
61
47
}
62
48
63
- async function _multiGet ( keys : KeysType , callback : ResultCallbackType ) {
49
+ async function _multiGet ( keys , callback ) {
64
50
const values = keys . map ( key => [
65
51
key ,
66
52
asMock . __INTERNAL_MOCK_STORAGE__ [ key ] || null ,
@@ -70,7 +56,7 @@ async function _multiGet(keys: KeysType, callback: ResultCallbackType) {
70
56
return values ;
71
57
}
72
58
73
- async function _multiRemove ( keys : KeysType , callback : CallbackType ) {
59
+ async function _multiRemove ( keys , callback ) {
74
60
keys . forEach ( key => {
75
61
if ( asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ) {
76
62
delete asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ;
@@ -81,7 +67,7 @@ async function _multiRemove(keys: KeysType, callback: CallbackType) {
81
67
return null ;
82
68
}
83
69
84
- async function _clear ( callback : CallbackType ) {
70
+ async function _clear ( callback ) {
85
71
asMock . __INTERNAL_MOCK_STORAGE__ = { } ;
86
72
87
73
callback && callback ( null ) ;
@@ -93,19 +79,16 @@ async function _getAllKeys() {
93
79
return Object . keys ( asMock . __INTERNAL_MOCK_STORAGE__ ) ;
94
80
}
95
81
96
- async function _multiMerge (
97
- keyValuePairs : KeyValueType ,
98
- callback : CallbackType ,
99
- ) {
82
+ async function _multiMerge ( keyValuePairs , callback ) {
100
83
keyValuePairs . forEach ( keyValue => {
101
84
const key = keyValue [ 0 ] ;
102
85
const value = JSON . parse ( keyValue [ 1 ] ) ;
103
86
104
87
const oldValue = JSON . parse ( asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ) ;
105
88
106
- const processedValue = JSON . stringify ( _deepMergeInto ( oldValue , value ) ) ;
107
-
108
- asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = processedValue ;
89
+ asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = JSON . stringify (
90
+ _deepMergeInto ( oldValue , value ) ,
91
+ ) ;
109
92
} ) ;
110
93
111
94
callback && callback ( null ) ;
@@ -131,4 +114,4 @@ const _deepMergeInto = (oldObject, newObject) => {
131
114
return mergedObject ;
132
115
} ;
133
116
134
- export default asMock ;
117
+ module . exports = asMock ;
0 commit comments