Package-level declarations

Types

Link copied to clipboard
interface Action

Interface for actions.

Link copied to clipboard
interface Closeable

Interface for closeable resources.

Link copied to clipboard
abstract class ContinueNode(val context: FlowContext, val workflow: Workflow, val input: JsonObject, val actions: List<Action>) : Node, Closeable

Abstract class for a ContinueNode in the workflow.

Link copied to clipboard

An interface that should be implemented by classes that need to be aware of the ContinueNode. The continueNode will be injected to the classes that implement this interface.

Link copied to clipboard
data object EmptySession : Session

Object for an EmptySession. An EmptySession represents a session with no value.

Link copied to clipboard
data class ErrorNode(val context: FlowContext, val input: JsonObject = buildJsonObject { }, val message: String) : Node

Represents a failure node in the workflow.

Link copied to clipboard
data class FailureNode(val cause: Throwable) : Node

Represents an error node in the workflow.

Link copied to clipboard
class FlowContext(val flowContext: SharedContext)

Class representing the context of a flow.

Link copied to clipboard
interface Module<ModuleConfig : Any>

Interface for a Module. A Module represents a unit of functionality in the application.

Link copied to clipboard

Class for a ModuleRegistry. A ModuleRegistry represents a registry of modules in the application.

Link copied to clipboard
sealed interface Node

Sealed interface for Node. Represents a node in the workflow.

Link copied to clipboard

Enum class representing the mode of module override.

Link copied to clipboard

An interface that should be implemented by classes that need to be transformed itself to a Request.

Link copied to clipboard
interface Session

Interface for a Session. A Session represents a user's session in the application.

Link copied to clipboard

Class for a Setup. A Setup represents the setup of a module in the application.

Link copied to clipboard

Class for a SharedContext. A SharedContext represents a shared context in the application.

Link copied to clipboard
data class SuccessNode(val input: JsonObject = buildJsonObject {}, val session: Session) : Node

Represents a success node in the workflow.

Link copied to clipboard
class Workflow(val config: WorkflowConfig)

Class representing a workflow.

Link copied to clipboard
open class WorkflowConfig

DSL class for configuring a Workflow.

Functions

Link copied to clipboard
inline fun catch(block: () -> Node): Node

Tries to execute the given block and returns an Error node if an exception is thrown.

Link copied to clipboard
fun Workflow(block: WorkflowConfig.() -> Unit = {}): Workflow

Creates a new Workflow instance with the provided configuration block.