FormKit Observer is a utility to wrap a FormKitNode in a dependency tracking observer proxy.
Creates the observer.
createObserver(node: FormKitNode, dependencies?: FormKitDependencies): FormKitObservedNode;
node
— The FormKitNode to observe.dependencies
— The dependent nodes and the events that are required to watch for changes.Returns a FormKitObservedNode.
Determines which nodes should be added as dependencies and which should be removed.
diffDeps(previous: FormKitDependencies, current: FormKitDependencies): [FormKitDependencies, FormKitDependencies];
previous
— The previous watcher dependencies.current
— The new/current watcher dependencies.A tuple of maps: toAdd
and toRemove
.
Checks if the given node is revoked.
isKilled(node: FormKitObservedNode): boolean;
node
— Any observed node to check.A boolean
indicating if the node is revoked.
Remove all the receipts from the observed node and subtree.
removeListeners(receipts: FormKitObserverReceipts): void;
receipts
— The FormKit observer receipts to remove.An API-compatible FormKitNode that is able to determine the full dependency tree of nodes and their values.
interface FormKitObservedNode extends FormKitNode {
_node: FormKitNode
deps: FormKitDependencies
kill: () => undefined
observe: () => void
receipts: FormKitObserverReceipts
stopObserve: () => FormKitDependencies
watch: <TextendsFormKitWatchable>(
block: T,
after?: (value: ReturnType<T>) => void
) => void
}
A callback to watch for nodes.
interface FormKitWatchable<T = unknown> {
(node: FormKitObservedNode): T
}