The class was already implemented in "https://deno.land/std@0.144.0/streams/conversion.ts". So, I litterally lost 1 day of work! I hate myself.
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
// This module is browser compatible.
|
|
|
|
import { Buffer } from "../io/buffer.ts";
|
|
import type { Reader, ReaderSync } from "../types.d.ts";
|
|
|
|
/** Read Reader `r` until EOF (`null`) and resolve to the content as
|
|
* Uint8Array`.
|
|
*
|
|
* ```ts
|
|
* import { Buffer } from "https://deno.land/std@$STD_VERSION/io/buffer.ts";
|
|
* import { readAll } from "https://deno.land/std@$STD_VERSION/streams/read_all.ts";
|
|
*
|
|
* // Example from stdin
|
|
* const stdinContent = await readAll(Deno.stdin);
|
|
*
|
|
* // Example from file
|
|
* const file = await Deno.open("my_file.txt", {read: true});
|
|
* const myFileContent = await readAll(file);
|
|
* file.close();
|
|
*
|
|
* // Example from buffer
|
|
* const myData = new Uint8Array(100);
|
|
* // ... fill myData array with data
|
|
* const reader = new Buffer(myData.buffer);
|
|
* const bufferContent = await readAll(reader);
|
|
* ```
|
|
*/
|
|
export async function readAll(r: Reader): Promise<Uint8Array> {
|
|
const buf = new Buffer();
|
|
await buf.readFrom(r);
|
|
return buf.bytes();
|
|
}
|
|
|
|
/** Synchronously reads Reader `r` until EOF (`null`) and returns the content
|
|
* as `Uint8Array`.
|
|
*
|
|
* ```ts
|
|
* import { Buffer } from "https://deno.land/std@$STD_VERSION/io/buffer.ts";
|
|
* import { readAllSync } from "https://deno.land/std@$STD_VERSION/streams/read_all.ts";
|
|
*
|
|
* // Example from stdin
|
|
* const stdinContent = readAllSync(Deno.stdin);
|
|
*
|
|
* // Example from file
|
|
* const file = Deno.openSync("my_file.txt", {read: true});
|
|
* const myFileContent = readAllSync(file);
|
|
* file.close();
|
|
*
|
|
* // Example from buffer
|
|
* const myData = new Uint8Array(100);
|
|
* // ... fill myData array with data
|
|
* const reader = new Buffer(myData.buffer);
|
|
* const bufferContent = readAllSync(reader);
|
|
* ```
|
|
*/
|
|
export function readAllSync(r: ReaderSync): Uint8Array {
|
|
const buf = new Buffer();
|
|
buf.readFromSync(r);
|
|
return buf.bytes();
|
|
}
|