Skip to content

observation: 可选 Turso driver 的 loader 现在有两份(cli/utils/storage-driver.ts 与 runtime/turso-driver-factory.ts)—— 建议收敛到单一 owner #6268

Description

@qq9340100

观察类(finding,无 pm:queue):今天没有用户会撞到,记录的是一处已经存在的重复,以及它未来漂移的方向。

事实

@objectstack/driver-turso 是可选安装,两处各自动态 import 并包成 IDatasourceDriverFactory:

两份的 create() 句柄形状、缺包响亮失败、"不回退 SQLite"的措辞都是刻意对齐的 —— 也就是说,它们现在一致,靠的是人工对齐而不是结构#3741#3758 记过同一类账:同一决策的两份实现,修了一份漏了另一份,漏了三个月。

为什么当时没有合并

依赖方向只允许 cli → runtime,不允许反向;而 #5602 的文件面是 CLI 单侧,#5820 的文件面是 runtime 单侧,两单都没有权限动对面。所以重复不是疏忽,是两次窄口径裁决的合成结果。

建议方向(未裁)

把 owner 定在 runtime(turso-driver-factory.ts),CLI 侧 loadTursoDriverFactory 改为 re-export 或薄委托,MissingDriverPackageError 同理 —— 注意 serve.tsinstanceof 判它,收敛时必须是同一个类而不是同名两个类,否则 fatal 分支会静默失效。CLI 的 UnsupportedDriverError(选了 turso 但没给 URL)是 CLI 独有语义,不必下沉。

收敛动作本身需要同时改 packages/clipackages/runtime 两个文件面,并会触碰 #5602 刚落地的表面,因此建议作为独立一单排期,而不是搭在任何一侧的车上。

⚠️ 未认领。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions