Skip to content

Hooks

Hooks allow plugins and integrations to observe or modify behavior at well-defined points in the pipeline.

Use the sections below to find the hook you need, then tap it from the corresponding .hooks object.

Access pattern: asyncNode.hooks.<name>

HookTypeSignature
onAsyncNodeErrorSyncBailHook[Error, Node.Async], any
Sync hook to manage errors coming from the onAsyncNode hook. Return a fallback node or null to render a fallback. The first argument of passed in the call is the error thrown.

Access pattern: asyncNodePlugin.hooks.<name>

HookTypeSignature
onAsyncNodeErrorSyncBailHook[Error, Node.Async], any
Sync hook to manage errors coming from the onAsyncNode hook. Return a fallback node or null to render a fallback. The first argument of passed in the call is the error thrown.

Access pattern: beaconPlugin.hooks.<name>

HookTypeSignature
cancelBeaconSyncBailHook[HookArgs], boolean
publishBeaconSyncHook[any]

Access pattern: bindingParser.hooks.<name>

HookTypeSignature
beforeResolveNodeSyncWaterfallHook[AnyNode, BeforeResolveNodeContext]
skipOptimizationSyncBailHook[string], boolean

Access pattern: dataController.hooks.<name>

HookTypeSignature
deformatSyncWaterfallHook[any, BindingInstance]
formatSyncWaterfallHook[any, BindingInstance]
onDeleteSyncHook[any]
onGetSyncHook[any, any]
onSetSyncHook[BatchSetTransaction]
onUpdateSyncHook[Updates, DataModelOptions | undefined]
resolveSyncWaterfallHook
resolveDataStagesSyncWaterfallHook[DataPipeline]
resolveDefaultValueSyncBailHook[BindingInstance], any
serializeSyncWaterfallHook[any]

Access pattern: expressionEvaluator.hooks.<name>

HookTypeSignature
beforeEvaluateSyncWaterfallHook[ExpressionType, HookOptions]
onErrorSyncBailHook[Error], true
resolveSyncWaterfallHook[any, ExpressionNode, HookOptions]
resolveOptionsSyncWaterfallHook[HookOptions]

Access pattern: flowController.hooks.<name>

HookTypeSignature
flowSyncHook[FlowInstance], Record<string, any>

Access pattern: flow.hooks.<name>

HookTypeSignature
afterTransitionSyncHook[FlowInstance], Record<string, any>
A callback to run actions after a transition occurs
beforeStartSyncBailHook[NavigationFlow], NavigationFlow, Record<string, any>
beforeTransitionSyncWaterfallHook[ ( | NavigationFlowViewState | NavigationFlowFlowState | NavigationFlowActionState | NavigationFlowAsyncActionState | NavigationFlowExternalState ), string, ], Record<string, any>
A chance to manipulate the flow-node used to calculate the given transition used
onEndSyncHook[any], Record<string, any>
A callback when the onEnd node was present
onStartSyncHook[any], Record<string, any>
A callback when the onStart node was present
resolveTransitionNodeSyncWaterfallHook[NavigationFlowState], Record<string, any>
A chance to manipulate the flow-node calculated after a transition
skipTransitionSyncBailHook[NamedState | undefined], boolean | undefined, Record<string, any>
A hook to intercept and block a transition
transitionSyncHook[NamedState | undefined, NamedState], Record<string, any>
A callback when a transition from 1 state to another was made

Access pattern: metricsCorePlugin.hooks.<name>

HookTypeSignature
onFlowBeginSyncHook[PlayerFlowMetrics]
onFlowEndSyncHook[PlayerFlowMetrics]
onInteractiveSyncHook[Timing, PlayerFlowMetrics]
onNodeEndSyncHook[NodeMetrics | NodeRenderMetrics]
onNodeStartSyncHook[NodeMetrics | NodeRenderMetrics]
onRenderEndSyncHook[Timing, NodeRenderMetrics, PlayerFlowMetrics]
onRenderStartSyncHook[Timing, NodeRenderMetrics, PlayerFlowMetrics]
onUpdateSyncHook[PlayerFlowMetrics]
onUpdateEndSyncHook[Timing, NodeRenderMetrics, PlayerFlowMetrics]
onUpdateStartSyncHook[Timing, NodeRenderMetrics, PlayerFlowMetrics]
resolveRequestTimeSyncBailHook[], number

Access pattern: parser.hooks.<name>

HookTypeSignature
onCreateASTNodeSyncWaterfallHook[Node.Node | undefined | null, object]
A callback to interact with an AST after we parse it into the AST
onParseObjectSyncWaterfallHook[object, NodeType]
A hook to interact with an object before parsing it into an AST
parseNodeSyncBailHook[ obj: object, nodeType: Node.ChildrenTypes, parseOptions: ParseObjectOptions, childOptions?: ParseObjectChildOptions, ], Node.Node | Node.Child[]
A hook to call when parsing an object into an AST node

Access pattern: pipelinedDataModel.hooks.<name>

HookTypeSignature
onSetSyncHook[BatchSetTransaction]

Access pattern: player.hooks.<name>

