Neo's Personal Matrix

    st8

    3.0.1 • Public • Published

    st8 test npm

    Tiny state machine for structural describing behavior of components.

    Usage

    $ npm install st8
    

    Standalone state machine

    import State from 'st8';
    
    var state = new State({
    	// enter, exit
    	b: () => () => {},
    
    	// enter shortcut, forwards to state d
    	c: () => 'd',
    
    	// shorter cut, redirects to state a
    	d: 'a',
    
    	// any other state
    	_: 'a'
    });
    
    
    //enter state 'a', invoke corresponding callbacks
    state.set('a');
    
    //get current state
    state.get(); // 'a'

    Define stateful object property

    import State from 'st8'
    
    var state = new State({
    	a() {
    		// onenter
    		this === target //true
    	},
    
    	b() {
    		// onenter
    		this === target //true
    		return () => {
    			// onexit
    		}
    	}
    
    }, target);
    
    Object.defineProperty(target, property, {
    	set: function (value) {
    		return state.set(value);
    	},
    	get: function () {
    		return state.get();
    	}
    });

    API

    let state = new State(states [, context])

    Create a new state machine based on the states object. Optionally pass a context for callbacks.

    state.get()

    Get current state.

    state.set(value)

    Transition to a new state, invoking necessary callbacks.

    🕉

    Install

    npm i st8

    DownloadsWeekly Downloads

    417

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    16.6 kB

    Total Files

    10

    Last publish

    Collaborators

    • dfcreative
    • dy