File: cwlNodeEngineWithContext.js

package info (click to toggle)
cwl-utils 0.37-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 5,156 kB
  • sloc: python: 88,920; makefile: 141; javascript: 91
file content (37 lines) | stat: -rw-r--r-- 895 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"use strict";
process.stdin.setEncoding("utf8");
var incoming = "";
var firstInput = true;
var context = {};

process.stdin.on("data", function(chunk) {
  incoming += chunk;
  var i = incoming.indexOf("\n");
  while (i > -1) {
    try{
      var input = incoming.substr(0, i);
      incoming = incoming.substr(i+1);
      var fn = JSON.parse(input);
      if(firstInput){
        context = require("vm").runInNewContext(fn, {});
      }
      else{
        process.stdout.write(JSON.stringify(require("vm").runInNewContext(fn, context)) + "\n");
      }
    }
    catch(e){
      console.error(e);
    }
    if(firstInput){
      firstInput = false;
    }
    else{
      /*strings to indicate the process has finished*/
      console.log("r1cepzbhUTxtykz5XTC4");
      console.error("r1cepzbhUTxtykz5XTC4");
    }

    i = incoming.indexOf("\n");
  }
});
process.stdin.on("end", process.exit);