moleculer-state-machine v0.3.0

Moleculer State Machine
Moleculer State Machine is an add on for the Moleculer microservices framework that allows services to be extended with finite-state machine behavior. It does so by acting as a high level wrapper for javascript-state-machine.
Basic Usage
Moleculer State Machine will look in the service settings for the state machine
options:
const StateMachine = require("moleculer-state-machine");
{
name: "service-with-state-machine",
mixins: [
StateMachine
],
settings: {
initialState: "new",
stateTransitions: [
{name: "age", from: "new", to: "old"}
]
}
} In this example calling age() on the service will trigger a transition from "new"
to "old".
Delegations
The mixin delegates the methods is, can, cannot, transitions,
allTransitions, allStates, and the state property to an internal instance of
javascript-state-machine that is created on service creation.
Events
The mixin emits all javascript-stage-machine events as service events prefixed by
the service name. The onBeforeTransition event for example will emit on the broker
test.onBeforeTransition. The event payload will be as follows:
{
event: ..., // the name fo the event
transition: ..., // the name of the transition function
from: ... // the state being transitioned from
to: ... // the state being transitioned to
}See javascript-state-machine lifecylce events for more details.
Callbacks
Methods can be defined on the service that will be called when a specific state machine event occurs. These callbacks are called with the same arguments as as events.
See javascript-state-machine lifecylce events for more details.
License
Moleculer State Machine is available under the MIT license](https://tldrlegal.com/license/mit-license).