@hyperfrontend/state-machine/actionsactions
Action creators and type constants for the async-process lifecycle.
start, cancel, pause, success, and fail are the canonical action creators consumed by the reducer to drive async-process state transitions. START, CANCEL, PAUSE, SUCCESS, and FAIL are the matching string-constant action types — exported separately so application code can reference them without re-deriving the values.
API Reference
ƒ Functions
Creates a cancel action.
Parameters
| Name | Type | Description |
|---|---|---|
§payload? | T | Optional payload data |
Returns
{ payload: T; type: string }Cancel action object
Example
Creating a cancel action
const action = cancel({ reason: 'user-requested' })
// => { type: 'CANCEL', payload: { reason: 'user-requested' } }Creates a fail action.
Parameters
| Name | Type | Description |
|---|---|---|
§error? | any | Optional error information |
Returns
{ error: any; type: string }Fail action object
Example
Creating a fail action
const action = fail(new Error('Network timeout'))
// => { type: 'FAIL', error: Error('Network timeout') }Creates a pause action.
Parameters
| Name | Type | Description |
|---|---|---|
§payload? | T | Optional payload data |
Returns
{ payload: T; type: string }Pause action object
Example
Creating a pause action
const action = pause({ resumeAt: Date.now() + 5000 })
// => { type: 'PAUSE', payload: { resumeAt: 1712345678 } }Creates a start action.
Parameters
| Name | Type | Description |
|---|---|---|
§payload? | T | Optional payload data |
Returns
{ payload: T; type: string }Start action object
Example
Creating a start action
const action = start({ taskId: 'download-123' })
// => { type: 'START', payload: { taskId: 'download-123' } }Creates a success action.
Parameters
| Name | Type | Description |
|---|---|---|
§payload? | T | Optional payload data |
Returns
{ payload: T; type: string }Success action object
Example
Creating a success action
const action = success({ result: 'file-downloaded' })
// => { type: 'SUCCESS', payload: { result: 'file-downloaded' } }