UNPKG

@nextcloud/vue

Version:
32 lines (31 loc) 1.13 kB
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>;