mstar-adsperformance
Version:
auto monitoring morningstar web pages ads performance
155 lines (130 loc) • 4.35 kB
JavaScript
;
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; }; }();
var _yargs = require('yargs');
var _yargs2 = _interopRequireDefault(_yargs);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
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 ParseCommands = function () {
function ParseCommands() {
_classCallCheck(this, ParseCommands);
this.config = {
urlArray: [],
browser: 'chrome',
numbers: 3,
outfile: 'adperformance.html'
};
this.initYargsOptions();
}
_createClass(ParseCommands, [{
key: 'initYargsOptions',
value: function initYargsOptions() {
var parsed = _yargs2.default.env('mstarads').option('browser', {
alias: 'b',
default: 'chrome',
describe: 'Choose which Browser to use when you test.',
choices: ['chrome', 'firefox']
}).option('numbers', {
alias: 'n',
default: 5,
describe: 'How many times you want to test each page'
}).option('outfile', {
alias: 'o',
default: 'adperformance.html',
describe: 'Output files for result'
});
var argv = parsed.argv;
if (argv.browser !== null) {
this.config.browser = argv.browser;
}
if (argv.numbers !== null) {
this.config.numbers = argv.numbers;
}
if (argv.outfile !== null) {
this.config.outfile = argv.outfile;
}
this.config.urlArray = this.getURLs(argv._);
}
}, {
key: 'getConfig',
value: function getConfig() {
return this.config;
}
}, {
key: 'getURLs',
value: function getURLs(urls) {
var allUrls = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = urls[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var url = _step.value;
if (url.startsWith('http')) {
allUrls.push(url);
} else {
var filePath = _path2.default.resolve(url);
try {
var lines = _fs2.default.readFileSync(filePath).toString().split('\n');
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = lines[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var line = _step2.value;
if (line.trim().length > 0) {
var lineArray = line.split(' ', 2);
var _url = lineArray[0].trim();
if (_url) {
allUrls.push(_url);
}
}
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
} catch (e) {
if (e.code === 'ENOENT') {
throw new Error('Couldn\'t find url file at ' + filePath);
}
throw e;
}
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return allUrls;
}
}]);
return ParseCommands;
}();
exports.default = ParseCommands;