UNPKG

bs-broken-links-checker

Version:
111 lines (85 loc) 3.18 kB
'use strict'; var _createClass = require('babel-runtime/helpers/create-class')['default']; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _bemSiteLogger = require('bem-site-logger'); var _bemSiteLogger2 = _interopRequireDefault(_bemSiteLogger); var _util = require('../util'); var _util2 = _interopRequireDefault(_util); /** * @class ReporterBase * @desc Base reporter class */ var ReporterBase = (function () { /** * constructor * @param {Object} reporter options */ function ReporterBase() { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; _classCallCheck(this, ReporterBase); options.logger = options.logger || { level: 'info' }; options.logger.useDate = false; /** * Logger instance * @param {Logger} options.logger */ this._logger = _bemSiteLogger2['default'].setOptions(options.logger).createLogger(module); } /** * Creates reports folder in current work directory * @return void 0 * @protected */ _createClass(ReporterBase, [{ key: 'createReportsFolder', value: function createReportsFolder() { try { _fs2['default'].mkdirSync(_util2['default'].getReportsDirectory()); } catch (error) {} } /** * Creates folder named as given configurationName inside reports folder * @param {String} configurationName name of configuration file * @return void 0 * @protected */ }, { key: 'createReportFolder', value: function createReportFolder(configurationName) { this.createReportsFolder(); try { _fs2['default'].mkdirSync(_path2['default'].join(_util2['default'].getReportsDirectory(), configurationName)); } catch (error) {} } /** * Saves report to file * @param {String} configurationName name of configuration * @param {String} type of report * @param {String} content of report * @param {String} date formatted * @returns {Promise} */ }, { key: 'saveReportFile', value: function saveReportFile(configurationName, type, content, date) { this.createReportFolder(configurationName); var fileName = date + '.' + type, filePath = _path2['default'].join(_util2['default'].getReportsDirectory(), configurationName, fileName); _fs2['default'].writeFileSync(filePath, content, { encoding: 'utf-8' }); this._logger.info('Report saved: %s', filePath); } }]); return ReporterBase; })(); exports['default'] = ReporterBase; module.exports = exports['default'];