INNER CODE UNIT · JavaScript
createOutputFilter
bastillion-io/Bastillion · src/main/webapp/_res/js/terminal-output.js:10
function createOutputFilter() {
var pending = '';
return function (chunk) {
var input = pending + chunk;
pending = '';
markers.forEach(function (marker) { input = input.split(marker).join(''); });
// Hold only an exact prefix of a known marker, never ordinary text.
var keep = 0;
markers.forEach(function (marker) {
for (var size = 1; size < marker.length && size <= input.length; size++) {
if (input.endsWith(marker.slice(0, size))) keep = Math.max(keep, size);
}
});
if (keep) { pending = input.slice(-keep); input = input.slice(0, -keep); }
return input;
};
}
if (typeof module !== 'undefined' && module.exports) module.exports = createOutputFilter;