Improve content type detection (#179)

This commit is contained in:
Gaël Métais
2016-07-11 00:39:21 +08:00
committed by GitHub
parent f10fbc3fa3
commit fe8466b0e3
4 changed files with 248 additions and 9 deletions
+31 -9
View File
@@ -5,16 +5,17 @@
*/
var debug = require('debug')('ylt:weightChecker');
var Q = require('q');
var http = require('http');
var zlib = require('zlib');
var async = require('async');
var request = require('request');
var debug = require('debug')('ylt:weightChecker');
var Q = require('q');
var http = require('http');
var zlib = require('zlib');
var async = require('async');
var request = require('request');
var imageOptimizer = require('./imageOptimizer');
var fileMinifier = require('./fileMinifier');
var gzipCompressor = require('./gzipCompressor');
var imageOptimizer = require('./imageOptimizer');
var fileMinifier = require('./fileMinifier');
var gzipCompressor = require('./gzipCompressor');
var contentTypeChecker = require('./contentTypeChecker');
var WeightChecker = function() {
@@ -47,6 +48,8 @@ var WeightChecker = function() {
redownloadEntry(entry, httpAuth)
.then(contentTypeChecker.checkContentType)
.then(imageOptimizer.optimizeImage)
.then(fileMinifier.minifyFile)
@@ -89,6 +92,10 @@ var WeightChecker = function() {
});
// Wrong contentType
offenders.incorrectContentTypes = listIncorrectContentTypes(results);
metrics.incorrectContentTypes = offenders.incorrectContentTypes.length;
// Total weight
offenders.totalWeight = listRequestWeight(results);
metrics.totalWeight = offenders.totalWeight.totalWeight;
@@ -121,6 +128,21 @@ var WeightChecker = function() {
return deferred.promise;
}
function listIncorrectContentTypes(requests) {
var results = [];
requests.forEach(function(req) {
if (req.oldContentType || req.oldContentType === null) {
results.push({
url: req.url,
current: req.oldContentType,
correct: req.contentType
});
}
});
return results;
}
function listRequestWeight(requests) {
var results = {