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

38 lines
1.0 KiB
JavaScript

'use strict';
var axon = require('axon');
var requester = axon.socket('req');
var config = require('../config');
var undefsafe = require('undefsafe');
if (!undefsafe(config, 'processor.address')) {
throw new Error('no processor address');
} else {
var connected = false;
requester.bind(config.processor.address);
requester.on('bind', function () {
connected = true;
console.log('processor pushing locally, expecting pennyworth to pull');
// not sure when the close event is called
}).on('close', function () {
connected = false;
console.log('processor connection stopped');
});
module.exports = function (language, data) {
data.language = language;
if (connected) {
return new Promise(function (resolve, reject) {
requester.send(data, function (response) {
if (response.error) {
reject(response.error);
} else {
resolve(response.output);
}
});
});
} else {
return Promise.reject('Processor server unreachable');
}
};
}