UNPKG

@naandalist/patch-package

Version:
27 lines 3.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hashFile = void 0; const crypto_1 = require("crypto"); const fs_1 = require("fs"); const bufferSize = 1024; const buffer = Buffer.alloc(bufferSize); function hashFile(filePath) { const sha = (0, crypto_1.createHash)("sha256"); const fileDescriptor = (0, fs_1.openSync)(filePath, "r"); const size = (0, fs_1.statSync)(filePath).size; let totalBytesRead = 0; while (totalBytesRead < size) { const bytesRead = (0, fs_1.readSync)(fileDescriptor, buffer, 0, Math.min(size - totalBytesRead, bufferSize), totalBytesRead); if (bytesRead < bufferSize) { sha.update(buffer.slice(0, bytesRead)); } else { sha.update(buffer); } totalBytesRead += bytesRead; } (0, fs_1.closeSync)(fileDescriptor); return sha.digest("hex"); } exports.hashFile = hashFile; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUNuQywyQkFBNEQ7QUFFNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBRXZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7QUFFdkMsU0FBZ0IsUUFBUSxDQUFDLFFBQWdCO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQyxNQUFNLGNBQWMsR0FBRyxJQUFBLGFBQVEsRUFBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSxhQUFRLEVBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ3BDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUN0QixPQUFPLGNBQWMsR0FBRyxJQUFJLEVBQUU7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBQSxhQUFRLEVBQ3hCLGNBQWMsRUFDZCxNQUFNLEVBQ04sQ0FBQyxFQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLGNBQWMsRUFBRSxVQUFVLENBQUMsRUFDM0MsY0FBYyxDQUNmLENBQUE7UUFDRCxJQUFJLFNBQVMsR0FBRyxVQUFVLEVBQUU7WUFDMUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFBO1NBQ3ZDO2FBQU07WUFDTCxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ25CO1FBQ0QsY0FBYyxJQUFJLFNBQVMsQ0FBQTtLQUM1QjtJQUNELElBQUEsY0FBUyxFQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3pCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxQixDQUFDO0FBdEJELDRCQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCJcbmltcG9ydCB7IG9wZW5TeW5jLCByZWFkU3luYywgY2xvc2VTeW5jLCBzdGF0U3luYyB9IGZyb20gXCJmc1wiXG5cbmNvbnN0IGJ1ZmZlclNpemUgPSAxMDI0XG5cbmNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyhidWZmZXJTaXplKVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaEZpbGUoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBzaGEgPSBjcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gIGNvbnN0IGZpbGVEZXNjcmlwdG9yID0gb3BlblN5bmMoZmlsZVBhdGgsIFwiclwiKVxuICBjb25zdCBzaXplID0gc3RhdFN5bmMoZmlsZVBhdGgpLnNpemVcbiAgbGV0IHRvdGFsQnl0ZXNSZWFkID0gMFxuICB3aGlsZSAodG90YWxCeXRlc1JlYWQgPCBzaXplKSB7XG4gICAgY29uc3QgYnl0ZXNSZWFkID0gcmVhZFN5bmMoXG4gICAgICBmaWxlRGVzY3JpcHRvcixcbiAgICAgIGJ1ZmZlcixcbiAgICAgIDAsXG4gICAgICBNYXRoLm1pbihzaXplIC0gdG90YWxCeXRlc1JlYWQsIGJ1ZmZlclNpemUpLFxuICAgICAgdG90YWxCeXRlc1JlYWQsXG4gICAgKVxuICAgIGlmIChieXRlc1JlYWQgPCBidWZmZXJTaXplKSB7XG4gICAgICBzaGEudXBkYXRlKGJ1ZmZlci5zbGljZSgwLCBieXRlc1JlYWQpKVxuICAgIH0gZWxzZSB7XG4gICAgICBzaGEudXBkYXRlKGJ1ZmZlcilcbiAgICB9XG4gICAgdG90YWxCeXRlc1JlYWQgKz0gYnl0ZXNSZWFkXG4gIH1cbiAgY2xvc2VTeW5jKGZpbGVEZXNjcmlwdG9yKVxuICByZXR1cm4gc2hhLmRpZ2VzdChcImhleFwiKVxufVxuIl19