Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Moleculer logo

Moleculer State Machine

Build Status

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).

About

State Machine mixin that extends a Moleculer Service to act as a finite-state machine.

Topics

Resources

License

Packages

No packages published