UNPKG

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
"use strict"; 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