Skip to content

Commit

Permalink
web: fix pull failed error on downloading attachments
Browse files Browse the repository at this point in the history
  • Loading branch information
thecodrr committed Mar 21, 2024
1 parent 6acba51 commit 433e67a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
19 changes: 12 additions & 7 deletions apps/web/__tests__/chunked-stream.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,25 @@ import { consumeReadableStream } from "../src/utils/stream";
import { xxhash64 } from "hash-wasm";
import path from "path";

const CHUNK_SIZE = 512 * 1024;
const CHUNK_SIZE = 512 * 1024 + 17;
test("chunked stream should create equal sized chunks", async (t) => {
const chunks = await consumeReadableStream(
(
Readable.toWeb(
createReadStream(
path.join(__dirname, "..", "__e2e__", "data", "importer-data.zip")
)
createReadStream(path.join(__dirname, "data", "35a4b0a78dbb9260"))
) as ReadableStream<Uint8Array>
).pipeThrough(new ChunkedStream(CHUNK_SIZE))
).pipeThrough(new ChunkedStream(CHUNK_SIZE, "copy"))
);

t.expect(await Promise.all(chunks.map((a) => xxhash64(a)))).toMatchObject([
"6234b76401d9eb97",
"338834da3f6500b2"
"9a3fa91d341b245d",
"c6b5d3ec17f14a5e",
"5163243faf462ce4",
"63aca6b8a7f68476",
"cd9d082fa3015bd3"
]);

t.expect(
await Promise.all(chunks.map((a) => a.byteOffset === 0))
).toMatchObject([true, true, true, true, true]);
});
Binary file added apps/web/__tests__/data/35a4b0a78dbb9260
Binary file not shown.
6 changes: 5 additions & 1 deletion apps/web/src/utils/streams/chunked-stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ export class ChunkedStream extends TransformStream<Uint8Array, Uint8Array> {
}
},
flush(controller) {
if (backBuffer) controller.enqueue(backBuffer);
if (backBuffer) {
const buffer =
mode === "copy" ? new Uint8Array(backBuffer) : backBuffer;
controller.enqueue(buffer);
}
}
});
}
Expand Down

0 comments on commit 433e67a

Please sign in to comment.