1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-30 02:59:11 -05:00
denoland-deno/tests/node_compat/test/parallel/test-whatwg-readablebytestreambyob.js

70 lines
1.4 KiB
JavaScript
Raw Normal View History

// deno-fmt-ignore-file
// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
// Taken from Node 20.11.1
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
'use strict';
const common = require('../common');
const {
open,
} = require('fs/promises');
const {
Buffer,
} = require('buffer');
class Source {
async start(controller) {
this.file = await open(__filename);
this.controller = controller;
}
async pull(controller) {
const byobRequest = controller.byobRequest;
const view = byobRequest.view;
const {
bytesRead,
} = await this.file.read({
buffer: view,
offset: view.byteOffset,
length: view.byteLength
});
if (bytesRead === 0) {
await this.file.close();
this.controller.close();
}
byobRequest.respond(bytesRead);
}
get type() { return 'bytes'; }
get autoAllocateChunkSize() { return 1024; }
}
(async () => {
const source = new Source();
const stream = new ReadableStream(source);
const { emitWarning } = process;
process.emitWarning = common.mustNotCall();
try {
const reader = stream.getReader({ mode: 'byob' });
let result;
do {
result = await reader.read(Buffer.alloc(100));
} while (!result.done);
} finally {
process.emitWarning = emitWarning;
}
})().then(common.mustCall());