Skip to content
File

Blob: src/worker/common/webtypes.ts

typescript33 lines
1export function asBodyInit(bytes: Uint8Array): BodyInit {
2 return bytes as unknown as BodyInit;
3}
4 
5export function asBlobPart(bytes: Uint8Array): BlobPart {
6 return bytes as unknown as BlobPart;
7}
8 
9export function asBufferSource(bytes: Uint8Array): BufferSource {
10 return bytes as unknown as BufferSource;
11}
12 
13export function createBlobFromBytes(bytes: Uint8Array): Blob {
14 return new Blob([asBlobPart(bytes)]);
15}
16 
17export function asByteTransformStream(
18 stream: CompressionStream | DecompressionStream
19): TransformStream<Uint8Array, Uint8Array> {
20 return stream as unknown as TransformStream<Uint8Array, Uint8Array>;
21}
22 
23export function createDigestStream(algorithm: string): WritableStream<Uint8Array> & {
24 digest: Promise<ArrayBuffer>;
25 getWriter(): WritableStreamDefaultWriter<Uint8Array>;
26} {
27 const DigestCtor = (crypto as Crypto & { DigestStream: typeof DigestStream }).DigestStream;
28 return new DigestCtor(algorithm) as WritableStream<Uint8Array> & {
29 digest: Promise<ArrayBuffer>;
30 getWriter(): WritableStreamDefaultWriter<Uint8Array>;
31 };
32}