Structure assets data similar to domains data.
This commit is contained in:
parent
a02dea9b02
commit
5a751cf4b1
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
|
|
|
|||
Loading…
Reference in New Issue