Files
evento/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js
2026-03-18 14:55:56 -03:00

20 lines
760 B
JavaScript

import { WebStreamByobReader } from './WebStreamByobReader.js';
import { WebStreamDefaultReader } from './WebStreamDefaultReader.js';
export function makeWebStreamReader(stream) {
try {
const reader = stream.getReader({ mode: "byob" });
if (reader instanceof ReadableStreamDefaultReader) {
// Fallback to default reader in case `mode: byob` is ignored
return new WebStreamDefaultReader(reader);
}
return new WebStreamByobReader(reader);
}
catch (error) {
if (error instanceof TypeError) {
// Fallback to default reader in case `mode: byob` rejected by a `TypeError`
return new WebStreamDefaultReader(stream.getReader());
}
throw error;
}
}