HookTypeSignature
bindingParserSyncHook[BindingParser], Record<string, any>
Manages parsing binding
dataControllerSyncHook[DataController], Record<string, any>
The hook that creates and manages data
expressionEvaluatorSyncHook[ExpressionEvaluator], Record<string, any>
Called when an expression evaluator was created
flowControllerSyncHook[FlowController], Record<string, any>
The hook that fires every time we create a new flowController (a new Content blob is passed in)
onEndSyncHook[], Record<string, any>
A hook for when the flow ends either in success or failure
onStartSyncHook[Flow<Asset<string>>], Record<string, any>
A hook to access the current flow
resolveFlowContentSyncWaterfallHook[Flow<Asset<string>>], Record<string, any>
Mutate the Content flow before starting
schemaSyncHook[SchemaController], Record<string, any>
Called after the schema is created for a flow
stateSyncHook[PlayerFlowState], Record<string, any>
A that’s called for state changes in the flow execution
transformContentSyncWaterfallHook[unknown, ContentMeta], Record<string, any>
Transform raw input content into a Player Flow before any state is set up. Fires at the top of Player.start() — after plugins are applied, before resolveFlowContent. Plugins tap this and inspect meta.format (and optionally meta.version) to decide whether to convert. Plugins that don’t handle the format pass the content through unchanged.
validationControllerSyncHook[ValidationController], Record<string, any>
Manages validations (schema and x-field )
viewSyncHook[ViewInstance], Record<string, any>
A hook called every-time there’s a new view. This is equivalent to the view hook on the view-controller
viewControllerSyncHook[ViewController], Record<string, any>
The hook that updates/handles views

Access pattern: resolveBindingAST.hooks.<name>

HookTypeSignature
beforeResolveNodeSyncWaterfallHook[AnyNode, Required<NormalizedResult> & ResolveBindingASTOptions]
A hook for transforming a node before fully resolving it

Access pattern: resolver.hooks.<name>

HookTypeSignature
afterNodeUpdateSyncHook[Node.Node, Node.Node | undefined, NodeUpdate]
Called at the very end of a node’s tree being updated
afterResolveSyncWaterfallHook[any, Node.Node, Resolve.NodeResolveOptions]
A hook to transform the resolved value of an AST node. This runs after all children nodes are resolved
afterUpdateSyncHook[any]
An event emitted after calculating the next update
beforeResolveSyncWaterfallHook[Node.Node | null, Resolve.NodeResolveOptions]
A hook to transform the AST node into a new AST node before resolving it
beforeUpdateSyncHook[Set<BindingInstance> | undefined]
An event emitted before calculating the next update
resolveSyncWaterfallHook[any, Node.Node, Resolve.NodeResolveOptions]
A hook to transform an AST node into it’s resolved value. This runs before any children are resolved
resolveOptionsSyncWaterfallHook[Resolve.NodeResolveOptions, Node.Node]
The options passed to a node to resolve it to an object
skipResolveSyncWaterfallHook[boolean, Node.Node, Resolve.NodeResolveOptions]
A hook to allow skipping of the resolution tree for a specific node

Access pattern: schema.hooks.<name>

HookTypeSignature
resolveTypeForBindingSyncWaterfallHook[SchemaType.DataTypes | undefined, BindingInstance]

Access pattern: tapableLogger.hooks.<name>

HookTypeSignature
debugSyncHook[Array<any>]
errorSyncHook[Array<any>]
infoSyncHook[Array<any>]
logSyncHook[Severity, Array<any>]
traceSyncHook[Array<any>]
warnSyncHook[Array<any>]

Access pattern: templatePlugin.hooks.<name>

HookTypeSignature
resolveTemplateSubstitutionsSyncWaterfallHook[TemplateSubstitution[], TemplateItemInfo]

Access pattern: validation.hooks.<name>

HookTypeSignature
createValidatorRegistrySyncHook[ValidatorRegistry]
onAddValidationSyncWaterfallHook[ValidationResponse, BindingInstance]
onRemoveValidationSyncWaterfallHook[ValidationResponse, BindingInstance]
onTrackBindingSyncHook[BindingInstance]
resolveValidationProvidersSyncWaterfallHook[ Array<{ source: string; provider: ValidationProvider; }>, ], { view?: ViewInstance; }

Access pattern: view.hooks.<name>

HookTypeSignature
onUpdateSyncHook[ViewType]
Hook every time there is an update to this view instance
parserSyncHook[Parser]
Hook to retrieve the parser used for this view
resolverSyncHook[Resolver]
Hook to retrieve the resolver used for this view
templatePluginSyncHook[TemplatePlugin]
Hook to retrieve the template plugin used for this view

Access pattern: viewController.hooks.<name>

HookTypeSignature
resolveViewSyncWaterfallHook[View | undefined, string, NavigationFlowViewState]
Do any processing before the View instance is created
viewSyncHook[ViewInstance]
The hook right before the View starts resolving. Attach anything custom here

Access pattern: view.hooks.<name>

HookTypeSignature
onUpdateSyncHook[ViewType]
Hook every time there is an update to this view instance
parserSyncHook[Parser]
Hook to retrieve the parser used for this view
resolverSyncHook[Resolver]
Hook to retrieve the resolver used for this view
templatePluginSyncHook[TemplatePlugin]
Hook to retrieve the template plugin used for this view