@xstate/fsm
    TypeScript icon, indicating that this package has built-in type declarations

    1.6.3 • Public • Published

    @xstate/fsm


    XState FSM
    XState for Finite State Machines

    This package contains a minimal, 1kb implementation of XState for finite state machines.

    Features

    @xstate/fsm XState
    Finite states
    Initial state
    Transitions (object)
    Transitions (string target)
    Delayed transitions
    Eventless transitions
    Nested states
    Parallel states
    History states
    Final states
    Context
    Entry actions
    Exit actions
    Transition actions
    Parameterized actions
    Transition guards
    Parameterized guards
    Spawned actors
    Invoked actors
    • Finite states (non-nested)
    • Initial state
    • Transitions (object or strings)
    • Context
    • Entry actions
    • Exit actions
    • Transition actions
    • state.changed

    If you want to use statechart features such as nested states, parallel states, history states, activities, invoked services, delayed transitions, transient transitions, etc. please use XState.

    Quick start

    Installation

    npm i @xstate/fsm

    Usage (machine)

    import { createMachine } from '@xstate/fsm';
    
    const toggleMachine = createMachine({
      id: 'toggle',
      initial: 'inactive',
      states: {
        inactive: { on: { TOGGLE: 'active' } },
        active: { on: { TOGGLE: 'inactive' } }
      }
    });
    
    const { initialState } = toggleMachine;
    
    const toggledState = toggleMachine.transition(initialState, 'TOGGLE');
    toggledState.value;
    const untoggledState = toggleMachine.transition(toggledState, 'TOGGLE');
    untoggledState.value;
    // => 'inactive'

    Usage (service)

    import { createMachine, interpret } from '@xstate/fsm';
    
    const toggleMachine = createMachine({});
    
    const toggleService = interpret(toggleMachine).start();
    
    toggleService.subscribe((state) => {
      console.log(state.value);
    });
    
    toggleService.send('TOGGLE');
    toggleService.send('TOGGLE');
    toggleService.stop();

    Install

    npm i @xstate/fsm

    DownloadsWeekly Downloads

    94,790

    Version

    1.6.3

    License

    MIT

    Unpacked Size

    54 kB

    Total Files

    18

    Last publish

    Collaborators

    • xstate-release-bot
    • andarist
    • davidkpiano