saxi
Version:
Drive the AxiDraw pen plotter
33 lines • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegexParser = void 0;
require("web-streams-polyfill/polyfill");
class RegexParser extends TransformStream {
constructor(opts) {
if (opts.regex === undefined) {
throw new TypeError('"options.regex" must be a regular expression pattern or object');
}
if (!(opts.regex instanceof RegExp)) {
opts.regex = new RegExp(opts.regex);
}
const regex = opts.regex;
let data = '';
const decoder = new TextDecoder();
super({
transform(chunk, controller) {
const newData = data + decoder.decode(chunk);
const parts = newData.split(regex);
data = parts.pop();
parts.forEach(part => {
controller.enqueue(part);
});
},
flush(controller) {
controller.enqueue(data);
data = '';
}
});
}
}
exports.RegexParser = RegexParser;
//# sourceMappingURL=regex-transform-stream.js.map