UNPKG

performance-analyzer

Version:

Measure TTFB, FCB, Dom Load and Window Load events

58 lines (48 loc) 1.45 kB
var nt = require('./networkTimingMetrics.js') var em = require('./eventMetrics.js') const http = require('http') let options = { hostname: 'performance-analyzer-api.herokuapp.com', method: 'POST', headers: { 'Content-Type': 'application/json', }, } let performanceAnalyzer = class performanceAnalyzer { constructor() { this.eventMetrics = em.getEventMetrics(); this.networkTimingMetrics = nt.getNetworkTimingMetrics(); } postMetrics(path, data) { options.path = path var postData = JSON.stringify(data) var req = http.request(options, (res) => { if (res.statusCode == 200) console.log(path + ' are posted successfuly') }) req.on('error', (e) => { console.error(e) }) req.write(postData) req.end() } getCurrentDate() { let created_date = new Date() return new Date(created_date.getTime() + 180 * 60000).toISOString() } postEventMetrics() { if (this.eventMetrics !== undefined) { this.eventMetrics.created_date = this.getCurrentDate() this.postMetrics('/EventMetrics', this.eventMetrics) } } postNetworkTimings() { if (this.networkTimingMetrics !== undefined) { this.networkTimingMetrics.created_date = this.getCurrentDate() this.postMetrics('/NetworkTimingMetrics', this.networkTimingMetrics) } } } module.exports = { performanceAnalyzer, }