Naysayers Promote Misery
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    state-jacketpublic

    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

    4

    version

    0.0.3

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar