UNPKG

mstar-adsperformance

Version:

auto monitoring morningstar web pages ads performance

158 lines (131 loc) 4.99 kB
'use strict'; 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 _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _cheerio = require('cheerio'); var _cheerio2 = _interopRequireDefault(_cheerio); var _handlebars = require('handlebars'); var _handlebars2 = _interopRequireDefault(_handlebars); var _AdType = require('./AdType'); var _AdType2 = _interopRequireDefault(_AdType); 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 RenderResult = function () { function RenderResult(data, config) { _classCallCheck(this, RenderResult); this.data = data; this.config = config; } _createClass(RenderResult, [{ key: 'render', value: function render() { var _this = this; var source = _fs2.default.readFileSync(_path2.default.join(__dirname, '/html/result.html'), 'utf8'); var $ = _cheerio2.default.load(source); // this.addMDSStyle($); // foreach Url Object.keys(this.data).forEach(function (key) { _this.addPageHead($, key); _this.addPageTables($, _this.data[key]); }); this.writeResult($); return this; } }, { key: 'addMDSStyle', value: function addMDSStyle($) { $('html >head').append('<link rel="stylesheet" type="text/css" href="' + process.env.INIT_CWD + '/dist/css/mds_doc_library.css">'); } }, { key: 'addPageHead', value: function addPageHead($, title) { $('.col-md-12').append('<h1 class="title">' + title + '</h1>'); } }, { key: 'addTableHead', value: function addTableHead($, title) { $('.col-md-12').append('<h4 class="title">' + title + '</h4>'); } }, { key: 'addPageTables', value: function addPageTables($, dataObject) { var tableSource = _fs2.default.readFileSync(_path2.default.join(__dirname, '/html/table.html'), 'utf8'); this.registerHandlebarsHelper(); var template = _handlebars2.default.compile(tableSource); var adTypes = _AdType2.default.getInstance().getAdTypes(); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = adTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var type = _step.value; var data = dataObject[type]; var resultTableHtml = template(data); this.addTableHead($, type.toUpperCase() + ' Result'); $('.col-md-12').append(resultTableHtml); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: 'registerHandlebarsHelper', value: function registerHandlebarsHelper() { _handlebars2.default.registerHelper('isNumber', function (value, options) { if (typeof value === 'number') { return options.fn(this); } else if (typeof value === 'string' && (value.match(/^-{0,1}\d+$/) || value.match(/^\d+\.\d+$/))) { return options.fn(this); } return options.inverse(this); }); } }, { key: 'writeResult', value: function writeResult($) { var outFileName = process.env.HOME + '/Documents/performance.html'; if (this.config.outfile !== null && this.config.outfile !== '') { outFileName = _path2.default.resolve(this.config.outfile); } _fs2.default.writeFile(outFileName, $.html(), 'utf8', function (err) { if (err) { console.log(err); throw err; } }); } }, { key: 'writeRealData', value: function writeRealData(data) { var folderPath = process.env.HOME + '/Documents/nativeData.json'; if (this.config.outfile !== null && this.config.outfile !== '') { var outFileName = _path2.default.resolve(this.config.outfile); folderPath = _path2.default.dirname(outFileName) + '/nativeData.json'; } _fs2.default.writeFile(folderPath, JSON.stringify(data, null, 4), 'utf8', function (err) { if (err) { console.log(err); throw err; } }); } }]); return RenderResult; }(); exports.default = RenderResult;