chore: audit public exports — #275

Closed
opened 2026-05-16 06:35:37 +00:00 by xiaoju · 2 comments
Owner

背景

Bundle 全部自包含后(#270),审计各 package 的 public API,识别未被其他 package import 的符号。

未被使用 ≠ 应该删除。这些是收敛候选,需逐个判断:

  • 是否为外部 bundle 作者需要的公共 API
  • 是否只在包内部使用
  • 是否为冗余 re-export

统计

总 export 外部使用 未使用 使用率
18 11 7 61%

未被外部 import 的符号(候选)

备注

Base32 编解码工具和 logger 配置类型,部分可能只在内部或测试中使用。

操作

逐个检查上述符号,决定:

  1. 保留 — 属于公共 API 契约,外部 bundle 作者可能需要
  2. 内部化 — 从 移除 re-export,保留在包内部使用
  3. 删除 — 确认为死代码
## 背景 Bundle 全部自包含后(#270),审计各 package 的 public API,识别未被其他 package import 的符号。 未被使用 ≠ 应该删除。这些是收敛候选,需逐个判断: - 是否为外部 bundle 作者需要的公共 API - 是否只在包内部使用 - 是否为冗余 re-export ## 统计 | 总 export | 外部使用 | 未使用 | 使用率 | |----------|---------|--------|-------| | 18 | 11 | 7 | 61% | ## 未被外部 import 的符号(候选) - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] ## 备注 Base32 编解码工具和 logger 配置类型,部分可能只在内部或测试中使用。 ## 操作 逐个检查上述符号,决定: 1. **保留** — 属于公共 API 契约,外部 bundle 作者可能需要 2. **内部化** — 从 移除 re-export,保留在包内部使用 3. **删除** — 确认为死代码
Author
Owner

\u53ef\u8fbe\u6027\u5206\u6790 \u2014 @uncaged/workflow-util\n\n### \u5305\u804c\u8d23\n\n**\u65e0\u9886\u57df\u8bed\u4e49\u7684\u7eaf\u5de5\u5177\u5e93\u3002** Logger\u3001ULID \u751f\u6210\u3001Base32 \u7f16\u89e3\u7801\u3001\u5b58\u50a8\u8def\u5f84\u3002\n\n### \u53d7\u4f17\n\n**\u7cfb\u7edf\u5185\u90e8** \u2014 \u4e0d\u9762\u5411 bundle \u4f5c\u8005\u3002Bundle \u4f5c\u8005\u4e0d\u76f4\u63a5 import workflow-util\u3002\n\n### \u53ef\u8fbe\u6027\u5224\u5b9a\n\n\u4ece\u4efb\u4f55\u5e94\u7528\u5165\u53e3\uff0cbundle \u4f5c\u8005\u7684\u5b9a\u5236\u6811\u90fd\u4e0d\u4f1a\u5230\u8fbe workflow-util\u3002\u5b83\u7684\u6d88\u8d39\u8005\u5168\u90e8\u662f\u7cfb\u7edf\u5185\u90e8\u5305\uff08execute, register, cli, cas\uff09\u3002\n\n\u56e0\u6b64\u5224\u5b9a\u6807\u51c6\u4e0d\u662f\u300cbundle \u4f5c\u8005\u53ef\u8fbe\u6027\u300d\uff0c\u800c\u662f\u300c\u662f\u5426\u88ab\u5176\u4ed6\u5185\u90e8\u5305\u4f7f\u7528\u300d\u3002\n\n**\u2705 \u88ab\u5176\u4ed6\u5305\u4f7f\u7528 \u2014 \u4fdd\u7559\uff1a**\n- createLogger, LogFn \u2014 \u5e7f\u6cdb\u4f7f\u7528\n- generateUlid \u2014 CLI + execute\n- getDefaultWorkflowStorageRoot, getGlobalCasDir \u2014 CLI + execute\n- normalizeRefsField \u2014 execute\n- env \u2014 CLI + templates\n- err, ok, Result \u2014 execute + register\n- encodeUint64AsCrockford \u2014 cas\n\n**\u274c \u65e0\u8de8\u5305\u6d88\u8d39\u8005 \u2014 \u5185\u90e8\u5316\u5019\u9009\uff1a**\n- CROCKFORD_BASE32_ALPHABET \u2014 \u5e38\u91cf\uff0c\u4ec5\u5305\u5185\u4f7f\u7528\n- CreateLoggerOptions \u2014 logger \u6784\u9020\u53c2\u6570\u7c7b\u578b\uff0c\u5916\u90e8\u53ea\u7528 createLogger \u4e0d\u9700\u8981\u6b64\u7c7b\u578b\n- LoggerSink \u2014 logger \u5185\u90e8\u914d\u7f6e\n- decodeCrockfordBase32Bits \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- decodeCrockfordToUint64 \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- encodeCrockfordBase32Bits \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- mergeRefsWithContentHash \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n\n\u8fd9 7 \u4e2a\u90fd\u662f\u5b9e\u73b0\u7ec6\u8282\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece index.ts \u79fb\u9664\u3002\n\n\u2014 \u5c0f\u6a58 \ud83c\udf4a\uff08NEKO Team\uff09

## \u53ef\u8fbe\u6027\u5206\u6790 \u2014 `@uncaged/workflow-util`\n\n### \u5305\u804c\u8d23\n\n**\u65e0\u9886\u57df\u8bed\u4e49\u7684\u7eaf\u5de5\u5177\u5e93\u3002** Logger\u3001ULID \u751f\u6210\u3001Base32 \u7f16\u89e3\u7801\u3001\u5b58\u50a8\u8def\u5f84\u3002\n\n### \u53d7\u4f17\n\n**\u7cfb\u7edf\u5185\u90e8** \u2014 \u4e0d\u9762\u5411 bundle \u4f5c\u8005\u3002Bundle \u4f5c\u8005\u4e0d\u76f4\u63a5 import workflow-util\u3002\n\n### \u53ef\u8fbe\u6027\u5224\u5b9a\n\n\u4ece\u4efb\u4f55\u5e94\u7528\u5165\u53e3\uff0cbundle \u4f5c\u8005\u7684\u5b9a\u5236\u6811\u90fd\u4e0d\u4f1a\u5230\u8fbe workflow-util\u3002\u5b83\u7684\u6d88\u8d39\u8005\u5168\u90e8\u662f\u7cfb\u7edf\u5185\u90e8\u5305\uff08execute, register, cli, cas\uff09\u3002\n\n\u56e0\u6b64\u5224\u5b9a\u6807\u51c6\u4e0d\u662f\u300cbundle \u4f5c\u8005\u53ef\u8fbe\u6027\u300d\uff0c\u800c\u662f\u300c\u662f\u5426\u88ab\u5176\u4ed6\u5185\u90e8\u5305\u4f7f\u7528\u300d\u3002\n\n**\u2705 \u88ab\u5176\u4ed6\u5305\u4f7f\u7528 \u2014 \u4fdd\u7559\uff1a**\n- `createLogger`, `LogFn` \u2014 \u5e7f\u6cdb\u4f7f\u7528\n- `generateUlid` \u2014 CLI + execute\n- `getDefaultWorkflowStorageRoot`, `getGlobalCasDir` \u2014 CLI + execute\n- `normalizeRefsField` \u2014 execute\n- `env` \u2014 CLI + templates\n- `err`, `ok`, `Result` \u2014 execute + register\n- `encodeUint64AsCrockford` \u2014 cas\n\n**\u274c \u65e0\u8de8\u5305\u6d88\u8d39\u8005 \u2014 \u5185\u90e8\u5316\u5019\u9009\uff1a**\n- `CROCKFORD_BASE32_ALPHABET` \u2014 \u5e38\u91cf\uff0c\u4ec5\u5305\u5185\u4f7f\u7528\n- `CreateLoggerOptions` \u2014 logger \u6784\u9020\u53c2\u6570\u7c7b\u578b\uff0c\u5916\u90e8\u53ea\u7528 `createLogger` \u4e0d\u9700\u8981\u6b64\u7c7b\u578b\n- `LoggerSink` \u2014 logger \u5185\u90e8\u914d\u7f6e\n- `decodeCrockfordBase32Bits` \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- `decodeCrockfordToUint64` \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- `encodeCrockfordBase32Bits` \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n- `mergeRefsWithContentHash` \u2014 \u4ec5\u5305\u5185\u4f7f\u7528\n\n\u8fd9 7 \u4e2a\u90fd\u662f\u5b9e\u73b0\u7ec6\u8282\uff0c\u53ef\u4ee5\u76f4\u63a5\u4ece index.ts \u79fb\u9664\u3002\n\n\u2014 \u5c0f\u6a58 \ud83c\udf4a\uff08NEKO Team\uff09
Owner

Completed in PR #283 + #284.

Completed in PR #283 + #284.
xiaomo changed title from chore: audit public exports \u2014 `@uncaged/workflow-util` to chore: audit public exports — 2026-05-16 10:34:14 +00:00
This repo is archived. You cannot comment on issues.
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#275