# run-anything

> 🏃 configuration based application development for IOT

Latest version **0.0.1** (published 2017-12-02) · ISC license · 0 weekly downloads

## Install

```sh
npm install run-anything
pnpm add run-anything
yarn add run-anything
bun add run-anything
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2017-12-02 |
| First published | 2017-06-17 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Gabriel J. Csapo |
| Maintainers | gabrielcsapo |

## Links

- npm: https://www.npmjs.com/package/run-anything
- Repository: https://github.com/gabrielcsapo/run-anything
- Homepage: https://github.com/gabrielcsapo/run-anything#readme
- Issues: https://github.com/gabrielcsapo/run-anything/issues
- npm.io page: https://npm.io/package/run-anything

## Dependencies (1)

- [debug](https://npm.io/package/debug.md) ^3.0.1

## Recent versions

- 0.0.1 (latest) — 2017-12-02
- 0.0.0 — 2017-06-17

## README

# run-anywhere

> 🏃 configuration based application development for IOT

## Installation

```
npm install run-anywhere
```

## Usage

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

> programmatic usage of run-anything

```javascript
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:

```javascript
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.

---
_Source: https://npm.io/package/run-anything · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
