@jintianxiayu/cache-decorator 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -11
- package/README.md +364 -270
- package/dist/core/cache-error.d.ts +75 -0
- package/dist/core/cache-error.d.ts.map +1 -0
- package/dist/core/cache-error.js +168 -0
- package/dist/core/cache-error.js.map +1 -0
- package/dist/core/cache-logger.d.ts +3 -2
- package/dist/core/cache-logger.d.ts.map +1 -1
- package/dist/core/cache-logger.js +2 -0
- package/dist/core/cache-logger.js.map +1 -1
- package/dist/decorators/cache-evict.d.ts.map +1 -1
- package/dist/decorators/cache-evict.js +15 -10
- package/dist/decorators/cache-evict.js.map +1 -1
- package/dist/decorators/cache.d.ts +6 -0
- package/dist/decorators/cache.d.ts.map +1 -1
- package/dist/decorators/cache.js +113 -36
- package/dist/decorators/cache.js.map +1 -1
- package/jest.config.js +11 -11
- package/package.json +1 -1
- package/src/adapters/ioredis-cache-client.ts +89 -89
- package/src/adapters/node-redis-cache-client.ts +95 -95
- package/src/adapters/redis-key-prefix.ts +38 -38
- package/src/core/cache-error.ts +233 -0
- package/src/core/cache-logger.ts +116 -105
- package/src/core/key-builder.ts +33 -33
- package/src/core/native-cache.ts +55 -55
- package/src/core/pending-cache.ts +29 -29
- package/src/core/redis-cache-client.ts +160 -160
- package/src/core/redis-cache.ts +104 -104
- package/src/decorators/cache-evict.ts +137 -129
- package/src/decorators/cache.ts +323 -203
- package/src/index.ts +11 -11
- package/test/cache-evict-logging.test.ts +398 -362
- package/test/cache-logger.integration.test.ts +159 -129
- package/test/cache-logger.test.ts +156 -153
- package/test/cache-logging.test.ts +929 -544
- package/test/cache.test.ts +1017 -255
- package/test/fixtures/cache-logger-child.mjs +108 -108
- package/test/fixtures/cache-provider-failure-child.mjs +70 -0
- package/test/helpers/legacy-redis-cache.ts +41 -22
- package/test/helpers/package-consumer.ts +231 -231
- package/test/helpers/redis-fixture.ts +142 -142
- package/test/ioredis-cache-client.test.ts +143 -143
- package/test/legacy-redis-cache.test.ts +51 -0
- package/test/native-cache.test.ts +77 -77
- package/test/node-redis-cache-client.test.ts +149 -149
- package/test/pending-cache.test.ts +69 -69
- package/test/redis-cache-client-lifecycle.test.ts +112 -112
- package/test/redis-cache-client-types.test.ts +184 -184
- package/test/redis-cache-client.integration.test.ts +355 -327
- package/test/redis-cache-decorator.test.ts +601 -201
- package/test/redis-cache-provider.test.ts +269 -269
- package/test/type-contract/contract.ts +119 -64
- package/test/type-contract/tsconfig.json +12 -12
- package/tsconfig.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,32 @@
|
|
|
1
|
-
# @jintianxiayu/cache-decorator
|
|
1
|
+
# @jintianxiayu/cache-decorator
|
|
2
2
|
|
|
3
|
-
## 1.0.
|
|
3
|
+
## 1.0.2
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 缓存装饰器固定改为 fail-open:Provider 解析、读取、写入或淘汰失败时保留业务成功值或原始业务异常,并消费非等待写入与单 key 删除的异步 rejection。直接调用 Provider 仍保持 fail-fast。
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
这是维护者因公共 API 未调整而批准的 patch 版本例外,计划从 1.0.1 升级到 1.0.2;运行时错误语义不兼容,下游不得再依赖装饰器传播 Provider rejection。
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
- `@jintianxiayu/cache-decorator`:修复并发缓存 Promise 复用及拒绝后的清理;解耦 `RedisCacheProvider` 与具体 Redis SDK,新增 `RedisCacheClient`、ioredis 和 node-redis 适配工厂,并保持 Redis key、值格式及秒级 TTL 兼容;新增缓存命中、回填、淘汰和基础设施失败的结构化日志。BREAKING:调用方必须显式包装并管理 Redis 连接、直接声明所用 Redis 客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次缓存调用前初始化 Logger。
|
|
11
|
-
- `@jintianxiayu/lock-decorator`:解耦 `RedisLockProvider` 与 ioredis,新增 `RedisLockClient`、ioredis 和 node-redis 适配工厂,锁协议及连接所有权语义保持不变;新增锁获取、重试、续期、业务执行和释放的结构化日志。Watchdog 续期 Promise 拒绝会被记录并停止后续续期,不再形成未处理拒绝,已开始的业务仍继续执行并在结束时尝试释放锁。BREAKING:调用方必须显式包装现有 Redis 连接、直接声明客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次锁调用前初始化 Logger。
|
|
12
|
-
- `@jintianxiayu/http-client-decorator`:同步适配 logger 0.2 的 peer 依赖与异步上下文用法;调用方应通过 `LoggerContext.withContext` 建立请求上下文,tracing 中间件继续从中读取并注入 `traceId`。
|
|
13
|
-
- 仓库开发与发布流程迁移到 pnpm 11 原生 workspace,并统一 TypeScript NodeNext、Jest、清理、构建和本地发布配置。
|
|
11
|
+
## 1.0.1
|
|
14
12
|
|
|
15
13
|
### Patch Changes
|
|
16
14
|
|
|
17
|
-
-
|
|
18
|
-
|
|
15
|
+
- 业务异常缓存改为默认关闭,并新增独立 TTL、筛选器与可移植 codec 策略;Redis 异常条目采用版本化 envelope,共享 key 的读取方必须先完成 patch 升级再启用策略。
|
|
16
|
+
|
|
17
|
+
## 1.0.0
|
|
18
|
+
|
|
19
|
+
### Major Changes
|
|
20
|
+
|
|
21
|
+
- 本次发布包含以下变更:
|
|
22
|
+
|
|
23
|
+
- `@jintianxiayu/logger`:重构日志配置、命名 Logger、Plain/JSON 输出、轮转文件、元数据规范化与脱敏、异步 `traceId` 上下文、进程错误处理及可等待的关闭流程。BREAKING:包根不再导出 `createLogger`、`ConfigLoader` 和 `LogPosition`;`LoggerContext.set/clear/getStore` 改为通过 `withContext/get` 使用,配置结构及脱敏字段格式同步调整,运行时要求 Node.js 20.19+/22.13+/24+。
|
|
24
|
+
- `@jintianxiayu/cache-decorator`:修复并发缓存 Promise 复用及拒绝后的清理;解耦 `RedisCacheProvider` 与具体 Redis SDK,新增 `RedisCacheClient`、ioredis 和 node-redis 适配工厂,并保持 Redis key、值格式及秒级 TTL 兼容;新增缓存命中、回填、淘汰和基础设施失败的结构化日志。BREAKING:调用方必须显式包装并管理 Redis 连接、直接声明所用 Redis 客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次缓存调用前初始化 Logger。
|
|
25
|
+
- `@jintianxiayu/lock-decorator`:解耦 `RedisLockProvider` 与 ioredis,新增 `RedisLockClient`、ioredis 和 node-redis 适配工厂,锁协议及连接所有权语义保持不变;新增锁获取、重试、续期、业务执行和释放的结构化日志。Watchdog 续期 Promise 拒绝会被记录并停止后续续期,不再形成未处理拒绝,已开始的业务仍继续执行并在结束时尝试释放锁。BREAKING:调用方必须显式包装现有 Redis 连接、直接声明客户端依赖,同时提供兼容的 `@jintianxiayu/logger` peer 并在首次锁调用前初始化 Logger。
|
|
26
|
+
- `@jintianxiayu/http-client-decorator`:同步适配 logger 0.2 的 peer 依赖与异步上下文用法;调用方应通过 `LoggerContext.withContext` 建立请求上下文,tracing 中间件继续从中读取并注入 `traceId`。
|
|
27
|
+
- 仓库开发与发布流程迁移到 pnpm 11 原生 workspace,并统一 TypeScript NodeNext、Jest、清理、构建和本地发布配置。
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies:
|
|
32
|
+
- @jintianxiayu/logger@1.0.0
|