@nextcloud/vue
Version:
Nextcloud vue components
32 lines (31 loc) • 1.13 kB
TypeScript
import { IProfileData } from './NcProfileHoverCard.vue';
/** Default TTL for cached profile payloads (30 minutes). */
export declare const PROFILE_CACHE_TTL_MS: number;
/**
* Return a non-expired cached profile for the user, or null.
*
* @param userId - User id
*/
export declare function getCachedProfile(userId: string): IProfileData | null;
/**
* Store profile data in the shared TTL cache.
*
* @param userId - User id
* @param data - Profile payload
* @param ttlMs - Time to live in milliseconds
*/
export declare function setCachedProfile(userId: string, data: IProfileData, ttlMs?: number): void;
/**
* Clear all cached profiles and in-flight fetches. Used by tests.
*
* @internal
*/
export declare function clearProfileCache(): void;
/**
* Fetch a profile with shared TTL cache and in-flight request deduplication.
*
* @param userId - User id
* @param fetcher - Network loader invoked on cache miss
* @param ttlMs - Time to live for a successful result
*/
export declare function fetchProfileCached(userId: string, fetcher: () => Promise<IProfileData | null>, ttlMs?: number): Promise<IProfileData | null>;