Skip to content

Commit 98d1ce4

Browse files
committed
release: v1.0.3
1 parent 5a1f181 commit 98d1ce4

12 files changed

Lines changed: 1600 additions & 8308 deletions

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 变更日志 (CHANGELOG)
22

33
> **说明**: 版本概览索引,详细变更见 [changelogs/](./changelogs/) 目录
4-
> **最后更新**: 2026-03-22
4+
> **最后更新**: 2026-05-30
55
66
---
77

@@ -24,6 +24,7 @@
2424

2525
| 版本 | 日期 | 变更摘要 | 详细 |
2626
|------|------|---------|------|
27+
| [v1.0.3](./changelogs/v1.0.3.md) | 2026-05-30 | Patch 修复:收口多级缓存 TTL 回填、分布式失效、函数缓存精确失效、Redis 批量 key 校验,并移除 website 与 source map 发布产物 | [查看](./changelogs/v1.0.3.md) |
2728
| [v1.0.0](./changelogs/v1.0.0.md) | 2026-03-22 | 🎉 首个正式发布版本。零运行时依赖的 Node.js 多层缓存库,统一工作区所有项目的缓存基础设施 | [查看](./changelogs/v1.0.0.md) |
2829

2930
---
@@ -32,6 +33,7 @@
3233

3334
| 版本 | 新增 | 变更 | 修复 | 移除 |
3435
|------|------|------|------|------|
36+
| v1.0.3 | - | 构建产物精简、README 说明补齐 | 缓存语义与发布前验证链收口 | Rspress website |
3537
| v1.0.0 | 初始版本 | - | - | - |
3638

3739
---
@@ -46,4 +48,4 @@
4648

4749
---
4850

49-
**最后更新**: 2026-03-22
51+
**最后更新**: 2026-05-30

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ import type { CacheLike, CacheStats, MemoryCacheOptions } from 'cache-hub';
166166
| `enableTags` | `boolean` | `false` | 开启标签索引,支持 `invalidateByTag` |
167167
| `enabled` | `boolean` | `true` | `false` 时禁用缓存 |
168168

169+
#### `MemoryCache` 实例方法
170+
171+
除完整 `CacheLike` 接口外,`MemoryCache` 还提供 `getRemainingTtl(key)``getRemainingTtlMany(keys)`,用于查询未过期键的剩余 TTL;不过期键返回 `null`,不存在或已过期键返回 `undefined`
172+
169173
#### `CacheLike` 接口
170174

171175
所有缓存实现均满足此接口,可互相替换:
@@ -253,6 +257,14 @@ await adapter.close();
253257

254258
> **需要安装 ioredis**`npm install ioredis`
255259

260+
`RedisCacheAdapter` 实现完整 `CacheLike` 接口,并额外提供:
261+
262+
| 方法 | 说明 |
263+
|------|------|
264+
| `getRemainingTtl(key)` | 查询 Redis 键的剩余 TTL;不过期键返回 `null`,不存在键返回 `undefined` |
265+
| `getRemainingTtlMany(keys)` | 批量查询剩余 TTL,返回 keyTTL 的映射 |
266+
| `close()` | 关闭适配器自己创建的连接;传入外部 ioredis 实例时不会关闭 |
267+
256268
---
257269

258270
### `cache-hub/function-cache` — 函数缓存
@@ -355,7 +367,7 @@ npm test
355367
# 单元测试 + 覆盖率报告
356368
npm run test:coverage
357369
358-
# 集成测试(30 个,需要本地 Redis)
370+
# 集成测试(需要本地 Redis)
359371
npm run test:integration
360372
361373
# 指定 Redis 地址

changelogs/unreleased.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,4 @@
22

33
## Fixed
44

5-
- 修复 `MultiLevelCache` 在 L2 命中回填 L1 时丢失剩余 TTL 的问题,避免短 TTL 远端数据被扩展成本地长 TTL 或永久缓存。
6-
- 修复 `DistributedCacheInvalidator.invalidate()` 只广播不先清发送方本地缓存的语义偏差,并同步 README / docs 示例。
7-
- 修复 `MultiLevelCache` 遇到不支持 TTL 查询的远端 `CacheLike` 时不回填 L1 的兼容性回归;TTL-aware 远端保留剩余 TTL,TTL-unaware 远端按 L1 默认 TTL 策略回填。
8-
- 修复 `withCache.invalidateAll()` 前缀删除可能误删同前缀手工键的问题,改为精确删除该包装函数实际写入的 key,并在失效前清理已淘汰/过期的历史 key。
9-
- 修复 `RedisCacheAdapter``getMany/setMany/delMany` 未统一执行 key 校验的问题。
10-
- 补齐新增缓存语义分支测试,恢复 Statements / Branches / Functions / Lines 全部 100% 覆盖率。
11-
- 优化 CJS 构建脚本日志,隐藏预期 `TS1343` 中间诊断,避免成功构建看起来像失败。
5+
- 暂无。

changelogs/v1.0.3.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# v1.0.3 变更详情
2+
3+
> **发布日期**: 2026-05-30
4+
> **类型**: Patch release
5+
> **前置版本**: v1.0.2
6+
7+
---
8+
9+
## 变更概述
10+
11+
cache-hub v1.0.3 聚焦缓存语义修复、文档入口收口和发布产物精简。该版本修复多级缓存 TTL 回填、分布式失效、函数缓存精确失效和 Redis 批量 key 校验相关问题,同时移除未部署且与 README 高度重复的 Rspress website,并关闭发布构建 source map 输出。
12+
13+
---
14+
15+
## Fixed
16+
17+
- 修复 `MultiLevelCache` 在 L2 命中回填 L1 时丢失剩余 TTL 的问题,避免短 TTL 远端数据被扩展成本地长 TTL 或永久缓存。
18+
- 修复 `DistributedCacheInvalidator.invalidate()` 只广播不先清发送方本地缓存的语义偏差,并同步 README 示例。
19+
- 修复 `MultiLevelCache` 遇到不支持 TTL 查询的远端 `CacheLike` 时不回填 L1 的兼容性回归;TTL-aware 远端保留剩余 TTL,TTL-unaware 远端按 L1 默认 TTL 策略回填。
20+
- 修复 `withCache.invalidateAll()` 前缀删除可能误删同前缀手工键的问题,改为精确删除该包装函数实际写入的 key,并在失效前清理已淘汰/过期的历史 key。
21+
- 修复 `RedisCacheAdapter``getMany/setMany/delMany` 未统一执行 key 校验的问题。
22+
- 补齐新增缓存语义分支测试,恢复 Statements / Branches / Functions / Lines 全部 100% 覆盖率。
23+
- 优化 CJS 构建脚本日志,隐藏预期 `TS1343` 中间诊断,避免成功构建看起来像失败。
24+
- 移除未部署且与 README 高度重复的 Rspress website 文档站,删除相关 docs 脚本与开发依赖,降低文档同步和依赖维护成本。
25+
- 关闭 ESM/CJS 发布构建的 source map 输出,避免 `dist/**/*.js.map` 进入 npm 包。
26+
- 补充 README 中 `MemoryCache` / `RedisCacheAdapter` 的 TTL 查询方法说明,并将集成测试命令说明改为不依赖固定数量的表述。
27+
28+
---
29+
30+
## 验证摘要
31+
32+
- `npm run typecheck`
33+
- `npm run test:coverage`
34+
- `npm run build`
35+
- `npm audit --json`
36+
- `npm pack --dry-run --json`
37+
38+
---
39+
40+
> **版本历史**: v1.0.3 (2026-05-30) — patch 修复与发布产物精简

0 commit comments

Comments
 (0)