UNPKG

@nanobot248/linux-dedupe

Version:

Provides wrapper methods for FIDEDUPERANGE ioctl on linux, allowing to deduplicate file ranges.

42 lines 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Deduplicator = exports.getStatusInfo = exports.FILE_DEDUPE_RANGE_DIFFERS = exports.FILE_DEDUPE_RANGE_SAME = void 0; const bindings = require("bindings"); const dedupe = bindings("linux-dedupe.node"); exports.FILE_DEDUPE_RANGE_SAME = 0; exports.FILE_DEDUPE_RANGE_DIFFERS = 1; function getStatusInfo(status) { if (status === 0) { return "Ranges are the same, dedupe ok."; } else if (status === 1) { return "Ranges differ, dedupe not possible."; } else { return "Unknown status value " + status + "."; } } exports.getStatusInfo = getStatusInfo; class Deduplicator { constructor() { } async dedupe(srcFd, srcOff, srcLen, destFd, destOff) { return new Promise((resolve, reject) => { const result = dedupe.ioctl_dedupe_range(srcFd, srcOff, srcLen, destFd, destOff, (err, ioctlResult, status, bytes) => { console.log("dedupe result: err =", err, ", ioctlResult =", ioctlResult, ", status =", status, ", bytes =", bytes); if (err != null) { reject(err); } else { resolve({ ioctlResult: ioctlResult, status: status, deduplicatedBytes: bytes }); } }); }); } } exports.Deduplicator = Deduplicator; //# sourceMappingURL=index.js.map