* 写入图标缓存(LRU 淘汰) * 命中时先 delete 再 set,保证该 key 移到 Map 末尾(最近使用)
(key: string, buffer: Buffer)
| 10 | * 命中时先 delete 再 set,保证该 key 移到 Map 末尾(最近使用) |
| 11 | */ |
| 12 | function setIconCache(key: string, buffer: Buffer): void { |
| 13 | // 已存在则先删除,重新插入以刷新顺序 |
| 14 | if (iconMemoryCache.has(key)) { |
| 15 | iconMemoryCache.delete(key) |
| 16 | } else if (iconMemoryCache.size >= MAX_ICON_CACHE) { |
| 17 | // 淘汰最早插入(最久未使用)的条目 |
| 18 | const oldest = iconMemoryCache.keys().next().value |
| 19 | if (oldest !== undefined) { |
| 20 | iconMemoryCache.delete(oldest) |
| 21 | } |
| 22 | } |
| 23 | iconMemoryCache.set(key, buffer) |
| 24 | } |
| 25 | |
| 26 | /** |
| 27 | * 根据平台提取图标并返回 PNG Buffer(异步,直接调用原生,无队列) |
no outgoing calls
no test coverage detected