UNPKG

sonar-web-frontend-reporters

Version:

sreporter is a Command-Line Interface to generate Front-End linters reporters for the SonarQube plugin

80 lines (66 loc) 2.67 kB
"use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var ReporterFactory = require('./reporter.factory'); var SonarWebReporters = /*#__PURE__*/ function () { /** * Create a new SonarWebReporters * * @param {string} projectName The project name * @param {Object} options User specific options for all reporters */ function SonarWebReporters(projectName, options) { _classCallCheck(this, SonarWebReporters); if (projectName === undefined) { throw new Error('`projectName` parameter is required'); } if (options === undefined) { throw new Error('`options` parameter is required'); } this.projectName = projectName; this.options = options; } /** * Launch the Sonar Web Front-End Reporters. * It automatically launch reporters registered under `ReporterType`. * * @param {function=} done Called after all reporters has been processed */ _createClass(SonarWebReporters, [{ key: "launchReporters", value: function launchReporters(done) { var _this = this; var keys = Object.keys(this.options).filter(function (key) { return _this.options[key]; }), count = 0; keys.forEach(function (key) { _this.launch(key, _this.projectName, _this.options[key], function () { if (++count === keys.length) { done(); } }); }); } /** * Launch a reporter. * * @param {ReporterType} type Type of the reporter to be launched * @param {string} projectName The project name * @param {Object} options Reporter options * @param {function} done Called after reporter is done */ }, { key: "launch", value: function launch(type, projectName, options, done) { ReporterFactory.create(type, options, projectName).launch(function () { return done(); }); } }]); return SonarWebReporters; }(); module.exports = SonarWebReporters;