streaming zip archiver/extractor jsr.io/@mary/zip
typescript jsr
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: type issues

mary.my.id 440cb193 78fc682a

verified
+18 -14
+5 -5
lib/reader/common.ts
··· 5 5 * @param data the data to read from 6 6 * @returns a reader for the data 7 7 */ 8 - export function fromUint8Array(data: Uint8Array): Reader { 8 + export function fromUint8Array(data: Uint8Array<ArrayBuffer>): Reader { 9 9 const totalLength = data.length; 10 10 11 11 return { 12 12 length: totalLength, 13 13 // deno-lint-ignore require-await 14 - async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>> { 14 + async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>> { 15 15 const endOffset = length !== undefined ? offset + length : totalLength; 16 16 17 17 const slice = data.subarray(offset, endOffset); ··· 19 19 20 20 let position = 0; 21 21 22 - return new ReadableStream<Uint8Array>({ 22 + return new ReadableStream<Uint8Array<ArrayBuffer>>({ 23 23 pull(controller) { 24 24 if (position >= sliceLength) { 25 25 controller.close(); ··· 53 53 return { 54 54 length: totalLength, 55 55 // deno-lint-ignore require-await 56 - async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>> { 56 + async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>> { 57 57 const endOffset = length !== undefined ? offset + length : totalLength; 58 58 59 59 const slice = blob.slice(offset, endOffset); ··· 97 97 98 98 return { 99 99 length: totalLength, 100 - async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>> { 100 + async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>> { 101 101 const endOffset = length !== undefined ? offset + length - 1 : totalLength - 1; 102 102 103 103 const req = opts.input;
+2 -2
lib/reader/deno.ts
··· 19 19 return { 20 20 length: totalLength, 21 21 // deno-lint-ignore require-await 22 - async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>> { 22 + async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>> { 23 23 let remaining = length !== undefined ? length : totalLength - offset; 24 24 25 - return new ReadableStream<Uint8Array>({ 25 + return new ReadableStream<Uint8Array<ArrayBuffer>>({ 26 26 type: 'bytes', 27 27 async pull(controller) { 28 28 using _lock = await mutex.acquire();
+2 -2
lib/reader/node.ts
··· 18 18 return { 19 19 length: totalLength, 20 20 // deno-lint-ignore require-await 21 - async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>> { 21 + async read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>> { 22 22 let remaining = length !== undefined ? length : totalLength - offset; 23 23 24 - return new ReadableStream<Uint8Array>({ 24 + return new ReadableStream<Uint8Array<ArrayBuffer>>({ 25 25 type: 'bytes', 26 26 async pull(controller) { 27 27 const size = Math.min(controller.desiredSize!, remaining);
+1 -1
lib/reader/types.ts
··· 5 5 /** total length of the data source */ 6 6 length: number; 7 7 /** reads data from the specified offset and length */ 8 - read(offset: number, length?: number): Promise<ReadableStream<Uint8Array>>; 8 + read(offset: number, length?: number): Promise<ReadableStream<Uint8Array<ArrayBuffer>>>; 9 9 }
+2 -2
lib/unzip.ts
··· 176 176 * reads the entry content as bytes 177 177 * @returns the content as Uint8Array 178 178 */ 179 - async bytes(): Promise<Uint8Array> { 179 + async bytes(): Promise<Uint8Array<ArrayBuffer>> { 180 180 return await read(this.body, this.size); 181 181 } 182 182 ··· 185 185 * @returns an ArrayBuffer 186 186 */ 187 187 async arrayBuffer(): Promise<ArrayBuffer> { 188 - const bytes = await this.bytes() as Uint8Array<ArrayBuffer>; 188 + const bytes = await this.bytes(); 189 189 190 190 // if bytes covers the entire buffer, return it directly 191 191 if (bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength) {
+5 -2
lib/utils/buffer.ts
··· 3 3 export const textEncoder = new TextEncoder(); 4 4 export const textDecoder = new TextDecoder(); 5 5 6 - export function concat(arrays: Uint8Array[], size?: number): Uint8Array { 6 + export function concat(arrays: Uint8Array[], size?: number): Uint8Array<ArrayBuffer> { 7 7 let written = 0; 8 8 9 9 // deno-lint-ignore prefer-const ··· 29 29 return buffer; 30 30 } 31 31 32 - export async function read(stream: ReadableStream<Uint8Array>, size: number): Promise<Uint8Array> { 32 + export async function read( 33 + stream: ReadableStream<Uint8Array>, 34 + size: number, 35 + ): Promise<Uint8Array<ArrayBuffer>> { 33 36 const buffer = new Uint8Array(size); 34 37 35 38 let read = 0;
+1
lib/zip.ts
··· 202 202 }); 203 203 } 204 204 205 + // @ts-expect-error: I don't knowwww 205 206 yield* stream.pipeThrough(new CompressionStream('deflate-raw')).pipeThrough( 206 207 new TransformStream({ 207 208 transform(chunk, controller) {