access-sniff
Version:
A node/iojs library & CLI for HTML_Codesniffer
122 lines (87 loc) • 3.44 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable no-console */
var _underscore = require('underscore');
var _underscore2 = _interopRequireDefault(_underscore);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _mkdirp = require('mkdirp');
var _mkdirp2 = _interopRequireDefault(_mkdirp);
var _logger = require('../logger');
var _logger2 = _interopRequireDefault(_logger);
var _generateReport = require('./generateReport');
var _generateReport2 = _interopRequireDefault(_generateReport);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var defaultOptions = {
fileName: 'report',
reportType: 'json',
reportLocation: ''
};
exports.default = function (reports) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
_underscore2.default.defaults(options, defaultOptions);
var report = new ReportsGenerator(reports, options);
if (options.reportLocation) {
report.writeFile();
}
return report.getReport();
};
var ReportsGenerator = function () {
function ReportsGenerator(reports, options) {
_classCallCheck(this, ReportsGenerator);
this.report = {
name: options.fileName,
type: options.reportType,
location: options.reportLocation,
output: ''
};
switch (options.reportType) {
case 'json':
this.report.output = this.reportJson(reports);
break;
case 'csv':
this.report.output = this.reportCsv(reports);
break;
case 'txt':
this.report.output = this.reportTxt(reports);
break;
}
}
_createClass(ReportsGenerator, [{
key: 'reportJson',
value: function reportJson(reports) {
return JSON.stringify(reports);
}
}, {
key: 'reportTxt',
value: function reportTxt(reports) {
return (0, _generateReport2.default)(reports, '|');
}
}, {
key: 'reportCsv',
value: function reportCsv(reports) {
return (0, _generateReport2.default)(reports, ',');
}
}, {
key: 'writeFile',
value: function writeFile() {
var report = this.report;
var fileName = report.name + '.' + report.type;
var filePath = process.cwd() + '/' + report.location + '/' + fileName;
_mkdirp2.default.sync(process.cwd() + '/' + report.location);
_fs2.default.writeFileSync(filePath, report.output);
_logger2.default.finishedMessage(filePath);
return report.output;
}
}, {
key: 'getReport',
value: function getReport() {
var newReport = this.report.output;
return newReport;
}
}]);
return ReportsGenerator;
}();
;