index.js
1.02 KB
/**
* `@drama/config-source` 公共面(唯一对外入口)。
*
* 版本化配置缓存:`load` / `version` / `now` 全注入,包内不 import `@drama/db`、`ioredis`、
* 不读 `process.env`、不建连接、不用 `Date.now`。`import '@drama/config-source'` 零 IO。
*
* 导出:
* createVersionedSource({ load, version, ttlMs, now }) => { get, invalidate }
* createTableVersion({ db, table }) => version() 配置表版本令牌(按 id 排序后的完整行内容)
*
* 消费方各自提供表映射的 `load`,本包只提供「新鲜窗口 + 版本比对 + 并发去重」机制与配置表的
* 通用版本令牌,不认识 redis / vendor / 行结构;db 由消费方注入,包内不建连接。
*
* @typedef {import('./versioned-source.js').VersionedSource<any>} VersionedSource
* @typedef {import('./versioned-source.js').VersionedSourceDeps<any>} VersionedSourceDeps
*/
export { createVersionedSource } from './versioned-source.js'
export { createTableVersion } from './table-version.js'