source: node_modules/patch-package/dist/hash.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 3.2 KB
Line 
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.hashFile = void 0;
4const crypto_1 = require("crypto");
5const fs_1 = require("fs");
6const bufferSize = 1024;
7const buffer = Buffer.alloc(bufferSize);
8function hashFile(filePath) {
9 const sha = crypto_1.createHash("sha256");
10 const fileDescriptor = fs_1.openSync(filePath, "r");
11 const size = fs_1.statSync(filePath).size;
12 let totalBytesRead = 0;
13 while (totalBytesRead < size) {
14 const bytesRead = fs_1.readSync(fileDescriptor, buffer, 0, Math.min(size - totalBytesRead, bufferSize), totalBytesRead);
15 if (bytesRead < bufferSize) {
16 sha.update(buffer.slice(0, bytesRead));
17 }
18 else {
19 sha.update(buffer);
20 }
21 totalBytesRead += bytesRead;
22 }
23 fs_1.closeSync(fileDescriptor);
24 return sha.digest("hex");
25}
26exports.hashFile = hashFile;
27//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUNuQywyQkFBNEQ7QUFFNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBRXZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7QUFFdkMsU0FBZ0IsUUFBUSxDQUFDLFFBQWdCO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEMsTUFBTSxjQUFjLEdBQUcsYUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM5QyxNQUFNLElBQUksR0FBRyxhQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ3BDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUN0QixPQUFPLGNBQWMsR0FBRyxJQUFJLEVBQUU7UUFDNUIsTUFBTSxTQUFTLEdBQUcsYUFBUSxDQUN4QixjQUFjLEVBQ2QsTUFBTSxFQUNOLENBQUMsRUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxjQUFjLEVBQUUsVUFBVSxDQUFDLEVBQzNDLGNBQWMsQ0FDZixDQUFBO1FBQ0QsSUFBSSxTQUFTLEdBQUcsVUFBVSxFQUFFO1lBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQTtTQUN2QzthQUFNO1lBQ0wsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUNuQjtRQUNELGNBQWMsSUFBSSxTQUFTLENBQUE7S0FDNUI7SUFDRCxjQUFTLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDekIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLENBQUM7QUF0QkQsNEJBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IHsgb3BlblN5bmMsIHJlYWRTeW5jLCBjbG9zZVN5bmMsIHN0YXRTeW5jIH0gZnJvbSBcImZzXCJcblxuY29uc3QgYnVmZmVyU2l6ZSA9IDEwMjRcblxuY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKGJ1ZmZlclNpemUpXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRmlsZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHNoYSA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgY29uc3QgZmlsZURlc2NyaXB0b3IgPSBvcGVuU3luYyhmaWxlUGF0aCwgXCJyXCIpXG4gIGNvbnN0IHNpemUgPSBzdGF0U3luYyhmaWxlUGF0aCkuc2l6ZVxuICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwXG4gIHdoaWxlICh0b3RhbEJ5dGVzUmVhZCA8IHNpemUpIHtcbiAgICBjb25zdCBieXRlc1JlYWQgPSByZWFkU3luYyhcbiAgICAgIGZpbGVEZXNjcmlwdG9yLFxuICAgICAgYnVmZmVyLFxuICAgICAgMCxcbiAgICAgIE1hdGgubWluKHNpemUgLSB0b3RhbEJ5dGVzUmVhZCwgYnVmZmVyU2l6ZSksXG4gICAgICB0b3RhbEJ5dGVzUmVhZCxcbiAgICApXG4gICAgaWYgKGJ5dGVzUmVhZCA8IGJ1ZmZlclNpemUpIHtcbiAgICAgIHNoYS51cGRhdGUoYnVmZmVyLnNsaWNlKDAsIGJ5dGVzUmVhZCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNoYS51cGRhdGUoYnVmZmVyKVxuICAgIH1cbiAgICB0b3RhbEJ5dGVzUmVhZCArPSBieXRlc1JlYWRcbiAgfVxuICBjbG9zZVN5bmMoZmlsZURlc2NyaXB0b3IpXG4gIHJldHVybiBzaGEuZGlnZXN0KFwiaGV4XCIpXG59XG4iXX0=
Note: See TracBrowser for help on using the repository browser.