Skip to content

PROTOCOL

WorkflowObserver

public protocol WorkflowObserver

The WorkflowObserver protocol provides an interface to receive updates during the runtime’s execution loop. All requirements are optional, and no-ops are provided by default.

Methods

sessionDidBegin(_:)

func sessionDidBegin(
    _ session: WorkflowSession
)

Indicates the start of a WorkflowSession, which tracks the life of the underlying WorkflowNode used to provide renderings for a given Workflow type and rendering key. - Parameter session: The WorkflowSession that began.

Parameters

Name Description
session The WorkflowSession that began.

sessionDidEnd(_:)

func sessionDidEnd(
    _ session: WorkflowSession
)

Marks the end of a WorkflowSession, indicating that the corresponding WorkflowNode has been removed from the tree of Workflows. - Parameter session: The WorkflowSession that ended.

Parameters

Name Description
session The WorkflowSession that ended.

workflowDidMakeInitialState(_:initialState:session:)

func workflowDidMakeInitialState<WorkflowType: Workflow>(
    _ workflow: WorkflowType,
    initialState: WorkflowType.State,
    session: WorkflowSession
)

Indicates a Workflow produced its initial state value. - Parameters: - workflow: The Workflow that just produced its initial state. - initialState: The State that was created. - session: The WorkflowSession corresponding to the backing WorkflowNode

Parameters

Name Description
workflow The Workflow that just produced its initial state.
initialState The State that was created.
session The WorkflowSession corresponding to the backing WorkflowNode

workflowWillRender(_:state:session:)

func workflowWillRender<WorkflowType: Workflow>(
    _ workflow: WorkflowType,
    state: WorkflowType.State,
    session: WorkflowSession
) -> ((WorkflowType.Rendering) -> Void)?

Called before a Workflow is queried for its latest Rendering. - Parameters: - workflow: The Workflow that is about to be render. - state: The corresponding State that will be used during the render call. - session: The WorkflowSession corresponding to the backing WorkflowNode. - Returns: An optional closure to be called immediately after the new Rendering is produced, which takes the rendering as the only parameter.

Parameters

Name Description
workflow The Workflow that is about to be render.
state The corresponding State that will be used during the render call.
session The WorkflowSession corresponding to the backing WorkflowNode.

workflowDidChange(from:to:state:session:)

func workflowDidChange<WorkflowType: Workflow>(
    from oldWorkflow: WorkflowType,
    to newWorkflow: WorkflowType,
    state: WorkflowType.State,
    session: WorkflowSession
)

Called after an existing Workflow is updated. - Parameters: - oldWorkflow: The previous Workflow - newWorkflow: The new Workflow - state: The state after the update has occurred. - session: The WorkflowSession corresponding to the backing WorkflowNode.

Parameters

Name Description
oldWorkflow The previous Workflow
newWorkflow The new Workflow
state The state the update has occurred.
session The WorkflowSession corresponding to the backing WorkflowNode.

workflowDidReceiveAction(_:workflow:session:)

func workflowDidReceiveAction<Action: WorkflowAction>(
    _ action: Action,
    workflow: Action.WorkflowType,
    session: WorkflowSession
)

Called after a WorkflowAction is received, but before it has been handled and propagated up the tree. - Parameters: - action: The action that was received. - session: The WorkflowSession corresponding to the backing WorkflowNode.

Parameters

Name Description
action The action that was received.
session The WorkflowSession corresponding to the backing WorkflowNode.

workflowWillApplyAction(_:workflow:state:session:)

func workflowWillApplyAction<Action: WorkflowAction>(
    _ action: Action,
    workflow: Action.WorkflowType,
    state: Action.WorkflowType.State,
    session: WorkflowSession
) -> ((Action.WorkflowType.State, Action.WorkflowType.Output?) -> Void)?

Called when a WorkflowAction will be applied to its corresponding Workflow’s State - Parameters: - action: The action that will be applied. - workflow: The action’s corresponding Workflow. - state: The state to which the action will be applied. - session: The WorkflowSession corresponding to the backing WorkflowNode. - Returns: An optional closure to be called immediately after the action is applied to the State, and an optional Output has been produced. The closure takes the updated state and optional output as its arguments.

Parameters

Name Description
action The action that will be applied.
workflow The action’s corresponding Workflow.
state The state to which the action will be applied.
session The WorkflowSession corresponding to the backing WorkflowNode.