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(promise: Promise | 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) : undefined, })) }