@xstate/fsm
XState for finite state machines
Last updated 5 years ago by xstate-release-bot .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install @xstate/fsm 
SYNC missed versions from official npm registry.

@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();

Current Tags

  • 3.0.0-alpha.0                                ...           alpha (4 years ago)
  • 2.0.0                                ...           latest (5 years ago)

23 Versions

  • 3.0.0-alpha.0                                ...           4 years ago
  • 2.0.0                                ...           5 years ago
  • 1.6.5                                ...           5 years ago
  • 1.6.4                                ...           5 years ago
  • 1.6.3                                ...           5 years ago
  • 1.6.2                                ...           5 years ago
  • 1.6.1                                ...           5 years ago
  • 1.6.0                                ...           6 years ago
  • 1.5.2                                ...           6 years ago
  • 1.5.1                                ...           6 years ago
  • 1.5.0                                ...           6 years ago
  • 1.4.0                                ...           7 years ago
  • 1.3.0                                ...           7 years ago
  • 1.2.0                                ...           7 years ago
  • 1.1.0                                ...           7 years ago
  • 1.0.3                                ...           7 years ago
  • 1.0.1                                ...           7 years ago
  • 1.0.0                                ...           7 years ago
  • 0.3.0                                ...           7 years ago
  • 0.2.1                                ...           7 years ago
  • 0.2.0                                ...           7 years ago
  • 0.1.1                                ...           7 years ago
  • 0.1.0                                ...           7 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 11
Last Day 1
Last Week 4
Last Month 8
Dependencies (0)
None
Dev Dependencies (9)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |