@@ -22,29 +22,28 @@ const fetchPermissions = (userToken, app = '') => {
22
22
} ;
23
23
24
24
export const createFetchPermissionsWatcher = ( chromeInstance ) => {
25
- let currentCall = undefined ;
25
+ let currentCall = { } ;
26
26
return async ( userToken , app = '' , bypassCache = false ) => {
27
27
if ( insights . chrome . getBundle ( ) === 'openshift' ) {
28
28
return Promise . resolve ( [ ] ) ;
29
29
}
30
30
if ( bypassCache ) {
31
- return fetchPermissions ( userToken , app ) . then ( data => {
32
- chromeInstance . cache . setItem ( 'permissions' , undefined ) ;
33
- return data ;
34
- } ) ;
31
+ const data = await fetchPermissions ( userToken , app ) ;
32
+ chromeInstance . cache . setItem ( 'permissions' , undefined ) ;
33
+ return data ;
35
34
}
36
35
let permissions ;
37
36
permissions = await chromeInstance . cache . getItem ( 'permissions' ) ;
38
- if ( permissions ) {
39
- return permissions ;
37
+ if ( permissions ?. [ app ] ) {
38
+ return permissions ?. [ app ] ;
40
39
}
41
- if ( typeof currentCall === 'undefined' ) {
42
- currentCall = fetchPermissions ( userToken , app ) . then ( ( data ) => {
43
- currentCall = undefined ;
44
- chromeInstance . cache . setItem ( ' permissions' , data ) ;
45
- return data ;
40
+ if ( typeof currentCall ?. [ app ] === 'undefined' ) {
41
+ currentCall [ app ] = await fetchPermissions ( userToken , app ) ;
42
+ chromeInstance . cache . setItem ( 'permissions' , {
43
+ ... permissions || { } ,
44
+ [ app ] : currentCall [ app ]
46
45
} ) ;
47
46
}
48
- return currentCall ;
47
+ return currentCall ?. [ app ] ;
49
48
} ;
50
49
} ;
0 commit comments