jsbin/lib/processors/fork.js
Remy Sharp bfac12e53d chore: es6 upgrade check in
Complete package upgrades for node 7 compat
2017-04-22 15:28:56 +01:00

42 lines
943 B
JavaScript

'use strict';
var fork = require('child_process').fork;
module.exports = function (language, source) {
return new Promise(function (resolve, reject) {
var child = fork(__dirname);
var output = '';
var timeout = setTimeout(function () {
console.error(language + ' processor timeout');
child.kill();
}, 1000);
child.on('stderr', function (data) {
console.error(language + ' processor errors');
console.error(data);
});
child.on('message', function (message) {
output += message;
});
child.on('exit', function () {
clearTimeout(timeout);
try {
resolve(JSON.parse(output));
} catch (e) {
reject({
ouput: {
result: '',
errors: null
},
error: new Error('Could not parse response from', language)
});
}
});
child.send({ language: language, data: source});
});
};