bs-broken-links-checker
Version:
Broken links checker tool fow web sites
111 lines (85 loc) • 3.18 kB
JavaScript
;
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'];