fastify-static
Advanced tools
Comparing version 4.2.1 to 4.2.2
43
index.js
@@ -53,3 +53,3 @@ 'use strict' | ||
pumpOptions = {}, | ||
checkedExtensions | ||
checkedEncodings | ||
) { | ||
@@ -70,3 +70,3 @@ const options = Object.assign({}, sendOptions, pumpOptions) | ||
let encodingExt | ||
let encoding | ||
let pathnameForSend = pathname | ||
@@ -79,9 +79,9 @@ | ||
*/ | ||
if (!checkedExtensions) { | ||
checkedExtensions = new Set() | ||
if (!checkedEncodings) { | ||
checkedEncodings = new Set() | ||
} | ||
encodingExt = checkEncodingHeaders(request.headers, checkedExtensions) | ||
encoding = getEncodingHeader(request.headers, checkedEncodings) | ||
if (encodingExt) { | ||
if (encoding) { | ||
if (pathname.endsWith('/')) { | ||
@@ -93,3 +93,3 @@ pathname = findIndexFile(pathname, options.root, options.index) | ||
} | ||
pathnameForSend = pathname + '.' + encodingExt | ||
pathnameForSend = pathname + '.' + getEncodingExtension(encoding) | ||
} | ||
@@ -136,5 +136,5 @@ } | ||
wrap.on('pipe', function () { | ||
if (encodingExt) { | ||
if (encoding) { | ||
reply.header('content-type', getContentType(pathname)) | ||
reply.header('content-encoding', encodingExt) | ||
reply.header('content-encoding', encoding) | ||
} | ||
@@ -180,4 +180,4 @@ reply.send(wrap) | ||
if (opts.preCompressed && !checkedExtensions.has(encodingExt)) { | ||
checkedExtensions.add(encodingExt) | ||
if (opts.preCompressed && !checkedEncodings.has(encoding)) { | ||
checkedEncodings.add(encoding) | ||
return pumpSendToReply( | ||
@@ -190,3 +190,3 @@ request, | ||
undefined, | ||
checkedExtensions | ||
checkedEncodings | ||
) | ||
@@ -415,25 +415,20 @@ } | ||
// Adapted from https://github.com/fastify/fastify-compress/blob/fa5c12a5394285c86d9f438cb39ff44f3d5cde79/index.js#L442 | ||
function checkEncodingHeaders (headers, checked) { | ||
function getEncodingHeader (headers, checked) { | ||
if (!('accept-encoding' in headers)) return | ||
let ext | ||
const header = headers['accept-encoding'].toLowerCase().replace('*', 'gzip') | ||
const accepted = encodingNegotiator.negotiate( | ||
return encodingNegotiator.negotiate( | ||
header, | ||
supportedEncodings.filter((enc) => !checked.has(enc)) | ||
) | ||
} | ||
switch (accepted) { | ||
function getEncodingExtension (encoding) { | ||
switch (encoding) { | ||
case 'br': | ||
ext = 'br' | ||
break | ||
return 'br' | ||
case 'gzip': | ||
if (!checked.has('gz')) { | ||
ext = 'gz' | ||
break | ||
} | ||
return 'gz' | ||
} | ||
return ext | ||
} | ||
@@ -440,0 +435,0 @@ |
{ | ||
"name": "fastify-static", | ||
"version": "4.2.1", | ||
"version": "4.2.2", | ||
"description": "Plugin for serving static files as fast as possible.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
332957
3877