From 2cbc9f40fd8408edecfa3440fce977129fb425a1 Mon Sep 17 00:00:00 2001 From: Jesse Proulx Date: Thu, 21 Jun 2012 23:39:25 -0700 Subject: [PATCH] Add the ability to reference the hash or timestamp in the mapped route --- lib/assetmanager.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/assetmanager.js b/lib/assetmanager.js index 769430e..6951e4c 100644 --- a/lib/assetmanager.js +++ b/lib/assetmanager.js @@ -185,6 +185,9 @@ module.exports = function assetManager (assets) { return; } cacheTimestamps[groupName] = lastModified.getTime(); + if (group.route.toString().match(/:cacheTimestamp/)) { + group.route = new RegExp(group.route.toString().replace(/:cacheTimestamp/, lastModified.getTime())); + } if (!cache[groupName]) { cache[groupName] = {}; } @@ -241,6 +244,9 @@ module.exports = function assetManager (assets) { }; cacheHashes[groupName] = crypto.createHash('md5').update(content).digest('hex'); + if (group.route.toString().match(/:cacheHash/)) { + group.route = new RegExp(group.route.toString().replace(/:cacheHash/, cacheHashes[groupName])); + } cache[groupName][match].encodings = {}; var encodings = cache[groupName][match].encodings; @@ -336,6 +342,9 @@ module.exports = function assetManager (assets) { var mimeType = 'text/plain'; var groupServed; settings.forEach(function (group, groupName) { + if (typeof group.route === 'string') { + group.route = new RegExp(group.route); + } if (group.route.test(req.url)) { var userAgent = req.headers['user-agent'] || ''; groupServed = group;