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
JavaScript
;
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'];