Files
videoreg.ru/web-front/src/entities/video/api/videoCache.ts
T
2026-05-17 01:08:19 +03:00

30 lines
812 B
TypeScript

import 'server-only';
import { unstable_cache } from 'next/cache';
import { DB_MEMORY_TTL_MS, NEXT_CACHE_REVALIDATE_SECONDS } from '@/shared/config/env';
import { calculateVideoStats } from '@/entities/video/model/video';
import { listVideos } from './videoRepository';
export const VIDEO_COLLECTION_TAG = 'video-collection';
export const getCachedVideoDashboard = unstable_cache(
async () => {
const videos = await listVideos();
return {
videos,
stats: calculateVideoStats(videos),
cache: {
generatedAt: new Date().toISOString(),
nextRevalidateSeconds: NEXT_CACHE_REVALIDATE_SECONDS,
memoryTtlMs: DB_MEMORY_TTL_MS,
},
};
},
['video-dashboard-v1'],
{
revalidate: NEXT_CACHE_REVALIDATE_SECONDS,
tags: [VIDEO_COLLECTION_TAG],
},
);