import { getCache, setCache } from '$lib/store'; import defaultAvatar from '$lib/images/hedge_funds/default-avatar.png'; let images = {}; // Function to load images only when they are viewed async function loadImages() { const imageFiles = import.meta.glob('$lib/images/hedge_funds/*.png'); const imagesPromises = []; for (const [path, resolver] of Object?.entries(imageFiles)) { const imageNameMatch = path.match(/\/([^/]+)\.png$/); if (imageNameMatch && imageNameMatch[1] !== 'default-avatar') { imagesPromises?.push(resolver()?.then(module => { images[imageNameMatch[1]] = module.default; })); } } await Promise.all(imagesPromises); } export const load = async () => { const getHedgeFunds = async () => { let output; // Get cached data for the specific tickerID const cachedData = getCache('getHedgeFunds', 'getHedgeFunds'); if (cachedData) { output = cachedData; } else { output = (await import('$lib/hedge-funds/all-hedge-funds.json'))?.default; await loadImages(); output?.forEach(item => { item.image = images[item?.cik] || defaultAvatar; }); // Cache the data for this specific tickerID with a specific name 'getHedgeFunds' setCache('getHedgeFunds', output, 'getHedgeFunds'); } return output; }; // Make sure to return a promise return { getHedgeFunds: await getHedgeFunds() }; };