mirror of
https://github.com/denoland/deno.git
synced 2024-11-23 15:16:54 -05:00
parent
92455a0b67
commit
e931c53a23
4 changed files with 8 additions and 13 deletions
10
buffer.ts
10
buffer.ts
|
@ -120,10 +120,7 @@ export class Buffer implements Reader, Writer {
|
|||
* is drained. The return value n is the number of bytes read. If the
|
||||
* buffer has no data to return, eof in the response will be true.
|
||||
*/
|
||||
async read(p: ArrayBufferView): Promise<ReadResult> {
|
||||
if (!(p instanceof Uint8Array)) {
|
||||
throw Error("Only Uint8Array supported");
|
||||
}
|
||||
async read(p: Uint8Array): Promise<ReadResult> {
|
||||
if (this.empty()) {
|
||||
// Buffer is empty, reset to recover space.
|
||||
this.reset();
|
||||
|
@ -139,11 +136,8 @@ export class Buffer implements Reader, Writer {
|
|||
return { nread, eof: false };
|
||||
}
|
||||
|
||||
async write(p: ArrayBufferView): Promise<number> {
|
||||
async write(p: Uint8Array): Promise<number> {
|
||||
const m = this._grow(p.byteLength);
|
||||
if (!(p instanceof Uint8Array)) {
|
||||
throw Error("Only Uint8Array supported");
|
||||
}
|
||||
return copyBytes(this.buf, p, m);
|
||||
}
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ const testOutput = encoder.encode("0123456789abcdefghijklmnopqrstuvwxy");
|
|||
class TestReader implements Reader {
|
||||
constructor(private data: Uint8Array, private stride: number) {}
|
||||
|
||||
async read(buf: ArrayBufferView): Promise<ReadResult> {
|
||||
async read(buf: Uint8Array): Promise<ReadResult> {
|
||||
let nread = this.stride;
|
||||
if (nread > this.data.byteLength) {
|
||||
nread = this.data.byteLength;
|
||||
|
|
|
@ -5,7 +5,8 @@ const addr = "0.0.0.0:8000";
|
|||
const s = serve(addr);
|
||||
console.log(`listening on http://${addr}/`);
|
||||
|
||||
const body = new TextEncoder().encode("Hello World\n");
|
||||
const body = (new TextEncoder()).encode("Hello World\n");
|
||||
|
||||
|
||||
async function main() {
|
||||
for await (const req of s) {
|
||||
|
|
|
@ -11,7 +11,7 @@ import { Reader, ReadResult } from "deno";
|
|||
export class OneByteReader implements Reader {
|
||||
constructor(readonly r: Reader) {}
|
||||
|
||||
async read(p: ArrayBufferView): Promise<ReadResult> {
|
||||
async read(p: Uint8Array): Promise<ReadResult> {
|
||||
if (p.byteLength === 0) {
|
||||
return { nread: 0, eof: false };
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ export class OneByteReader implements Reader {
|
|||
export class HalfReader implements Reader {
|
||||
constructor(readonly r: Reader) {}
|
||||
|
||||
async read(p: ArrayBufferView): Promise<ReadResult> {
|
||||
async read(p: Uint8Array): Promise<ReadResult> {
|
||||
if (!(p instanceof Uint8Array)) {
|
||||
throw Error("expected Uint8Array");
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ export class TimeoutReader implements Reader {
|
|||
count = 0;
|
||||
constructor(readonly r: Reader) {}
|
||||
|
||||
async read(p: ArrayBufferView): Promise<ReadResult> {
|
||||
async read(p: Uint8Array): Promise<ReadResult> {
|
||||
this.count++;
|
||||
if (this.count === 2) {
|
||||
throw new ErrTimeout();
|
||||
|
|
Loading…
Reference in a new issue