MCPcopy Create free account
hub / github.com/Rfym21/Qwen2API / getCache

Method getCache

src/utils/img-caches.js:49–80  ·  view source on GitHub ↗
(signature)

Source from the content-addressed store, hash-verified

47 const parts = String(stamp).match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/)
48 if (!parts) return null
49 const signedAt = Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6])
50 if (!Number.isFinite(signedAt)) return null
51 return signedAt + expires * 1000
52 } catch {
53 return null
54 }
55}
56
57/**
58 * ¿Sigue sirviendo esta URL cacheada? Manda la caducidad firmada; si la URL no la lleva,
59 * manda la antigüedad de la entrada.
60 *
61 * @param {string} url
62 * @param {number|null} cachedAt - epoch ms en que se guardó, o null si no se sabe (modo file)
63 * @returns {boolean}
64 */
65const cachedUrlIsUsable = (url, cachedAt) => {
66 const expiry = presignedUrlExpiryMs(url)
67 if (expiry !== null) return Date.now() + EXPIRY_SAFETY_MARGIN_MS < expiry
68 if (!Number.isFinite(cachedAt)) return false
69 return Date.now() - cachedAt <= UNKNOWN_EXPIRY_TTL_MS
70}
71// ~500 B por entrada (clave hex de 64 + URL) → 512 entradas < 0.5 MB.
72const IMAGE_CACHE_MAX_ENTRIES = 512
73
74class imgCacheManager {
75 constructor() {
76 this.cacheMap = new Map()
77 if (config.cacheMode === 'file') {
78 fs.mkdirSync(resolveRuntimePath('caches'), { recursive: true })
79 }
80 }
81
82 cacheIsExist(signature) {
83 try {

Callers 1

Calls 2

cacheIsExistMethod · 0.95
errorMethod · 0.80

Tested by

no test coverage detected