跳到主要内容

WorkingTreeEnableIfEmptyResult

type WorkingTreeEnableIfEmptyResult =
| {
capability: CommitCapabilityInfo;
kind: "enabled";
}
| {
capability: CommitCapabilityInfo;
kind: "already_enabled";
}
| {
kind: "not_empty";
};

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/working-tree-facade.ts:96

WorkingTreeManager.enableIfEmpty 的三种结局。

Union Members​

Type Literal​

{
capability: CommitCapabilityInfo;
kind: "enabled";
}

capability​

readonly capability: CommitCapabilityInfo;

启用后的能力信息

kind​

readonly kind: "enabled";

判别位:本次调用完成了启用


Type Literal​

{
capability: CommitCapabilityInfo;
kind: "already_enabled";
}

capability​

readonly capability: CommitCapabilityInfo;

现状的能力信息

kind​

readonly kind: "already_enabled";

判别位:库本来就已启用,本次调用什么都没改


Type Literal​

{
kind: "not_empty";
}

kind​

readonly kind: "not_empty";

判别位:库里已有内容,按规则不自动启用;手动 enable() 仍可用

Remarks​

做成判别联合而不是 { enabled: boolean; … }:三种结局各有各的载荷——enabled 与 already_enabled 带能力信息,not_empty 什么都没有。拍平成一个对象就要给「没发生的 那次启用」编造一份能力信息(或可空字段),调用方被迫处理四种组合,其中两种是假的。