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

145 lines 10.3 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; 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 __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); var fs_1 = require("fs"); var fs_extra_1 = require("fs-extra"); var path_1 = require("path"); var formats_1 = require("../tokenizer/formats"); function getOption(name, options) { return options ? options[name] || getDefaultOptions()[name] : getDefaultOptions()[name]; } exports.getOption = getOption; function prepareOptions(cli) { var config = cli.config ? path_1.resolve(cli.config) : path_1.resolve('.jscpd.json'); var storedConfig = {}; var argsConfig; var packageJsonConfig; argsConfig = { minLines: cli.minLines, maxLines: cli.maxLines, maxSize: cli.maxSize, debug: cli.debug, executionId: cli.executionId, silent: cli.silent, blame: cli.blame, cache: cli.cache, output: cli.output, xslHref: cli.xslHref, format: cli.format, formatsExts: parseFormatsExtensions(cli.formatsExts), list: cli.list, mode: cli.mode, absolute: cli.absolute, gitignore: cli.gitignore }; if (cli.threshold !== undefined) { argsConfig.threshold = cli.threshold; } if (cli.reporters) { argsConfig.reporters = cli.reporters.split(','); } if (cli.format) { argsConfig.format = cli.format.split(','); } if (cli.ignore) { argsConfig.ignore = cli.ignore.split(','); } argsConfig.path = cli.path ? [cli.path].concat(cli.args) : cli.args; Object.keys(argsConfig).forEach(function (key) { if (typeof argsConfig[key] === 'undefined') { delete argsConfig[key]; } }); if (!fs_1.existsSync(config)) { config = ''; } else { storedConfig = fs_extra_1.readJSONSync(config); } if (fs_1.existsSync(process.cwd() + '/package.json')) { packageJsonConfig = fs_extra_1.readJSONSync(process.cwd() + '/package.json').jscpd || {}; } var result = __assign({ config: config }, getDefaultOptions(), packageJsonConfig, storedConfig, argsConfig); if (result.hasOwnProperty('config') && result.config && path_1.isAbsolute(result.config) && result.path) { result.path = result.path.map(function (path) { return path_1.resolve(path_1.dirname(config), path); }); } result.reporters = result.reporters || []; result.listeners = result.listeners || []; if (result.silent) { result.reporters = result.reporters.filter(function (reporter) { return reporter.indexOf('console') === -1; }).concat('silent'); } if (result.threshold) { result.reporters = __spread(result.reporters, ['threshold']); } result.reporters = __spread(result.reporters, ['time']); result.reporters = __spread(new Set(result.reporters)); return result; } exports.prepareOptions = prepareOptions; function getDefaultOptions() { return { executionId: new Date().toISOString(), path: [process.cwd()], minLines: 5, maxLines: 500, maxSize: '30kb', minTokens: 50, output: './report', reporters: ['console', 'time'], listeners: ['statistic'], ignore: [], mode: 'mild', threshold: 0, format: __spread(formats_1.getSupportedFormats()), formatsExts: {}, debug: false, silent: false, blame: false, cache: true, absolute: false, gitignore: false, reportersOptions: {} }; } exports.getDefaultOptions = getDefaultOptions; function parseFormatsExtensions(extensions) { var result = {}; if (extensions) { extensions.split(';').forEach(function (format) { var pair = format.split(':'); result[pair[0]] = pair[1].split(','); }); } return result; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHlCQUFnQztBQUNoQyxxQ0FBd0M7QUFDeEMsNkJBQW9EO0FBRXBELGdEQUEyRDtBQUUzRCxTQUFnQixTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWtCO0lBQ3hELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsSUFBSSxDQUFDLElBQUssaUJBQWlCLEVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUUsaUJBQWlCLEVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNySCxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixjQUFjLENBQUMsR0FBWTtJQUN6QyxJQUFJLE1BQU0sR0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0UsSUFBSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBQzNCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksaUJBQXNCLENBQUM7SUFFM0IsVUFBVSxHQUFHO1FBQ1gsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFrQjtRQUNoQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQWtCO1FBQ2hDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztRQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQzVCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtRQUNsQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDaEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMs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