Structure assets data similar to domains data.

This commit is contained in:
Tobias Lidskog 2016-05-09 22:47:55 +02:00
parent a02dea9b02
commit 5a751cf4b1
3 changed files with 17 additions and 10 deletions

View File

@ -1,9 +1,9 @@
'use strict';
const assets = {};
module.exports = {
assets: {},
addToAggregate(data) {
var assets = this.assets;
data.assets.forEach(function(asset) {
const url = asset.url;
const urlInfo = assets[url] || {
@ -14,12 +14,11 @@ module.exports = {
size: asset.contentSize,
requestCount: 0
};
urlInfo.requestCount += 1;
urlInfo.requestCount++;
assets[url] = urlInfo;
});
},
summarize() {
const urls = Object.keys(this.assets);
return urls.map((url) => this.assets[url]);
return assets;
}
};

View File

@ -2,12 +2,15 @@
let messageMaker = require('../../support/messageMaker'),
path = require('path'),
isNotEmpty = require('../../support/util').isNotEmpty,
aggregator = require('./aggregator');
const make = messageMaker('assets').make;
module.exports = {
name() { return path.basename(__dirname); },
name() {
return path.basename(__dirname);
},
processMessage(message, queue) {
switch (message.type) {
case 'pagexray.run':
@ -19,7 +22,7 @@ module.exports = {
case 'summarize':
{
const summary = aggregator.summarize();
if (summary.length > 0) {
if (isNotEmpty(summary)) {
queue.postMessage(make('assets.aggregate', summary));
}
break;

View File

@ -42,9 +42,14 @@ module.exports = {
case 'assets.aggregate':
{
const count = 10,
fullCount = Object.keys(message.data).length,
topAssets = message.data
const assetList = reduce(message.data, (assetList, asset) => {
assetList.push(asset);
return assetList;
}, []);
const count = 20,
fullCount = Object.keys(assetList).length,
topAssets = assetList
.sort((a, b) => b.requestCount - a.requestCount)
.splice(0, count);
return this.HTMLBuilder.addDataForSummaryPage('assets', {topAssets, count, fullCount});