Skip to content

Commit

Permalink
Combine existense and date checks.
Browse files Browse the repository at this point in the history
  • Loading branch information
cweider committed Feb 20, 2012
1 parent a500625 commit ff264aa
Showing 1 changed file with 30 additions and 46 deletions.
76 changes: 30 additions & 46 deletions node/utils/Minify.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ exports.minifyJS = function(req, res, next)
var filename = req.params['filename'];
res.header("Content-Type","text/javascript");

lastModifiedDateOf(filename, function (error, date) {
statFile(filename, function (error, date, exists) {
date = new Date(date);
res.setHeader('last-modified', date.toUTCString());
res.setHeader('date', (new Date()).toUTCString());
Expand All @@ -64,33 +64,31 @@ exports.minifyJS = function(req, res, next)
res.setHeader('cache-control', 'max-age=' + server.maxAge);
}

fileExists(filename, function (error, exists) {
if (error) {
res.writeHead(500, {});
res.end();
} else if (!exists) {
res.writeHead(404, {});
res.end();
} else if (new Date(req.headers['if-modified-since']) >= date) {
res.writeHead(304, {});
if (error) {
res.writeHead(500, {});
res.end();
} else if (!exists) {
res.writeHead(404, {});
res.end();
} else if (new Date(req.headers['if-modified-since']) >= date) {
res.writeHead(304, {});
res.end();
} else {
if (req.method == 'HEAD') {
res.writeHead(200, {});
res.end();
} else {
if (req.method == 'HEAD') {
} else if (req.method == 'GET') {
getFileCompressed(filename, function (error, content) {
if(ERR(error)) return;
res.writeHead(200, {});
res.write(content);
res.end();
} else if (req.method == 'GET') {
getFileCompressed(filename, function (error, content) {
if(ERR(error)) return;
res.writeHead(200, {});
res.write(content);
res.end();
});
} else {
res.writeHead(405, {'allow': 'HEAD, GET'});
res.end();
}
});
} else {
res.writeHead(405, {'allow': 'HEAD, GET'});
res.end();
}
});
}
});
}

Expand Down Expand Up @@ -161,25 +159,29 @@ function getAceFile(callback) {
});
}

function lastModifiedDateOf(filename, callback) {
function statFile(filename, callback) {
if (filename == 'ace.js') {
lastModifiedDateOfEverything(callback);
lastModifiedDateOfEverything(function (error, date) {
callback(error, date, !error);
});
} else {
fs.stat(JS_DIR + filename, function (error, stats) {
if (error) {
if (error.code == "ENOENT") { // Stat the directory instead.
fs.stat(JS_DIR, function (error, stats) {
if (error) {
callback(error);
} else if (filename == 'require-kernel.js') {
callback(null, stats.mtime.getTime(), true);
} else {
callback(null, stats.mtime.getTime());
callback(null, stats.mtime.getTime(), false);
}
});
} else {
callback(error);
}
} else {
callback(null, stats.mtime.getTime());
callback(null, stats.mtime.getTime(), true);
}
});
}
Expand Down Expand Up @@ -255,24 +257,6 @@ function getFile(filename, callback) {
}
}

function fileExists(filename, callback) {
if (filename == 'require-kernel.js') {
callback(undefined, true);
} else {
fs.stat(JS_DIR + filename, function (error, stats) {
if (error) {
if (error.code == "ENOENT") {
callback(undefined, false);
} else {
callback(error, undefined);
}
} else {
callback(undefined, stats.isFile());
}
});
}
}

function tarCode(jsFiles, write, callback) {
write('require.define({');
var initialEntry = true;
Expand Down

0 comments on commit ff264aa

Please sign in to comment.