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'