UNPKG

@hexworks/cobalt-state

Version:

State machine utility for Cobalt.

27 lines 1.04 kB
import { EventType } from ".."; import { WaitingForInputData } from "./schema"; import { executeWithContext, newState, state } from "../.."; import { FillingForm } from "./FillingForm"; import { Reporting } from "./Reporting"; export const WaitingForInput = state("WaitingForInput") .withSchema(WaitingForInputData) .onEntry(executeWithContext(({ userId, id }, { scheduler }) => scheduler.schedule({ type: "Bump", data: { userId: userId }, name: `Bump user ${userId}`, scheduledAt: new Date(), correlationId: id, }))) .onEvent(EventType.BumpSent, (transition) => transition .withCondition(({ bumpCount }) => bumpCount < 3) .doTransition((state) => newState(WaitingForInput, { ...state, bumpCount: state.bumpCount + 1, })) .otherwise((state) => newState(Reporting, { ...state, data: "no data", }))) .onEvent(EventType.UserInitiatedForm, (transition) => transition.transitionTo((state) => newState(FillingForm, state))) .build(); //# sourceMappingURL=WaitingForInput.js.map