import { Document } from "@lib/documents.ts"; import * as cache from "@lib/cache/cache.ts"; type DocumentsCache = { lastUpdated: number; documents: Document[]; }; const CACHE_INTERVAL = 5000; // 5 seconds; const CACHE_KEY = "documents"; export async function getDocuments() { const docs = await cache.get(CACHE_KEY); if (!docs) return; if (Date.now() > docs.lastUpdated + CACHE_INTERVAL) { return; } return docs.documents; } export function setDocuments(documents: Document[]) { return cache.set( CACHE_KEY, JSON.stringify({ lastUpdated: Date.now(), documents, }), ); } type DocumentCache = { lastUpdated: number; content: string; }; export async function getDocument(id: string) { const doc = await cache.get(CACHE_KEY + "/" + id); if (!doc) return; if (Date.now() > doc.lastUpdated + CACHE_INTERVAL) { return; } return doc.content; } export async function setDocument(id: string, content: string) { await cache.set( CACHE_KEY + "/" + id, JSON.stringify({ lastUpdated: Date.now(), content, }), ); }