send
Advanced tools
Comparing version 0.15.5 to 0.15.6
@@ -0,1 +1,7 @@ | ||
0.15.6 / 2017-09-22 | ||
=================== | ||
* deps: debug@2.6.9 | ||
* perf: improve `If-Match` token parsing | ||
0.15.5 / 2017-09-20 | ||
@@ -2,0 +8,0 @@ =================== |
45
index.js
@@ -53,9 +53,2 @@ /*! | ||
/** | ||
* Simple expression to split token list. | ||
* @private | ||
*/ | ||
var TOKEN_LIST_REGEXP = / *, */ | ||
/** | ||
* Maximum value allowed for the max age. | ||
@@ -349,3 +342,3 @@ * @private | ||
var etag = res.getHeader('ETag') | ||
return !etag || (match !== '*' && match.split(TOKEN_LIST_REGEXP).every(function (match) { | ||
return !etag || (match !== '*' && parseTokenList(match).every(function (match) { | ||
return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag | ||
@@ -1062,2 +1055,38 @@ })) | ||
/** | ||
* Parse a HTTP token list. | ||
* | ||
* @param {string} str | ||
* @private | ||
*/ | ||
function parseTokenList (str) { | ||
var end = 0 | ||
var list = [] | ||
var start = 0 | ||
// gather tokens | ||
for (var i = 0, len = str.length; i < len; i++) { | ||
switch (str.charCodeAt(i)) { | ||
case 0x20: /* */ | ||
if (start === end) { | ||
start = end = i + 1 | ||
} | ||
break | ||
case 0x2c: /* , */ | ||
list.push(str.substring(start, end)) | ||
start = end = i + 1 | ||
break | ||
default: | ||
end = i + 1 | ||
break | ||
} | ||
} | ||
// final token | ||
list.push(str.substring(start, end)) | ||
return list | ||
} | ||
/** | ||
* Set an object of headers on a response. | ||
@@ -1064,0 +1093,0 @@ * |
{ | ||
"name": "send", | ||
"description": "Better streaming static file server with Range and conditional-GET support", | ||
"version": "0.15.5", | ||
"version": "0.15.6", | ||
"author": "TJ Holowaychuk <tj@vision-media.ca>", | ||
@@ -19,3 +19,3 @@ "contributors": [ | ||
"dependencies": { | ||
"debug": "2.6.8", | ||
"debug": "2.6.9", | ||
"depd": "~1.1.1", | ||
@@ -22,0 +22,0 @@ "destroy": "~1.0.4", |
45106
913
+ Addeddebug@2.6.9(transitive)
- Removeddebug@2.6.8(transitive)
Updateddebug@2.6.9