Files
web/apps/scandic-web/services/dataCache/MemoryCache/UnstableCache/cacheOrGet.ts
Linus Flood f183125bc6 Merged in fix/cache-fixes (pull request #1555)
fix/cache: reduce cachetime when null response from CS. Fix fuzzy delete

* fix/cache: reduce cachetime when null response from CS. Fix fuzzy delete


Approved-by: Anton Gunnarsson
2025-03-17 14:39:59 +00:00

30 lines
692 B
TypeScript

import { unstable_cache } from "next/cache"
import {
type CacheTime,
type DataCache,
getCacheTimeInSeconds,
} from "@/services/dataCache/Cache"
import { cacheLogger } from "../../logger"
export const cacheOrGet: DataCache["cacheOrGet"] = async <T>(
key: string | string[],
callback: (overrideTTL?: (cacheTime: CacheTime) => void) => Promise<T>,
ttl: CacheTime
): Promise<T> => {
if (!Array.isArray(key)) {
key = [key]
}
const perf = performance.now()
const res = await unstable_cache(callback, key, {
revalidate: getCacheTimeInSeconds(ttl),
tags: key,
})()
cacheLogger.debug(`'${key}' took ${(performance.now() - perf).toFixed(2)}ms`)
return res
}