feat: Add common package * Add isEdge, safeTry and dataCache to new common package * Add eslint and move prettier config * Fix yarn lock * Clean up tests * Add lint-staged config to common * Add missing dependencies Approved-by: Joakim Jäderberg
23 lines
541 B
TypeScript
23 lines
541 B
TypeScript
import { cacheLogger } from "../../logger"
|
|
import { cacheMap } from "./cacheMap"
|
|
|
|
export async function get<T>(key: string): Promise<T | undefined> {
|
|
const cached = cacheMap.get(key)
|
|
if (!cached) {
|
|
return undefined
|
|
}
|
|
|
|
if (cached.expiresAt < Date.now()) {
|
|
cacheLogger.debug(`Expired for key '${key}'`)
|
|
cacheMap.delete(key)
|
|
return undefined
|
|
}
|
|
if (cached.data === undefined) {
|
|
cacheLogger.debug(`Data is undefined for key '${key}'`)
|
|
cacheMap.delete(key)
|
|
return undefined
|
|
}
|
|
|
|
return cached.data as T
|
|
}
|