跳到主要内容

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