Socket
Socket
Sign inDemoInstall

nfsm

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nfsm

A simple Node.js module that simulates a state machine, allowing you to define a sequence of states and state transitions with durations.


Version published
Maintainers
1
Install size
7.40 kB
Created

Readme

Source

Machine State Simulator

This is a simple Node.js module that simulates a state machine. It allows you to define a sequence of states and state transitions with durations. You can interact with the machine by manually progressing to the next state, repeating the current state, moving back to the previous state, or running through the entire sequence.

Features

  • Define a custom sequence of states.
  • Set state transitions with durations.
  • Manually progress to the next state.
  • Repeat the current state with its associated duration.
  • Move back to the previous state in the sequence.
  • Run through the entire sequence with specified durations.
  • Stop the machine and reset its state.

Installation

Copy the Machine.js file into your project directory or install it using npm i nfsm.

Usage

  1. Import the Machine class:
const Machine = require('nfsm');
  1. Create a new Machine instance and define the sequence of states:
const myMachine = new Machine();
myMachine.Sequence("OFF", "ON", "IDLE", "WAITING", "PROCESSING", "STOP");
  1. Define state transitions with durations:
myMachine.State("OFF", "ON", 1000);
myMachine.State("ON", "IDLE", 2000);
myMachine.State("IDLE", "WAITING", 2000);
myMachine.State("WAITING", "PROCESSING", 2000);
myMachine.State("PROCESSING", "STOP", 1000);
  1. Interact with the machine using the following methods:
  • myMachine.Next(): Proceed to the next state.
  • await myMachine.Repeat(): Repeat the current state with its associated duration.
  • await myMachine.Previous(): Move back to the previous state in the sequence.
  • await myMachine.Run(): Run through the sequence with specified durations.
  • myMachine.Stop(): Stop the machine and reset its state.

Example

A simple example of how to use the Machine class can be found in the example.js file. This example demonstrates how to use the available methods to interact with the machine.

To run the example, execute the following command:

node example.js

License

This project is released under the GPL-3.0 License.

Keywords

FAQs

Last updated on 16 May 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc