Function StateMachineEntity
- StateMachineEntity<const Parameters, Entity, const Columns>(parameters, _BaseEntity?): (new () => Entity & {
fsm: {
[Column in string | number | symbol]: IStateMachine<ExtractState<Parameters, Column>, ExtractEvent<Parameters, Column>, ExtractContext<Parameters, Column>>
};
params: Parameters;
} & {
[Column in string | number | symbol]: ExtractState<Parameters, Column>
})
-
Type Parameters
-
const Parameters extends {
[Column in string | number | symbol]: IStateMachineEntityColumnParameters<any, any, any>
}
-
Entity extends BaseEntity = BaseEntity
-
const Columns extends string | number | symbol = keyof Parameters
Parameters
-
parameters: Parameters
-
Optional
_BaseEntity: (new () => Entity)
-
- new (): Entity
-
Returns Entity
Returns (new () => Entity & {
fsm: {
[Column in string | number | symbol]: IStateMachine<ExtractState<Parameters, Column>, ExtractEvent<Parameters, Column>, ExtractContext<Parameters, Column>>
};
params: Parameters;
} & {
[Column in string | number | symbol]: ExtractState<Parameters, Column>
})
-
- new (): Entity & {
fsm: {
[Column in string | number | symbol]: IStateMachine<ExtractState<Parameters, Column>, ExtractEvent<Parameters, Column>, ExtractContext<Parameters, Column>>
};
params: Parameters;
} & {
[Column in string | number | symbol]: ExtractState<Parameters, Column>
}
-
Returns Entity & {
fsm: {
[Column in string | number | symbol]: IStateMachine<ExtractState<Parameters, Column>, ExtractEvent<Parameters, Column>, ExtractContext<Parameters, Column>>
};
params: Parameters;
} & {
[Column in string | number | symbol]: ExtractState<Parameters, Column>
}
Mixin to extend your entity with state machine. Extends BaseEntity.