bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
74 lines (62 loc) • 1.67 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.listenToExecutionStream = listenToExecutionStream;
function _rxjs() {
const data = require("rxjs");
_rxjs = function () {
return data;
};
return data;
}
function _logger() {
const data = _interopRequireDefault(require("../../../logger/logger"));
_logger = function () {
return data;
};
return data;
}
function listenToExecutionStream(exec, id, time = new Date()) {
_logger().default.debug(`flowsExt, createExecutionStream of ${id} started`);
let message = null;
const subscriber = new (_rxjs().ReplaySubject)();
subscriber.next({
type: 'task:start',
id,
startTime: time
});
exec.stdout.on('data', function (data) {
subscriber.next({
type: 'task:stdout',
id,
value: data.toString()
});
});
exec.stderr.on('data', function (data) {
_logger().default.error(`flowsExt, createExecutionStream of ${id} got error: ${data.toString()}`);
subscriber.next({
type: 'task:stderr',
id,
value: data.toString()
});
});
exec.on('message', function (data) {
message = data;
});
exec.on('close', function () {
_logger().default.debug(`flowsExt, createExecutionStream of ${id} completed!`);
const streamMessage = {
type: 'task:result',
id,
value: message,
startTime: time,
duration: new Date().getTime() - time.getTime(),
code: exec.code
};
subscriber.next(streamMessage);
subscriber.complete();
});
return subscriber;
}
;