Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

simple-statemachine

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple-statemachine

Super simple Javascript state machine.

  • 1.0.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by200%
Maintainers
1
Weekly downloads
 
Created
Source

SimpleStateMachine

State machines are simple yet powerful. This one aims to be as simple as possible. No external dependencies.

Install

bower install simple-state-machine
npm install simple-statemachine

Build

To build and view locally, first clone the project and then:

npm install
grunt serve

That will start a server at localhost:1337 and load the examples page.

Usage

See examples folder for usage. The example using Angular has a side-by-side comparison of using SimpleStateMachine vs. not in a pretty typical use-case. See .js file code comments for documentation.

Why?

One of the primary things front end Javascript deals with is setting and managing the state of different objects and exposing that state to the DOM. There's a lot of complexity to this: not all states can be universally reached from all other states, other objects need to be notified when a states has been entered/left, only one state can be "active" at a time, etc. I've found that this complexity can be reduced by using a state machine to manage it. This is because:

  • The pub/sub pattern allows for greater seperation of concerns; and pub/sub is at the heart of this state machine.
  • Having a common API for managing state within an app makes you more productive because you don't reinvent the wheel every time you're working on state related logic.
  • Explicitly defining state makes it easier to manage rather than relying on implicitly defined state, e.g. check if some object has data, if it doesn't, it must be in an error state, so show an error message. Subscribing to the defined error state event and then showing an error message is much simpler to reason about.

This article also explains why state machines should be used.

Keywords

FAQs

Package last updated on 11 Sep 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc