django-vue3-admin-web/node_modules/@smithy/hash-stream-node/dist-es/readableStreamHasher.js
2025-10-20 21:21:14 +08:00

20 lines
713 B
JavaScript

import { HashCalculator } from "./HashCalculator";
export const readableStreamHasher = (hashCtor, readableStream) => {
if (readableStream.readableFlowing !== null) {
throw new Error("Unable to calculate hash for flowing readable stream");
}
const hash = new hashCtor();
const hashCalculator = new HashCalculator(hash);
readableStream.pipe(hashCalculator);
return new Promise((resolve, reject) => {
readableStream.on("error", (err) => {
hashCalculator.end();
reject(err);
});
hashCalculator.on("error", reject);
hashCalculator.on("finish", () => {
hash.digest().then(resolve).catch(reject);
});
});
};