UNPKG

bs-broken-links-checker

Version:
72 lines (50 loc) 2.71 kB
'use strict'; 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); }