eval-slave

1.0.0 • Public • Published

eval-slave

Dead simple node.js evaluator controlled via standart input

Install

With npm do:

npm install eval-slave

Or install globally if you want to add the node-eval-slave executable:

npm install -g eval-slave

Usage

Check out the https://github.com/futpib/eval-slave/tree/master/examples dir

Abstract

  1. Start node-eval-slave or node ./cli.js
  2. Write JSON array of "tasks" to the process's standard input
  3. Results will be printed as a JSON array to the standard output

You can even try it from shell!

Bash

echo '[{"source":"() => \"test\""}]' | node-eval-slave

Python

See https://github.com/futpib/eval-slave/tree/master/examples/foo.py

Emacs Lisp

(probably) Coming soon at https://github.com/futpib/emacs-nodejs-slave

Example

input (js, because real json is a bit too hairy):

[{
  id: 0,
  source: (function (input) {
    return new Promise(resolve => {
      setTimeout(() => {
        resolve(`Hello, ${input}`)
      }, 1000)
    })
  }).toString(),
  arguments: ["world"]
}, {
  id: 1,
  source: "() => \"foobar\"",
}]

output (json):

[{
  "type": "queued",
  "data": {
    "id": 0
  }
}, {
  "type": "queued",
  "data": {
    "id": 1
  }
}, {
  "type": "fulfilled",
  "data": {
    "id": 1,
    "value": "foobar"
  }
}, {
  "type": "fulfilled",
  "data": {
    "id": 0,
    "value": "Hello, world"
  }
}]

Readme

Keywords

none

Package Sidebar

Install

npm i eval-slave

Weekly Downloads

1

Version

1.0.0

License

GPL-3.0+ OR MIT

Last publish

Collaborators

  • futpib