Skip to content

Documentation / @geoverse/editor-core / EditEngine

Class: EditEngine

Defined in: packages/editor-core/src/engine.ts:41

编辑引擎:dispatch 走 校验→applyForward→入栈→清 redo→emit。 undo/redo 复用泛型 applyForward/applyReverse,只认 added/removed/modified, 对要素数量变化(split 1→2、merge 2→1)零特判。

Constructors

Constructor

ts
new EditEngine(options?): EditEngine;

Defined in: packages/editor-core/src/engine.ts:51

Parameters

options?

EditEngineOptions = {}

Returns

EditEngine

Properties

crs

ts
readonly crs: string;

Defined in: packages/editor-core/src/engine.ts:49

Methods

adoptServerState()

ts
adoptServerState(serverFeatures): void;

Defined in: packages/editor-core/src/engine.ts:159

采纳服务端权威状态(409 冲突 rebase):以服务端要素覆盖/补齐本地同 id 要素, 并清空历史栈(rebase 后旧历史不再有效)。本地未提交编辑由调用方在 commit 前后取舍。

Parameters

serverFeatures

EditableFeature[]

Returns

void


dispatch()

ts
dispatch(cmd): EditResult;

Defined in: packages/editor-core/src/engine.ts:60

Parameters

cmd

Command

Returns

EditResult


getFeature()

ts
getFeature(id): EditableFeature | undefined;

Defined in: packages/editor-core/src/engine.ts:137

Parameters

id

string

Returns

EditableFeature | undefined


on()

ts
on(listener): () => void;

Defined in: packages/editor-core/src/engine.ts:114

Parameters

listener

SnapshotListener

Returns

() => void


onTransaction()

ts
onTransaction(listener): () => void;

Defined in: packages/editor-core/src/engine.ts:120

订阅事务事件(同步层用以累积未提交变更)。

Parameters

listener

TransactionListener

Returns

() => void


redo()

ts
redo(): boolean;

Defined in: packages/editor-core/src/engine.ts:104

Returns

boolean


remapIds()

ts
remapIds(idMap): void;

Defined in: packages/editor-core/src/engine.ts:169

提交后端回包后,把临时 id 替换成真实 id(状态 + 历史栈一并改)。

Parameters

idMap

Record<FeatureId, FeatureId>

Returns

void


setVersions()

ts
setVersions(versions): void;

Defined in: packages/editor-core/src/engine.ts:143

写入后端下发的版本号(乐观锁)。

Parameters

versions

Record<FeatureId, number>

Returns

void


snapshot()

ts
snapshot(): EditSnapshot;

Defined in: packages/editor-core/src/engine.ts:125

Returns

EditSnapshot


undo()

ts
undo(): boolean;

Defined in: packages/editor-core/src/engine.ts:94

Returns

boolean