UNPKG

access-sniff

Version:

A node/iojs library & CLI for HTML_Codesniffer

122 lines (87 loc) 3.44 kB
'use strict'; 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; }();