bs-broken-links-checker
Version:
Broken links checker tool fow web sites
72 lines (50 loc) • 2.71 kB
JavaScript
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.run = run;
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _bemSiteLogger = require('bem-site-logger');
var _bemSiteLogger2 = _interopRequireDefault(_bemSiteLogger);
var _checker = require('../checker');
var _checker2 = _interopRequireDefault(_checker);
var _reportersJson = require('../reporters/json');
var _reportersJson2 = _interopRequireDefault(_reportersJson);
var _reportersHtml = require('../reporters/html');
var _reportersHtml2 = _interopRequireDefault(_reportersHtml);
var logger = _bemSiteLogger2['default'].setOptions({ level: 'info', useDate: false }).createLogger(module);
/**
* Runs application from cli interface
* @param {Object} [options] configuration object
* @param {String} [options.mode] mode of checking ("website", "section" or "page")
* @param {Number} [options.concurrent] number of concurrent requests
* @param {Number} [options.requestRetriesAmount] number of attempts for request if it fails at first
* @param {Number} [options.requestTimeout] request timeout (in milliseconds)
* @param {Boolean} [options.checkExternalUrls] set `true` for check outer links
* @trows Error
*/
function run(options) {
var configFileName = options.config,
config;
try {
config = require(_path2['default'].join(process.cwd(), configFileName));
} catch (error) {
throw new Error('Configuration file not found');
}
['concurrent', 'requestRetriesAmount', 'requestTimeout', 'checkExternalUrls', 'mode'].forEach(function (item) {
if (options[item]) {
config[item] = options[item];
}
});
config.onDone = function (statistic) {
logger.info('finish to analyze pages');
logger.info('-- Internal urls: [%s]', statistic.getInternalCount()).info('-- External urls: [%s]', statistic.getExternalCount()).info('-- Broken urls: [%s]', statistic.getBrokenCount()).info('-- Total urls: [%s]', statistic.getAllCount()).info('-- Broken urls percentage: [%s] %', statistic.getBrokenCount() * 100 / statistic.getAllCount());
var reporters = [new _reportersJson2['default'](options), new _reportersHtml2['default'](options)];
reporters.map(function (item) {
return item.createReport(_path2['default'].basename(configFileName, '.js'), statistic, config);
});
};
new _checker2['default'](config).start(options.url || config.url);
}