dir-compare
Version:
Node JS directory compare
72 lines • 3.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StatisticsLifecycle = void 0;
/**
* Controls creation/completion of global statistics object.
*/
exports.StatisticsLifecycle = {
initStats(options) {
let symlinkStatistics = undefined;
if (options.compareSymlink) {
symlinkStatistics = {
distinctSymlinks: 0,
equalSymlinks: 0,
leftSymlinks: 0,
rightSymlinks: 0,
differencesSymlinks: 0,
totalSymlinks: 0,
};
}
const brokenLinksStatistics = {
leftBrokenLinks: 0,
rightBrokenLinks: 0,
distinctBrokenLinks: 0,
totalBrokenLinks: 0
};
const permissionDeniedStatistics = {
leftPermissionDenied: 0,
rightPermissionDenied: 0,
distinctPermissionDenied: 0,
totalPermissionDenied: 0
};
return {
distinct: 0,
equal: 0,
left: 0,
right: 0,
distinctFiles: 0,
equalFiles: 0,
leftFiles: 0,
rightFiles: 0,
distinctDirs: 0,
equalDirs: 0,
leftDirs: 0,
rightDirs: 0,
brokenLinks: brokenLinksStatistics,
symlinks: symlinkStatistics,
permissionDenied: permissionDeniedStatistics,
};
},
completeStatistics(initialStatistics, options) {
const statistics = JSON.parse(JSON.stringify(initialStatistics));
statistics.differences = statistics.distinct + statistics.left + statistics.right;
statistics.differencesFiles = statistics.distinctFiles + statistics.leftFiles + statistics.rightFiles;
statistics.differencesDirs = statistics.distinctDirs + statistics.leftDirs + statistics.rightDirs;
statistics.total = statistics.equal + statistics.differences;
statistics.totalFiles = statistics.equalFiles + statistics.differencesFiles;
statistics.totalDirs = statistics.equalDirs + statistics.differencesDirs;
const brokenLInksStats = statistics.brokenLinks;
brokenLInksStats.totalBrokenLinks = brokenLInksStats.leftBrokenLinks + brokenLInksStats.rightBrokenLinks + brokenLInksStats.distinctBrokenLinks;
const permissionDeniedStats = statistics.permissionDenied;
permissionDeniedStats.totalPermissionDenied = permissionDeniedStats.leftPermissionDenied + permissionDeniedStats.rightPermissionDenied + permissionDeniedStats.distinctPermissionDenied;
statistics.same = statistics.differences ? false : true;
if (options.compareSymlink) {
const symlinkStatistics = statistics.symlinks;
symlinkStatistics.differencesSymlinks = symlinkStatistics.distinctSymlinks +
symlinkStatistics.leftSymlinks + symlinkStatistics.rightSymlinks;
symlinkStatistics.totalSymlinks = symlinkStatistics.differencesSymlinks + symlinkStatistics.equalSymlinks;
}
return statistics;
}
};
//# sourceMappingURL=StatisticsLifecycle.js.map