Ninja Pokémon Master

    state-jacket

    0.0.3 • Public • Published

    StateJacket JS

    Based on StateJacket by hopsoft.

    An Intuitive State Transition System for JavaScript

    State machines are awesome but can be pretty daunting as a system grows. Keeping states, transitions, & events straight can be tricky. StateJacket simplifies things by isolating the management of states & transitions. Events are left out, making it much easier to reason about what states exist and how they transition to other states.

    The examples below are somewhat contrived, but should clearly illustrate the usage.

    The Basics

    Install

    $ npm install state-jacket
    

    Define states & transitions for a simple turnstyle.

    Turnstyle

    var StateJacket = require('state-jacket');
    var states = new StateJacket.Catalog();
     
    states.add('open', 'closed', 'error');
    states.add('closed', 'open', 'error');
    states.add('error');
    states.lock();
     
    states.transitioners(); // => ['open', 'closed']
    states.terminators(); // => ['error']
     
    states.canTransition('open', 'closed'); // => true
    states.canTransition('closed', 'open'); // => true
    states.canTransition('error', 'open'); // => false
    states.canTransition('error', 'closed'); // => false

    Keywords

    none

    Install

    npm i state-jacket

    DownloadsWeekly Downloads

    7

    Version

    0.0.3

    License

    MIT

    Last publish

    Collaborators

    • brentburgoyne