jscpd
Version:
Copy/paste detector for programming code, support JavaScript, CoffeeScript, PHP, Ruby, Python, Less, Go, Java, Yaml, C#, C++, C, Puppet, Twig languages
73 lines • 5.8 kB
JavaScript
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var cli_table3_1 = __importDefault(require("cli-table3"));
var safe_1 = require("colors/safe");
var events_1 = require("../events");
var utils_1 = require("../utils");
var ConsoleReporter = /** @class */ (function () {
function ConsoleReporter(options) {
this.options = options;
}
ConsoleReporter.prototype.attach = function (eventEmitter) {
eventEmitter.on(events_1.CLONE_FOUND_EVENT, this.cloneFound.bind(this));
};
ConsoleReporter.prototype.report = function () {
var _this = this;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var _a = __read(args, 2), statistic = _a[1];
if (statistic) {
var table_1 = new cli_table3_1.default({
head: ['Format', 'Files analyzed', 'Total lines', 'Clones found', 'Duplicated lines', '%']
});
Object.keys(statistic.formats)
.filter(function (format) { return statistic.formats[format].sources; })
.forEach(function (format) {
table_1.push(_this.convertStatisticToArray(format, statistic.formats[format].total));
});
table_1.push(this.convertStatisticToArray(safe_1.bold('Total:'), statistic.total));
console.log(table_1.toString());
}
};
ConsoleReporter.prototype.cloneFound = function (clone) {
var duplicationA = clone.duplicationA, duplicationB = clone.duplicationB, format = clone.format;
console.log('Clone found (' + format + '):' + (clone.isNew ? safe_1.red('*') : ''));
console.log(" - " + utils_1.getPathConsoleString(this.options, duplicationA.sourceId) + " [" + utils_1.getSourceLocation(duplicationA.start, duplicationA.end) + "]");
console.log(" " + utils_1.getPathConsoleString(this.options, duplicationB.sourceId) + " [" + utils_1.getSourceLocation(duplicationB.start, duplicationB.end) + "]");
console.log('');
};
ConsoleReporter.prototype.convertStatisticToArray = function (format, statistic) {
return [
format,
"" + statistic.sources,
"" + statistic.lines,
"" + statistic.clones,
"" + statistic.duplicatedLines,
statistic.percentage + "%"
];
};
return ConsoleReporter;
}());
exports.ConsoleReporter = ConsoleReporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvcnRlcnMvY29uc29sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBK0I7QUFDL0Isb0NBQXdDO0FBRXhDLG9DQUFpRTtBQUVqRSxrQ0FBbUU7QUFFbkU7SUFDRSx5QkFBc0IsT0FBaUI7UUFBakIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtJQUFHLENBQUM7SUFFcEMsZ0NBQU0sR0FBYixVQUFjLFlBQStCO1FBQzNDLFlBQVksQ0FBQyxFQUFFLENBQUMsMEJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sZ0NBQU0sR0FBYjtRQUFBLGlCQWNDO1FBZGEsY0FBMEI7YUFBMUIsVUFBMEIsRUFBMUIscUJBQTBCLEVBQTFCLElBQTBCO1lBQTFCLHlCQUEwQjs7UUFDaEMsSUFBQSxvQkFBdUMsRUFBcEMsaUJBQW9DLENBQUM7UUFDOUMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFNLE9BQUssR0FBVSxJQUFJLG9CQUFLLENBQUM7Z0JBQzdCLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsQ0FBQzthQUMzRixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7aUJBQzNCLE1BQU0sQ0FBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFqQyxDQUFpQyxDQUFDO2lCQUNuRCxPQUFPLENBQUMsVUFBQyxNQUFjO2dCQUN0QixPQUFLLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRVMsb0NBQVUsR0FBcEIsVUFBcUIsS0FBYTtRQUN4QixJQUFBLGlDQUFZLEVBQUUsaUNBQVksRUFBRSxxQkFBTSxDQUFXO1FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0UsT0FBTyxDQUFDLEdBQUcsQ0FDVCxRQUFNLDRCQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFLLHlCQUFpQixDQUNuRixZQUFZLENBQUMsS0FBSyxFQUNsQixZQUFZLENBQUMsR0FBRyxDQUNqQixNQUFHLENBQ0wsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQ1QsUUFBTSw0QkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBSyx5QkFBaUIsQ0FDbkYsWUFBWSxDQUFDLEtBQUssRUFDbEIsWUFBWSxDQUFDLEdBQUcsQ0FDakIsTUFBRyxDQUNMLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTyxpREFBdUIsR0FBL0IsVUFBZ0MsTUFBYyxFQUFFLFNBQXdCO1FBQ3RFLE9BQU87WUFDTCxNQUFNO1lBQ04sS0FBRyxTQUFTLENBQUMsT0FBUztZQUN0QixLQUFHLFNBQVMsQ0FBQyxLQUFPO1lBQ3BCLEtBQUcsU0FBUyxDQUFDLE1BQVE7WUFDckIsS0FBRyxTQUFTLENBQUMsZUFBaUI7WUFDM0IsU0FBUyxDQUFDLFVBQVUsTUFBRztTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUNILHNCQUFDO0FBQUQsQ0FBQyxBQW5ERCxJQW1EQztBQW5EWSwwQ0FBZSJ9
;