Files
web/packages/common/dataCache/logger.ts
Joakim Jäderberg daf765f3d5 Merged in feature/wrap-logging (pull request #2511)
Feature/wrap logging

* feat: change all logging to go through our own logger function so that we can control log levels

* move packages/trpc to using our own logger

* merge


Approved-by: Linus Flood
2025-07-03 12:37:04 +00:00

37 lines
889 B
TypeScript

import { createLogger } from "../logger/createLogger"
export const cacheLogger = createLogger(loggerPrefix)
async function loggerPrefix() {
const instancePrefix = await getCachePrefix()
return `[Cache] ${instancePrefix ?? ""}`.trim()
}
async function getCachePrefix() {
const cacheCreated = await isPromiseResolved(global.cacheClient)
if (!cacheCreated.resolved) {
return null
}
const instanceType = cacheCreated.value?.type
if (!instanceType) {
return null
}
return `[${instanceType}]`
}
function isPromiseResolved<T>(promise: Promise<T> | undefined) {
if (!promise) {
return { resolved: false, value: undefined }
}
const check = Promise.race([promise, Promise.resolve("__PENDING__")])
return check.then((result) => ({
resolved: result !== "__PENDING__",
value: result !== "__PENDING__" ? (result as Awaited<T>) : undefined,
}))
}