UNPKG

sitespeed.io

Version:

sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.

53 lines (47 loc) 1.44 kB
export class AssetsBySpeed { constructor(maxSize) { this.maxSize = maxSize; this.items = []; this.timing = 0; } add(asset, page, runPage) { const totalTime = asset.timings.blocked + asset.timings.dns + asset.timings.connect + asset.timings.send + asset.timings.wait + asset.timings.receive; if (totalTime > this.totalTime || this.items.length < this.maxSize) { // TODO if this one is slower than an already existing item, replace that! if (!this.items.some(assetInArray => assetInArray.url === asset.url)) { this.items.push({ url: asset.url, contentSize: asset.contentSize, transferSize: asset.transferSize, lastModification: asset.timeSinceLastModified, cacheTime: asset.expires, timings: asset.timings, totalTime: totalTime, page, runPage }); } if (this.items.length > this.maxSize) { this.items.sort(function (asset, asset2) { return asset2.totalTime - asset.totalTime; }); if (this.items.length > this.maxSize) { this.items.length = this.maxSize; this.totalTime = this.items[this.maxSize - 1].totalTime; } } } } getItems() { this.items.sort(function (asset, asset2) { return asset2.totalTime - asset.totalTime; }); return this.items; } }