@@ -6,7 +6,7 @@ import config from 'ember-get-config';
66 */
77const CACHE_KEY = 'fleetbase_extensions_list' ;
88const CACHE_VERSION_KEY = 'fleetbase_extensions_version' ;
9- const CACHE_TTL = 1000 * 60 * 30 ; // 30 mins
9+ const CACHE_TTL = 1000 * 60 * 60 ; // 1 hour
1010
1111/**
1212 * Get cached extensions from localStorage
@@ -22,19 +22,25 @@ function getCachedExtensions() {
2222 return null ;
2323 }
2424
25+ // Application version has changed
26+ if ( cachedVersion !== config . APP . version ) {
27+ debug ( `[loadExtensions] Version mismatch (cached: ${ cachedVersion } , current: ${ config . APP . version } )` ) ;
28+ return null ;
29+ }
30+
2531 const cacheData = JSON . parse ( cached ) ;
2632 const cacheAge = Date . now ( ) - cacheData . timestamp ;
2733
2834 // Check if cache is still valid (within TTL)
2935 if ( cacheAge > CACHE_TTL ) {
30- debug ( '[load-extensions ] Cache expired' ) ;
36+ debug ( '[loadExtensions ] Cache expired' ) ;
3137 return null ;
3238 }
3339
34- debug ( `[load-extensions ] Using cached extensions list (age: ${ Math . round ( cacheAge / 1000 ) } s)` ) ;
40+ debug ( `[loadExtensions ] Using cached extensions list (age: ${ Math . round ( cacheAge / 1000 ) } s)` ) ;
3541 return cacheData . extensions ;
3642 } catch ( e ) {
37- debug ( `[load-extensions ] Failed to read cache: ${ e . message } ` ) ;
43+ debug ( `[loadExtensions ] Failed to read cache: ${ e . message } ` ) ;
3844 return null ;
3945 }
4046}
@@ -51,10 +57,10 @@ function setCachedExtensions(extensions) {
5157 timestamp : Date . now ( ) ,
5258 } ;
5359 localStorage . setItem ( CACHE_KEY , JSON . stringify ( cacheData ) ) ;
54- localStorage . setItem ( CACHE_VERSION_KEY , '1' ) ;
55- debug ( '[load-extensions ] Extensions list cached to localStorage' ) ;
60+ localStorage . setItem ( CACHE_VERSION_KEY , config . APP . version ) ;
61+ debug ( '[loadExtensions ] Extensions list cached to localStorage' ) ;
5662 } catch ( e ) {
57- debug ( `[load-extensions ] Failed to cache extensions: ${ e . message } ` ) ;
63+ debug ( `[loadExtensions ] Failed to cache extensions: ${ e . message } ` ) ;
5864 }
5965}
6066
@@ -67,9 +73,9 @@ export function clearExtensionsCache() {
6773 try {
6874 localStorage . removeItem ( CACHE_KEY ) ;
6975 localStorage . removeItem ( CACHE_VERSION_KEY ) ;
70- debug ( '[load-extensions ] Cache cleared' ) ;
76+ debug ( '[loadExtensions ] Cache cleared' ) ;
7177 } catch ( e ) {
72- debug ( `[load-extensions ] Failed to clear cache: ${ e . message } ` ) ;
78+ debug ( `[loadExtensions ] Failed to clear cache: ${ e . message } ` ) ;
7379 }
7480}
7581
@@ -105,7 +111,7 @@ export default async function loadExtensions() {
105111 . then ( ( resp ) => resp . json ( ) )
106112 . then ( ( extensions ) => {
107113 const endTime = performance . now ( ) ;
108- debug ( `[load-extensions ] Fetched from server in ${ ( endTime - startTime ) . toFixed ( 2 ) } ms` ) ;
114+ debug ( `[loadExtensions ] Fetched from server in ${ ( endTime - startTime ) . toFixed ( 2 ) } ms` ) ;
109115
110116 // Cache the result
111117 setCachedExtensions ( extensions ) ;
0 commit comments