Notorious Puppy Memes

    moleculer-state-machine
    TypeScript icon, indicating that this package has built-in type declarations

    0.3.0 • Public • Published

    Moleculer logo

    Moleculer State Machine

    Tests

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

    Keywords

    none

    Install

    npm i moleculer-state-machine

    DownloadsWeekly Downloads

    9

    Version

    0.3.0

    License

    MIT

    Unpacked Size

    15.7 kB

    Total Files

    12

    Last publish

    Collaborators

    • fugufish