Function: removeNode()
removeNode(
version,nodeId):DocumentVersion
Defined in: packages/core/src/removeNode.ts:36
Removes a node and everything beneath it, and drops the reference to it from whatever held it — a slot, or the document's roots.
The cascade follows slot references from the named node, so a descendant that a second slot elsewhere also references goes with it.
Parameters
version
The document to edit. Read, never written.
nodeId
string
Id of the node to remove. The document must hold it.
Returns
A new DocumentVersion with the subtree gone from elements and its id gone from
every slot and from roots. The argument is not mutated, version.version is not bumped,
and every surviving node the edit did not touch is carried over by reference.
Throws
no-such-node when nodeId names a node the document does not hold.
Example
// stack → [a, b]; a → [a1, a2]
const next = removeNode(version, "a");
next.elements.a1; // undefined — the cascade reached it
next.elements.stack?.slots?.sections; // ["b"]
// Removing the last root leaves an empty document, which `compile` refuses as `no-roots`.
removeNode(version, "stack").roots; // []