@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
49 lines (39 loc) • 1.61 kB
JavaScript
;
var _ws = _interopRequireDefault(require("ws"));
var _rxjs = require("rxjs");
var _sockets = require("./shared/sockets");
var _joi = _interopRequireDefault(require("joi"));
var _operators = require("rxjs/operators");
var _shared = require("./shared");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const url = 'http://localhost:4010/events';
async function start() {
const logger = (0, _shared.defaultBasicLogger)();
const ws = new _ws.default(url);
const socket = Object.assign(ws, {
id: 'test-socket',
closingByKit: false
});
process.stdin.setEncoding('utf8');
const data = (0, _rxjs.fromEvent)(process.stdin, 'data');
const allData = (0, _sockets.dataStreamFromSocket)(socket);
const actions = (0, _sockets.actionStreamFromSocket)(allData, () => _joi.default.object());
const jobs = (0, _rxjs.merge)(actions.pipe((0, _operators.concatMap)(action => {
logger.log(' -> Received', action);
return (0, _rxjs.empty)();
})));
const subscriptions = new _rxjs.Subscription();
subscriptions.add((0, _sockets.pipeStreamIntoSocket)(data.pipe((0, _operators.map)(text => ({
type: 'TEST',
text: text.replace('\n', '')
})), (0, _operators.tap)(action => {
logger.log(' <- Sending', action);
})), socket));
return jobs.pipe((0, _operators.finalize)(() => {
subscriptions.unsubscribe();
}), (0, _operators.ignoreElements)(), (0, _operators.endWith)()).toPromise();
}
start().catch(err => {
(0, _shared.defaultBasicLogger)().error('', err);
});
//# sourceMappingURL=hitSocket.js.map