spawn-streaming
Version:
Formats spawn with prefix and colors
42 lines • 1.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return prefixTransform;
}
});
var _colors = /*#__PURE__*/ _interop_require_default(require("colors"));
var _readablestream = require("readable-stream");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var REGEX_NEW_LINE = /\r?\n|\r/g;
function prefixTransform(prefix, color) {
var last = '';
var createLine = function(line) {
return "".concat(_colors.default.bold(color(prefix)), ": ").concat(line, "\n");
};
return new _readablestream.Transform({
transform: function transform(chunk, _enc, callback) {
var _this = this;
var more = last + chunk.toString('utf8');
var lines = more.split(REGEX_NEW_LINE);
last = lines.pop();
lines.forEach(function(line) {
return _this.push(createLine(line));
});
callback();
},
flush: function flush() {
if (last.length) this.push(createLine(last));
last = '';
this.push(null);
}
});
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
;