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:433

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:438

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:446

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:453

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:462

Parameters

query

Query

Returns

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