/** * Cache Strategy Definitions * * Defines different caching strategies for the CacheManager. */ export const CacheStrategy = { /** * No caching - always fetch from source */ NO_CACHE: 'no-cache', /** * Cache first - use cache if available, otherwise fetch */ CACHE_FIRST: 'cache-first', /** * Network first - try network first, fallback to cache */ NETWORK_FIRST: 'network-first', /** * Stale while revalidate - return cache immediately, update in background */ STALE_WHILE_REVALIDATE: 'stale-while-revalidate', /** * Network only - always fetch from network, never use cache */ NETWORK_ONLY: 'network-only', /** * Cache only - only use cache, never fetch from network */ CACHE_ONLY: 'cache-only' }; /** * Get default strategy for a use case */ export function getStrategyForUseCase(useCase) { const strategies = { 'api-response': CacheStrategy.STALE_WHILE_REVALIDATE, 'user-data': CacheStrategy.CACHE_FIRST, 'real-time': CacheStrategy.NETWORK_ONLY, 'static-content': CacheStrategy.CACHE_ONLY, 'computed-value': CacheStrategy.CACHE_FIRST }; return strategies[useCase] || CacheStrategy.STALE_WHILE_REVALIDATE; }