RxDBPluginDependency
type RxDBPluginDependency =
| "adapter:local"
| "adapter:remote"
| `plugin:${Uncapitalize<string>}`;
Defined in: packages/rxdb/src/rxdb-plugin.ts:21
插件可声明的依赖,封闭取值。
Remarks
取值只有三类:本地适配器、远端适配器、以及按名字引用的另一个插件。之所以不开放成任意字符串 (US-015 INV-1):依赖键同时是编译期契约与运行期查表键,放开之后拼错的键在两侧都只表现为 「依赖永远不满足」——插件静默不装,而调用方拿不到任何编译期提示。
plugin: 前缀是必需的,裸名 'search' 与大写开头的 'plugin:Search' 都编译不过:
前者与未来可能新增的内置资源键撞名,后者与 IRxDBPlugin.name 的 Uncapitalize<string>
不一致,查表必然落空。
就绪判据分两种,语义都是「可用」而不是「存在」:
adapter:*—— 该适配器的引导链(迁移、建表、索引 reconcile)已经跑完plugin:*—— 该插件已进入active