import { NamespacedCache } from './namespaced-cache'; import type { CacheProvider } from './types'; /** * Factory function to create namespaced caches * Provides a clean API for services to get their own namespaced cache */ export function createNamespacedCache( cache: CacheProvider | null | undefined, namespace: string ): CacheProvider | null { if (!cache) { return null; } return new NamespacedCache(cache, namespace); } /** * Type guard to check if cache is available */ export function isCacheAvailable(cache: any): cache is CacheProvider { return cache !== null && cache !== undefined && typeof cache.get === 'function'; }