@jawis/stdio-filter
Version:
Filter the stdio from console applications.
37 lines (36 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeStdioFilter = void 0;
const internal_1 = require("./internal");
/**
*
*/
const makeStdioFilter = (deps) => {
const mapLine = (0, internal_1.makeMapLine)(deps);
//make include line
const includeLine = (0, internal_1.makeIncludeLine)(deps);
//outputter
let previousWasDot = false;
const outputLine = (rawLine) => {
if (rawLine) {
let line = mapLine(rawLine);
//map line before output
if (deps.mapLineBeforeOutput) {
line = deps.mapLineBeforeOutput(line);
}
deps.onLineShown(line);
if (previousWasDot) {
deps.streamOutput("\n");
}
deps.streamOutput(line);
previousWasDot = false;
}
else if (deps.emitDotForIgnoredLines === undefined ||
deps.emitDotForIgnoredLines) {
deps.streamOutput(".");
previousWasDot = true;
}
};
return (0, internal_1.makeStdioLinearizer_old)(outputLine, includeLine, deps.timeout);
};
exports.makeStdioFilter = makeStdioFilter;