本页签名从公共包导出生成,中文说明与当前 JSDoc 同步校验。代码标识保持原名。
创建状态槽
调用后得到可安装的 slot,通过 addState 安装。
@quirekit/msfe-core参数 definition:文档级纯 reducer 和显式反向策略。返回可复用的可安装状态槽。
defineStatets
function defineState<T>(definition: StateDefinition<T>): StateSlot<T>纯 reducer
完整状态模块和更新方式见 状态教程。
@quirekit/msfe-core由事务管理的状态;每份文档独立初始化。
StateDefinitionts
export interface StateDefinition<T> {
readonly key: string;
readonly create: (document: SourceDocument) => T;
readonly update: (value: T, update: StateUpdate) => T;
readonly invert?: (value: T, update: StateUpdate) => readonly StateEffect<unknown>[];
}效果令牌
带位置的载荷需要 map;效果本身不等于有撤销策略。
@quirekit/msfe-core参数 map:可选的位置载荷映射函数。返回类型化事务效果令牌。
defineEffectts
function defineEffect<T>(map?: (value: T, changes: ChangeDesc) => T | undefined): Effect<T>事务元数据
用于关联来源,不能代替文档持久字段。
@quirekit/msfe-core返回类型化事务元数据令牌,不引入第二份事务存储。
defineMetadatats
function defineMetadata<T>(): Metadata<T>接受状态订阅
select 保持纯粹和有界,调用方单独读取初始值。
@quirekit/msfe-core订阅已接受状态,试算草稿不会产生通知。
StateSubscriptionts
export interface StateSubscription<T> {
readonly select: (state: EditorState) => T;
readonly change: (next: T, previous: T) => void;
readonly equal?: (a: T, b: T) => boolean;
}资源租约
TaskScope.acquire 使用本协议;详细生命周期见 异步资源。
@quirekit/msfe-core一次获取所拥有的资源;每次获取必须返回独立的租约。
ResourceLeasets
export interface ResourceLease<T> {
readonly value: T;
readonly release?: () => void;
}