跳到主要内容

WorkingTreeAsyncStates

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:134

三端入口持有的全部状态,一项能力一个字段。

Remarks​

键集是 US-306 阶段 C 收口的六项,加上 T110 补进来的 restore() / restoreSession(), 再加 T123 补进来的 switchBranch(),加上 commit 明细侧的 commitChanges(), 与 auto-enable 补进来的 enableIfEmpty()——tri-framework-api.md §3 清单十二项到齐。

switchBranchState 走命令状态而不是查询:切分支没有「空」这一形态,成功就是切过去了 (VersionManager.switchBranch() 返回 void),被 requireClean 拒掉则是一次 WorkingTreeDirtyError,落在 error 相位。切到当前分支是一次 no-op 成功, 与 discard() 的 discardedCount: 0 同形,不是「这里没有内容」。

做成一个记录而不是十二个独立容器:三端的响应式原语都按「一次写入触发一次通知」工作, 十二个容器就是十二条通知路径,而一次 commit() 会同时改 commitState 与 statusState (命令成功后刷新摘要)——两条路径先后到达时,UI 会看到「提交成功了但摘要还是旧的」 这一帧。

Properties​

commitChangesState​

readonly commitChangesState: WorkingTreeQueryState<CommitChangeSetPage>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:154

commitChanges() 的状态;空即「这个 commit 没有任何变更单元」(基线节点)


commitState​

readonly commitState: WorkingTreeCommandState<CommitResult>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:157

commit() 的状态;没有 empty


diffState​

readonly diffState: WorkingTreeQueryState<WorkingTreeDiff>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:148

diff() 的状态;空即「没有可展示的改动」


discardState​

readonly discardState: WorkingTreeCommandState<WorkingTreeDiscardResult>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:160

discard() 的状态;没有 empty


enableIfEmptyState​

readonly enableIfEmptyState: WorkingTreeCommandState<WorkingTreeEnableIfEmptyResult>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:142

enableIfEmpty() 的状态;没有 empty —— not_empty 是结果,不是「没有内容」


enableState​

readonly enableState: WorkingTreeCommandState<CommitCapabilityInfo>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:139

enable() 的状态


isEnabledState​

readonly isEnabledState: WorkingTreeCommandState<boolean>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:136

isEnabled() 的状态


listCommitsState​

readonly listCommitsState: WorkingTreeQueryState<CommitLogPage>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:151

listCommits() 的状态;空即「这个分支还没有历史」


restoreSessionState​

readonly restoreSessionState: WorkingTreeQueryState<
| WorkingTreeRestoreSessionInfo
| null>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:166

restoreSession() 的状态;空即「当前分支没有未结束的恢复会话」


restoreState​

readonly restoreState: WorkingTreeCommandState<WorkingTreeRestoreResult>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:163

restore() 的状态;没有 empty —— 四个被拒成因与 restoredCount: 0 都是结果


statusState​

readonly statusState: WorkingTreeQueryState<WorkingTreeStatus>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:145

status() 的状态;空即「没有未提交变更」


switchBranchState​

readonly switchBranchState: WorkingTreeCommandState<void>;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:169

switchBranch() 的状态;没有 empty —— 切换只有「切过去了」与「被拒/出错」两种结局