Skip to content

Commit 2999dcc

Browse files
authored
Merge pull request #68 from fleetbase/dev-v0.3.8
v0.3.8 ~ fix cache version key value for `loadExtensions`
2 parents 8df352f + 327c406 commit 2999dcc

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

addon/utils/load-extensions.js

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import config from 'ember-get-config';
66
*/
77
const CACHE_KEY = 'fleetbase_extensions_list';
88
const 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);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fleetbase/ember-core",
3-
"version": "0.3.7",
3+
"version": "0.3.8",
44
"description": "Provides all the core services, decorators and utilities for building a Fleetbase extension for the Console.",
55
"keywords": [
66
"fleetbase-core",

0 commit comments

Comments
 (0)