UNPKG

escomplex-plugin-metrics-project

Version:

Provides the core project metric / report generation plugin for typhonjs-escomplex project processing.

82 lines (64 loc) 2.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _ProjectMetricAverage = require('./ProjectMetricAverage'); var _ProjectMetricAverage2 = _interopRequireDefault(_ProjectMetricAverage); var _ProjectMetricCalculate = require('./ProjectMetricCalculate'); var _ProjectMetricCalculate2 = _interopRequireDefault(_ProjectMetricCalculate); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Provides default project metrics gathering and calculation. * * @see https://en.wikipedia.org/wiki/Adjacency_matrix * @see https://en.wikipedia.org/wiki/Distance_matrix * @see https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm */ var PluginMetricsProject = function () { function PluginMetricsProject() { (0, _classCallCheck3.default)(this, PluginMetricsProject); } (0, _createClass3.default)(PluginMetricsProject, [{ key: 'onConfigure', /** * Loads any default settings that are not already provided by any user options. * * @param {object} ev - escomplex plugin event data. * * The following options are: * ``` * (boolean) noCoreSize - Boolean indicating whether the visibility list is not calculated; default (false). * ``` */ value: function onConfigure(ev) { ev.data.settings.noCoreSize = typeof ev.data.options.noCoreSize === 'boolean' ? ev.data.options.noCoreSize : false; } /** * Performs average calculations based on collected report data. * * @param {object} ev - escomplex plugin event data. */ }, { key: 'onProjectAverage', value: function onProjectAverage(ev) { _ProjectMetricAverage2.default.calculate(ev.data.projectReport); } /** * Performs initial calculations based on collected report data. * * @param {object} ev - escomplex plugin event data. */ }, { key: 'onProjectCalculate', value: function onProjectCalculate(ev) { _ProjectMetricCalculate2.default.calculate(ev.data.projectReport, ev.data.pathModule, ev.data.settings); } }]); return PluginMetricsProject; }(); exports.default = PluginMetricsProject; module.exports = exports['default'];