Skip to main content

IAct

@rotorsoft/act-root


@rotorsoft/act-root / act/src / IAct

Interface: IAct<TEvents, TActions, TActor>

Defined in: libs/act/src/types/action.ts:505

Public interface for the Act orchestrator, passed to reaction handlers.

Provides typed access to action dispatch, state loading, and event querying. Construct with InferActions and InferEvents to avoid circular imports between slice files and the bootstrap module.

Example

import type { IAct, InferActions, InferEvents } from "@rotorsoft/act";

type App = IAct<
InferEvents<typeof StateA> & InferEvents<typeof StateB>,
InferActions<typeof StateA> & InferActions<typeof StateB>
>;

async function myReaction(event: ..., stream: string, app: App) {
await app.do("someAction", target, payload, event);
const snapshot = await app.load(MyState, "stream-1");
const events = await app.query_array({ stream: "stream-1" });
}

Type Parameters

TEvents

TEvents extends Schemas = Schemas

Event schemas

TActions

TActions extends Schemas = Schemas

Action schemas (maps action names to payload types)

TActor

TActor extends Actor = Actor

Actor type extending base Actor

Methods

do()

do<TKey>(action, target, payload, reactingTo?, skipValidation?): Promise<Snapshot<any, any>[]>

Defined in: libs/act/src/types/action.ts:510

Type Parameters

TKey

TKey extends string

Parameters

action

TKey

target

Target<TActor>

payload

Readonly<TActions[TKey]>

reactingTo?

Committed<Schemas, string>

skipValidation?

boolean

Returns

Promise<Snapshot<any, any>[]>


load()

load(state, stream, callback?, asOf?): Promise<Snapshot<any, any>>

Defined in: libs/act/src/types/action.ts:518

Parameters

state

string | State<any, any, any, string>

stream

string

callback?

(snapshot) => void

asOf?

AsOf

Returns

Promise<Snapshot<any, any>>


query()

query(query, callback?): Promise<{ count: number; first?: Committed<TEvents, keyof TEvents>; last?: Committed<TEvents, keyof TEvents>; }>

Defined in: libs/act/src/types/action.ts:525

Parameters

query

Query

callback?

(event) => void

Returns

Promise<{ count: number; first?: Committed<TEvents, keyof TEvents>; last?: Committed<TEvents, keyof TEvents>; }>


query_array()

query_array(query): Promise<Committed<TEvents, keyof TEvents>[]>

Defined in: libs/act/src/types/action.ts:534

Parameters

query

Query

Returns

Promise<Committed<TEvents, keyof TEvents>[]>