DevToolsProviderOptions
Defined in: connector-types.ts:99
页内 provider 装配中需要宿主显式注入的那一部分。
Remarks
浏览器能自动探测的那一半(OPFS、页面下载路径、RxDB 实例)原则上不在这里——那由连接器
自己按环境装配。这里放的是浏览器探测不到的:原生文件后端、settings 的语义 kind 与
显示用 runtime。各字段互相独立,缺省时连接器按浏览器形态装配。
唯一的例外是 DevToolsProviderOptions.getRootDirectory:它存在不是为了补充探测 结果,而是为了让宿主否决探测结果,见该字段自己的说明。
Properties
getRootDirectory?
optional getRootDirectory?: () => Promise<FileSystemDirectoryHandle>;
Defined in: connector-types.ts:129
显式覆盖 OPFS 根目录入口;传 undefined 即撤掉 files 领域。
Returns
Promise<FileSystemDirectoryHandle>
Remarks
上面说浏览器能自动探测的那一半不在这里,唯独这一条是例外,因为宿主需要的是
反向表态:连接器默认用 resolveBrowserOpfsRoot() 探到什么就宣告什么,而宿主
可能已经知道该领域用不了(例:wa-sqlite 落在 IDB 后端时拿不到 OPFS 文件入口)。
这时必须撤掉入口让该领域整个不宣告——留着它,文件页会照常点亮再逐个操作失败,
正是 descriptor 模型要避免的。
省略本字段 = 沿用连接器的自动探测;显式给 undefined = 不宣告 files。
nativeFiles?
optional nativeFiles?: Omit<DevToolsNativeFilesProviderPorts, "runtime">;
Defined in: connector-types.ts:106
原生文件后端端口;给定时 files 走 native-files 而不是 OPFS。
Remarks
不含 runtime:它由下面那个字段统一供给,见 DevToolsProviderOptions.runtime。
providerRegistry?
optional providerRegistry?: DevToolsProviderRegistry;
Defined in: connector-types.ts:142
整份 provider registry 的注入口:给定时整体替换连接器的自动装配。
Remarks
与上面各字段的关系不是「同时给出时谁赢」——registry 存在时连接器直接跳过
createConnectorProviders,其余字段只被忽略,根本不进比较。这是测试装配
(@aiao/rxdb-devtools/testing-providers 的 fake 集合)与未来无法用端口组合描述的
宿主所需的逃生口;生产宿主请继续用分领域字段,让描述符装配保持显式。
registry 不需要 dispose(DevToolsProviderRegistry 没有这个成员):连接器
断开时只做 no-op。持有订阅或计时器的实现请由注入方自行管理生命周期。
runtime?
optional runtime?: "browser" | "electron" | "tauri";
Defined in: connector-types.ts:116
descriptor 显示用 runtime;缺省 browser。
Remarks
影响 database 与 files(OPFS 与原生后端都算)。唯一不受影响的是 settings——
它的 runtime 跟着注入的 descriptor 走。
settings?
optional settings?: DevToolsProvider;
Defined in: connector-types.ts:108
settings 领域 provider;缺省为浏览器 settings(kind: opfs)。