From 86faa4d73142ffa5025122aa790f9a8d37e0ed62 Mon Sep 17 00:00:00 2001 From: Carlo Alberto Degli Atti Date: Thu, 21 Mar 2013 23:00:52 +0100 Subject: [PATCH 1/3] added async --- lib/assetmanager.js | 44 ++++++++++++++++++++++++++++---------------- package.json | 5 +++-- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/lib/assetmanager.js b/lib/assetmanager.js index 769430e..7a78586 100644 --- a/lib/assetmanager.js +++ b/lib/assetmanager.js @@ -5,7 +5,8 @@ var fs = require('fs') , jsmin = require('./../deps/jsmin').minify , htmlmin = require('./../deps/htmlmin').minify , cssmin = require('./../deps/cssmin').minify - , crypto = require('crypto'); + , crypto = require('crypto') + , async = require('async'); var zlib; try { @@ -17,6 +18,25 @@ var cache = {} , cacheHashes = {} , cacheTimestamps = {}; +var q = async.queue(function (task, callback) { + (function (task, fileInfo) { + file = task.file + fileInfo = task.fileInfo + fs.readFile(file, function (err, data) { + if (err) { + console.log('Could not find: '+file); + callback(null, ''); + return; + } + fileInfo.content = data.toString(); + fs.stat(file, function (err, stat) { + fileInfo.modified = stat.mtime; + callback(null, fileInfo); + }); + }); + })(task); +}, 10); + module.exports = function assetManager (assets) { var self = this; @@ -142,6 +162,7 @@ module.exports = function assetManager (assets) { userAgentMatches = Object.keys(userAgentMatches); } + userAgentMatches.forEach(function(match) { var path = group.path; Step(function () { @@ -306,21 +327,9 @@ module.exports = function assetManager (assets) { callback(null, fileInfo); }); } else { - setTimeout(function() { - fs.readFile(path+file, function (err, data) { - if (err) { - console.log('Could not find: '+file); - callback(null, ''); - return; - } - fileInfo.content = data.toString(); - - fs.stat(path+file, function (err, stat) { - fileInfo.modified = stat.mtime; - callback(null, fileInfo); - }); - }); - }, 100); + q.push({fileInfo: fileInfo, file: path+file}, function (err, fileInfo) { + callback(err, fileInfo); + }); } }; @@ -336,6 +345,7 @@ module.exports = function assetManager (assets) { var mimeType = 'text/plain'; var groupServed; settings.forEach(function (group, groupName) { + console.log(group.route.test(req.url)); if (group.route.test(req.url)) { var userAgent = req.headers['user-agent'] || ''; groupServed = group; @@ -348,6 +358,8 @@ module.exports = function assetManager (assets) { else if (group.dataType === 'css') { mimeType = 'text/css'; } + console.log("passo da qui"); + console.log(cache[groupName]); if (cache[groupName]) { Object.keys(cache[groupName]).forEach(function(match) { if (!found && userAgent.match(new RegExp(match, 'i'))) { diff --git a/package.json b/package.json index e5fa145..463ec1e 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,11 @@ "directories" : { "lib" : "./lib" }, "main" : "./lib/assetmanager", "repository" : [ - { "type":"git", "url":"http://github.com/mape/connect-assetmanager.git" } + { "type":"git", "url":"http://github.com/lordkada/connect-assetmanager.git" } ], "dependencies" : { "request" : ">=0.10.0", - "step" : ">=0.0.3" + "step" : ">=0.0.3", + "async" : "0.1.22" } } From c83651660c1e0959c660b46b9c79b51b39068f70 Mon Sep 17 00:00:00 2001 From: Carlo Alberto Degli Atti Date: Fri, 22 Mar 2013 09:43:42 +0100 Subject: [PATCH 2/3] cleaning console.log --- lib/assetmanager.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/assetmanager.js b/lib/assetmanager.js index 7a78586..c361150 100644 --- a/lib/assetmanager.js +++ b/lib/assetmanager.js @@ -328,7 +328,7 @@ module.exports = function assetManager (assets) { }); } else { q.push({fileInfo: fileInfo, file: path+file}, function (err, fileInfo) { - callback(err, fileInfo); + callback(fileInfo); }); } }; @@ -345,7 +345,6 @@ module.exports = function assetManager (assets) { var mimeType = 'text/plain'; var groupServed; settings.forEach(function (group, groupName) { - console.log(group.route.test(req.url)); if (group.route.test(req.url)) { var userAgent = req.headers['user-agent'] || ''; groupServed = group; @@ -358,8 +357,6 @@ module.exports = function assetManager (assets) { else if (group.dataType === 'css') { mimeType = 'text/css'; } - console.log("passo da qui"); - console.log(cache[groupName]); if (cache[groupName]) { Object.keys(cache[groupName]).forEach(function(match) { if (!found && userAgent.match(new RegExp(match, 'i'))) { From 48e28c1e9a0071db373f41b6a602470d0cee6e53 Mon Sep 17 00:00:00 2001 From: Carlo Alberto Degli Atti Date: Fri, 22 Mar 2013 14:55:44 +0100 Subject: [PATCH 3/3] fixed regression --- lib/assetmanager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/assetmanager.js b/lib/assetmanager.js index c361150..79565c5 100644 --- a/lib/assetmanager.js +++ b/lib/assetmanager.js @@ -328,7 +328,7 @@ module.exports = function assetManager (assets) { }); } else { q.push({fileInfo: fileInfo, file: path+file}, function (err, fileInfo) { - callback(fileInfo); + callback(err, fileInfo); }); } };