blob: 3f949313f97020567f133612a00c7288416a32cb [file] [log] [blame]
'use strict';
self.recordingReadableStream = (extras = {}, strategy) => {
let controllerToCopyOver;
const stream = new ReadableStream({
start(controller) {
controllerToCopyOver = controller;
if (extras.start) {
return extras.start(controller);
}
return undefined;
},
pull(controller) {
stream.events.push('pull');
if (extras.pull) {
return extras.pull(controller);
}
return undefined;
},
cancel(reason) {
stream.events.push('cancel', reason);
stream.eventsWithoutPulls.push('cancel', reason);
if (extras.cancel) {
return extras.cancel(reason);
}
return undefined;
}
}, strategy);
stream.controller = controllerToCopyOver;
stream.events = [];
stream.eventsWithoutPulls = [];
return stream;
};
self.recordingWritableStream = (extras = {}, strategy) => {
let controllerToCopyOver;
const stream = new WritableStream({
start(controller) {
controllerToCopyOver = controller;
if (extras.start) {
return extras.start(controller);
}
return undefined;
},
write(chunk, controller) {
stream.events.push('write', chunk);
if (extras.write) {
return extras.write(chunk, controller);
}
return undefined;
},
close() {
stream.events.push('close');
if (extras.close) {
return extras.close();
}
return undefined;
},
abort(e) {
stream.events.push('abort', e);
if (extras.abort) {
return extras.abort(e);
}
return undefined;
}
}, strategy);
stream.controller = controllerToCopyOver;
stream.events = [];
return stream;
};