consortium
Version:
Remote control and session sharing CLI for AI coding agents
38 lines (34 loc) • 1.04 kB
JavaScript
;
var consumable = require('./consumable-jpudCE9S.cjs');
var utils = require('./utils-vmOBBBS0.cjs');
class MaybeConsumableWritableStream extends consumable.WritableStream {
constructor(sink, strategy) {
let wrappedStrategy;
if (strategy) {
wrappedStrategy = {};
if ("highWaterMark" in strategy) {
wrappedStrategy.highWaterMark = strategy.highWaterMark;
}
if ("size" in strategy) {
wrappedStrategy.size = (chunk) => {
return strategy.size(chunk instanceof consumable.Consumable ? chunk.value : chunk);
};
}
}
super({
start(controller) {
return sink.start?.(controller);
},
write(chunk, controller) {
return utils.tryConsume(chunk, (chunk2) => sink.write?.(chunk2, controller));
},
abort(reason) {
return sink.abort?.(reason);
},
close() {
return sink.close?.();
}
}, wrappedStrategy);
}
}
exports.MaybeConsumableWritableStream = MaybeConsumableWritableStream;