performance-analyzer
Version:
Measure TTFB, FCB, Dom Load and Window Load events
58 lines (48 loc) • 1.45 kB
JavaScript
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,
}