mirror of
https://github.com/denoland/std.git
synced 2024-11-22 04:59:05 +00:00
0f7a71f96b
* feat(encoding): adds streaming versions of several encoding methods. Adds streaming methods for: - Hex - Base32 - Base64 - Base64Url * move(encoding): streaming versions to their own modules. * fix(encoding): jsdoc examples * fix(encoding): error when chunk's are smaller than the minimum size. * add(encoding): Base32Hex Encoder/Decoder Streams * fix(encoding): mod.ts not exporting ./base32hex_stream.ts * hex stream * RandomSliceStream * polish * base32 * base64hex * base64 * base64url * tweak * fix --------- Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
|
|
import { assertEquals } from "@std/assert";
|
|
import { encodeBase64 } from "./base64.ts";
|
|
import { Base64DecoderStream, Base64EncoderStream } from "./base64_stream.ts";
|
|
import { RandomSliceStream } from "./_random_slice_stream.ts";
|
|
import { toText } from "@std/streams/to-text";
|
|
import { concat } from "@std/bytes/concat";
|
|
|
|
Deno.test("Base64EncoderStream() encodes stream", async () => {
|
|
const stream = (await Deno.open("./deno.lock"))
|
|
.readable
|
|
.pipeThrough(new RandomSliceStream())
|
|
.pipeThrough(new Base64EncoderStream());
|
|
|
|
assertEquals(
|
|
await toText(stream),
|
|
encodeBase64(await Deno.readFile("./deno.lock")),
|
|
);
|
|
});
|
|
|
|
Deno.test("Base64DecoderStream() decodes stream", async () => {
|
|
const stream = (await Deno.open("./deno.lock"))
|
|
.readable
|
|
.pipeThrough(new Base64EncoderStream())
|
|
.pipeThrough(new RandomSliceStream())
|
|
.pipeThrough(new Base64DecoderStream());
|
|
|
|
assertEquals(
|
|
concat(await Array.fromAsync(stream)),
|
|
await Deno.readFile("./deno.lock"),
|
|
);
|
|
});
|