https://github.com/gabrielcsapo/run-anything
🏃 configuration based application development for IOT
https://github.com/gabrielcsapo/run-anything
iot javascript product
Last synced: over 1 year ago
JSON representation
🏃 configuration based application development for IOT
- Host: GitHub
- URL: https://github.com/gabrielcsapo/run-anything
- Owner: gabrielcsapo
- License: mit
- Created: 2017-06-17T02:07:03.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-02T03:48:50.000Z (over 8 years ago)
- Last Synced: 2025-03-15T01:53:29.317Z (over 1 year ago)
- Topics: iot, javascript, product
- Language: JavaScript
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# run-anywhere
> 🏃 configuration based application development for IOT
[](https://www.npmjs.com/package/run-anything)
[](https://travis-ci.org/gabrielcsapo/run-anything)
[](https://lcov-server.gabrielcsapo.com/coverage/github%2Ecom/gabrielcsapo/run-anything)
[](https://starbuck.gabrielcsapo.com/github/gabrielcsapo/run-anything)
[](https://starbuck.gabrielcsapo.com/github/gabrielcsapo/run-anything#info=devDependencies)
[]()
[]()
## 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.