kibana/docs/development/plugins/expressions/public/kibana-plugin-plugins-expressions-public.execution.md
Michael Dokolin 49a18483d3
Refactor execution service to use observables underneath (#96065)
* Refactor execution service to use observables underneath
* Fix canvas plugin to initialize workspace after assets
* Update expression functions implementations to resolve observables instead of promises
2021-04-22 20:36:25 +02:00

3.5 KiB

Home > kibana-plugin-plugins-expressions-public > Execution

Execution class

Signature:

export declare class Execution<Input = unknown, Output = unknown, InspectorAdapters extends Adapters = ExpressionExecutionParams['inspectorAdapters'] extends object ? ExpressionExecutionParams['inspectorAdapters'] : DefaultInspectorAdapters> 

Constructors

Constructor Modifiers Description
(constructor)(execution) Constructs a new instance of the Execution class

Properties

Property Modifiers Type Description
context ExecutionContext<InspectorAdapters> Execution context - object that allows to do side-effects. Context is passed to every function.
contract ExecutionContract<Input, Output, InspectorAdapters> Contract is a public representation of Execution instances. Contract we can return to other plugins for their consumption.
execution ExecutionParams
expression string
input Input Initial input of the execution.N.B. It is initialized to null rather than undefined for legacy reasons, because in legacy interpreter it was set to null by default.
inspectorAdapters InspectorAdapters
result Observable<Output | ExpressionValueError> Future that tracks result or error of this execution.
state ExecutionContainer<Output | ExpressionValueError> Dynamic state of the execution.

Methods

Method Modifiers Description
cancel() Stop execution of expression.
cast(value, toTypeNames)
interpret(ast, input)
invokeChain(chainArr, input)
invokeFunction(fn, input, args)
resolveArgs(fnDef, input, argAsts)
start(input) Call this method to start execution.N.B. input is initialized to null rather than undefined for legacy reasons, because in legacy interpreter it was set to null by default.