ExtensionHooks
Type Stability: stable
The hooks an extension can register (ExtensionInit.hooks). A hook returns nabu.BREAK (or, for onSplit, an object)
to stop the engine from going on; the others return nothing. Any other name is a custom hook, run with nabu.trigger(name, ...args).
Declared as methods, so a handler may narrow the block parameter ((nabu, block: Paragraph) => ...).
Related guide: Extensions →
onBlockCreate, onBlockDelete, onBlockUpdate, onAfterTransaction and onInput are declared for forward compatibility:
the engine does not call them yet.
Definition
TypeScript
import type { ExtensionHooks } from '@aionbuilders/nabu/extend';TypeScript
type ExtensionHooks = {
onAfterTransaction(nabu: Nabu, ...args: any[]): void;
onBeforeInput(nabu: Nabu, event: InputEvent, block: Block): boolean | symbol | void;
onBeforeMerge(nabu: Nabu, survivor: Block, victim: Block): symbol | void;
onBeforeTransaction(nabu: Nabu, ...args: any[]): void;
onBlockCreate(nabu: Nabu, block: Block): void;
onBlockDelete(nabu: Nabu, block: Block): void;
onBlockUpdate(nabu: Nabu, block: Block): void;
onInit(nabu: Nabu): void;
onInput(nabu: Nabu, event: InputEvent, block: Block): void;
onKeyDown(nabu: Nabu, event: KeyboardEvent, block: Block): boolean | symbol | void;
onSplit(nabu: Nabu, block: Block, event: Event | null, data: SplitData): void | { block: Block };
[hook: string]: (nabu: Nabu, ...args: any[]) => any;
}Properties
| Property | Type | Description |
|---|---|---|
onAfterTransaction | (nabu: Nabu, ...args: any[]) => void | n/a |
onBeforeInput | (nabu: Nabu, event: InputEvent, block: Block) => boolean | symbol | void | n/a |
onBeforeMerge | (nabu: Nabu, survivor: Block, victim: Block) => symbol | void | n/a |
onBeforeTransaction | (nabu: Nabu, ...args: any[]) => void | n/a |
onBlockCreate | (nabu: Nabu, block: Block) => void | n/a |
onBlockDelete | (nabu: Nabu, block: Block) => void | n/a |
onBlockUpdate | (nabu: Nabu, block: Block) => void | n/a |
onInit | (nabu: Nabu) => void | n/a |
onInput | (nabu: Nabu, event: InputEvent, block: Block) => void | n/a |
onKeyDown | (nabu: Nabu, event: KeyboardEvent, block: Block) => boolean | symbol | void | n/a |
onSplit | (nabu: Nabu, block: Block, event: Event | null, data: SplitData) => void | { block: Block } | n/a |
Source: src/lib/utils/extensions.js:153