🏃 configuration based application development for IOT
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
example
lib
test
.eslintignore
.eslintrc
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
TODO.md
index.js
package.json

README.md

run-anywhere

🏃 configuration based application development for IOT

Npm Version Build Status Coverage Status Dependency Status devDependency Status npm npm

Installation

npm install run-anywhere

Usage

to get more information use DEBUG=run-anything before starting the process

programmatic usage of run-anything

const { Run } = require('run-anything');

const instance = new Run([{
  state: {
    on: 0,
    color: '#efefef'
  },
  name: 'light',
  commands: {
    'on': function(socket) {
      this.state.set('on', 1);

      socket.write('turned light on');
    },
    'off': function(socket) {
      this.state.set('on', 0);

      socket.write('turned light off');
    },
    'color [color]': function(socket, color) {
      this.state.set('color', color);

      socket.write(`changed color of light to ${color}`)
    }
  }
}]);

instance.start((server) => {
  console.log(`run-anything running at port ${instance.port}`)

  process.on('exit', () => {
    instance.close();
  });
});

running run-anything as a binary

Usage: run-anything [options]

Command:
  -h, --help, help     outputs this screen and exists the process

Options:
  -p, --port [port]     overrides the randomized port for serving application
  -c, --config [path]   the config that is to be run

The config file for run-anything would look something like:

module.exports = {
  state: {
    on: 0,
    color: '#efefef'
  },
  name: 'light',
  commands: {
    'on': function(socket) {
      this.state.set('on', 1);

      socket.write('turned light on');
    },
    'off': function(socket) {
      this.state.set('on', 0);

      socket.write('turned light off');
    },
    'color [color]': function(socket, color) {
      this.state.set('color', color);

      socket.write(`changed color of light to ${color}`)
    }
  }
};

Direction

What if building a IOT device could automatically generate a UI. Where you could ask a device for the functions and state of the device and it would respond with it.