11/**
22 * @format
3- * @flow
43 */
54
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-
125const asMock = {
136 __INTERNAL_MOCK_STORAGE__ : { } ,
147
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 ) ;
1810
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+ } ) ,
2614
27- const result = getResult [ 0 ] ? getResult [ 0 ] [ 1 ] : null ;
15+ getItem : jest . fn ( async ( key , callback ) => {
16+ const getResult = await asMock . multiGet ( [ key ] , undefined ) ;
2817
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 ) ,
4027 ) ,
4128
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 ( ) ,
4532
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 ) ,
5037} ;
5138
52- async function _multiSet ( keyValuePairs : KeyValueType , callback : CallbackType ) {
39+ async function _multiSet ( keyValuePairs , callback ) {
5340 keyValuePairs . forEach ( keyValue => {
5441 const key = keyValue [ 0 ] ;
55- const value = keyValue [ 1 ] ;
5642
57- asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = value ;
43+ asMock . __INTERNAL_MOCK_STORAGE__ [ key ] = keyValue [ 1 ] ;
5844 } ) ;
5945 callback && callback ( null ) ;
6046 return null ;
6147}
6248
63- async function _multiGet ( keys : KeysType , callback : ResultCallbackType ) {
49+ async function _multiGet ( keys , callback ) {
6450 const values = keys . map ( key => [
6551 key ,
6652 asMock . __INTERNAL_MOCK_STORAGE__ [ key ] || null ,
@@ -70,7 +56,7 @@ async function _multiGet(keys: KeysType, callback: ResultCallbackType) {
7056 return values ;
7157}
7258
73- async function _multiRemove ( keys : KeysType , callback : CallbackType ) {
59+ async function _multiRemove ( keys , callback ) {
7460 keys . forEach ( key => {
7561 if ( asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ) {
7662 delete asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ;
@@ -81,7 +67,7 @@ async function _multiRemove(keys: KeysType, callback: CallbackType) {
8167 return null ;
8268}
8369
84- async function _clear ( callback : CallbackType ) {
70+ async function _clear ( callback ) {
8571 asMock . __INTERNAL_MOCK_STORAGE__ = { } ;
8672
8773 callback && callback ( null ) ;
@@ -93,19 +79,16 @@ async function _getAllKeys() {
9379 return Object . keys ( asMock . __INTERNAL_MOCK_STORAGE__ ) ;
9480}
9581
96- async function _multiMerge (
97- keyValuePairs : KeyValueType ,
98- callback : CallbackType ,
99- ) {
82+ async function _multiMerge ( keyValuePairs , callback ) {
10083 keyValuePairs . forEach ( keyValue => {
10184 const key = keyValue [ 0 ] ;
10285 const value = JSON . parse ( keyValue [ 1 ] ) ;
10386
10487 const oldValue = JSON . parse ( asMock . __INTERNAL_MOCK_STORAGE__ [ key ] ) ;
10588
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+ ) ;
10992 } ) ;
11093
11194 callback && callback ( null ) ;
@@ -131,4 +114,4 @@ const _deepMergeInto = (oldObject, newObject) => {
131114 return mergedObject ;
132115} ;
133116
134- export default asMock ;
117+ module . exports = asMock ;
0 commit comments