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

58 lines 4.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs_1 = require("fs"); var fs_extra_1 = require("fs-extra"); var utils_1 = require("../utils"); var options_1 = require("../utils/options"); var JsonReporter = /** @class */ (function () { function JsonReporter(options) { this.options = options; this.json = { duplicates: [], statistics: {} }; } JsonReporter.prototype.attach = function () { }; JsonReporter.prototype.report = function (clones, statistic) { var _this = this; if (statistic) { this.json.statistics = statistic; } clones.forEach(function (clone) { _this.cloneFound(clone); }); fs_extra_1.ensureDirSync(options_1.getOption('output', this.options)); fs_1.writeFileSync(options_1.getOption('output', this.options) + '/jscpd-report.json', JSON.stringify(this.json, null, '\t')); }; JsonReporter.prototype.cloneFound = function (clone) { var startLineA = clone.duplicationA.start.line; var endLineA = clone.duplicationA.end.line; var startLineB = clone.duplicationB.start.line; var endLineB = clone.duplicationB.end.line; this.json.duplicates.push({ format: clone.format, lines: endLineA - startLineA + 1, fragment: clone.duplicationA.fragment, tokens: 0, firstFile: { name: utils_1.getPath(this.options, clone.duplicationA.sourceId), start: startLineA, end: endLineA, startLoc: clone.duplicationA.start, endLoc: clone.duplicationA.end, blame: clone.duplicationA.blame }, secondFile: { name: utils_1.getPath(this.options, clone.duplicationB.sourceId), start: startLineB, end: endLineB, startLoc: clone.duplicationB.start, endLoc: clone.duplicationB.end, blame: clone.duplicationB.blame } }); }; return JsonReporter; }()); exports.JsonReporter = JsonReporter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvcnRlcnMvanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUFtQztBQUNuQyxxQ0FBeUM7QUFLekMsa0NBQW1DO0FBQ25DLDRDQUE2QztBQThCN0M7SUFNRSxzQkFBb0IsT0FBaUI7UUFBakIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUw3QixTQUFJLEdBQWdCO1lBQzFCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsVUFBVSxFQUFFLEVBQWdCO1NBQzdCLENBQUM7SUFFc0MsQ0FBQztJQUVsQyw2QkFBTSxHQUFiLGNBQXVCLENBQUM7SUFFakIsNkJBQU0sR0FBYixVQUFjLE1BQWdCLEVBQUUsU0FBcUI7UUFBckQsaUJBV0M7UUFWQyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUNsQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFhO1lBQzNCLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCx3QkFBYSxDQUFDLG1CQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pELGtCQUFhLENBQUMsbUJBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLG9CQUFvQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRU8saUNBQVUsR0FBbEIsVUFBbUIsS0FBYTtRQUM5QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDakQsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNqRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixLQUFLLEVBQUUsUUFBUSxHQUFHLFVBQVUsR0FBRyxDQUFDO1lBQ2hDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWtCO1lBQy9DLE1BQU0sRUFBRSxDQUFDO1lBQ1QsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxlQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEdBQUcsRUFBRSxRQUFRO2dCQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUs7Z0JBQ2xDLE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUc7Z0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUs7YUFDaEM7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLGVBQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUN4RCxLQUFLLEVBQUUsVUFBVTtnQkFDakIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSztnQkFDbEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRztnQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSzthQUNoQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFwREQsSUFvREM7QUFwRFksb0NBQVkifQ==