state

First-class states

Usage no npm install needed!

<script type="module">
  import state from 'https://cdn.skypack.dev/state';
</script>

README

State.js

State is a JavaScript library for implementing first-class states on arbitrary owner objects.

A State is a module of behavior — expressed as definitions of methods, data, and/or events — that can be exhibited by its owner. The State object model provides for hierarchical, compositional, and indirect prototypal relations between States, facilitating a variety of patterns for reuse and modularity.

State object model

An owner object exhibits the behavior expressed by its current state — method calls the owner receives are automatically dispatched to methods defined or inherited by that State. Behavior of the owner is altered by executing transitions that carry its current state reference from one of its States to another.


Visit statejs.org for an introduction, with sample code, comprehensive documentation including a getting started guide and conceptual overview, API reference, and annotated source.

👋