diff --git a/packages/fuels/src/cli/utils/fuelsVersionCache.ts b/packages/fuels/src/cli/utils/fuelsVersionCache.ts index 8c13df9b52..c69fa33680 100644 --- a/packages/fuels/src/cli/utils/fuelsVersionCache.ts +++ b/packages/fuels/src/cli/utils/fuelsVersionCache.ts @@ -1,28 +1,22 @@ import fs from 'fs'; import path from 'path'; -export const FUELS_VERSION_CACHE_FILE = path.join(__dirname, '.fuels-cache.json'); +export const FUELS_VERSION_CACHE_FILE = path.join(__dirname, 'FUELS_VERSION'); -export type FuelsVersionCache = { - version: string; - timestamp: number; -}; +export type FuelsVersionCache = string; export const saveToCache = (cache: FuelsVersionCache) => { - fs.writeFileSync(FUELS_VERSION_CACHE_FILE, JSON.stringify(cache), 'utf-8'); + fs.writeFileSync(FUELS_VERSION_CACHE_FILE, cache, 'utf-8'); }; export const FUELS_VERSION_CACHE_TTL = 6 * 60 * 60 * 1000; // 6 hours in milliseconds export const checkAndLoadCache = (): FuelsVersionCache | null => { if (fs.existsSync(FUELS_VERSION_CACHE_FILE)) { - const savedCache = JSON.parse(fs.readFileSync(FUELS_VERSION_CACHE_FILE, 'utf-8')); - if ( - savedCache && - savedCache.data && - Date.now() - savedCache.timestamp < FUELS_VERSION_CACHE_TTL - ) { - return savedCache.data.version; + const cachedVersion = fs.readFileSync(FUELS_VERSION_CACHE_FILE, 'utf-8'); + const { mtimeMs: cacheTimestamp } = fs.statSync(FUELS_VERSION_CACHE_FILE); + if (cachedVersion && Date.now() - cacheTimestamp < FUELS_VERSION_CACHE_TTL) { + return cachedVersion; } } return null; diff --git a/packages/fuels/src/cli/utils/getLatestFuelsVersion.test.ts b/packages/fuels/src/cli/utils/getLatestFuelsVersion.test.ts index 1d2375d328..3e05847a0a 100644 --- a/packages/fuels/src/cli/utils/getLatestFuelsVersion.test.ts +++ b/packages/fuels/src/cli/utils/getLatestFuelsVersion.test.ts @@ -23,11 +23,8 @@ describe('getLatestFuelsVersion', () => { }); it('should return cached version if it exists', async () => { - const cache = { - version: '1.0.0', - timestamp: Date.now(), - }; - vi.spyOn(cacheMod, 'checkAndLoadCache').mockReturnValue(cache); + const cachedVersion = '1.0.0'; + vi.spyOn(cacheMod, 'checkAndLoadCache').mockReturnValue(cachedVersion); const result = await getLatestFuelsVersion(); expect(result).toEqual('1.0.0'); }); @@ -40,9 +37,6 @@ describe('getLatestFuelsVersion', () => { const version = await getLatestFuelsVersion(); expect(fetchSpy).toHaveBeenCalled(); expect(version).toEqual('1.0.0'); - expect(saveCacheSpy).toHaveBeenCalledWith({ - version: '1.0.0', - timestamp: expect.any(Number), - }); + expect(saveCacheSpy).toHaveBeenCalledWith('1.0.0'); }); }); diff --git a/packages/fuels/src/cli/utils/getLatestFuelsVersion.ts b/packages/fuels/src/cli/utils/getLatestFuelsVersion.ts index 50f408c0cf..9082eccdc2 100644 --- a/packages/fuels/src/cli/utils/getLatestFuelsVersion.ts +++ b/packages/fuels/src/cli/utils/getLatestFuelsVersion.ts @@ -1,11 +1,9 @@ import { checkAndLoadCache, saveToCache } from './fuelsVersionCache'; export const getLatestFuelsVersion = async (): Promise => { - const now = Date.now(); - - const cache = checkAndLoadCache(); - if (cache) { - return cache.version; + const cachedVersion = checkAndLoadCache(); + if (cachedVersion) { + return cachedVersion; } const data: { version: string } | null = await Promise.race([ @@ -21,10 +19,7 @@ export const getLatestFuelsVersion = async (): Promise => { const version = data.version as string; - saveToCache({ - version, - timestamp: now, - }); + saveToCache(version); return version; };