modules
__mocks__
__tests__
actions
utils
createAuth.js
serveAuth.js
serveAutoIndexPage.js
serveFile.js
serveHTMLModule.js
serveJavaScriptModule.js
serveMainPage.js
serveMetadata.js
servePublicKey.js
serveStaticFile.js
serveStats.js
client
middleware
plugins
utils
server.js
plugins
public
scripts
.eslintrc
.gitignore
.nvmrc
.prettierignore
.prettierrc
.travis.yml
README.md
app.yaml
client-secret-staging.json.enc
jest.config.js
package-lock.json
package.json
rollup.config.js
secretKey.js
secret_key.enc
secret_key.pub
unpkg.sketch
whitelist.json
25 lines
641 B
JavaScript
25 lines
641 B
JavaScript
import path from 'path';
|
|
import etag from 'etag';
|
|
|
|
import getContentTypeHeader from '../utils/getContentTypeHeader';
|
|
|
|
export default function serveStaticFile(req, res) {
|
|
const tags = ['file'];
|
|
|
|
const ext = path.extname(req.entry.name).substr(1);
|
|
if (ext) {
|
|
tags.push(`${ext}-file`);
|
|
}
|
|
|
|
res
|
|
.set({
|
|
'Content-Length': req.entry.size,
|
|
'Content-Type': getContentTypeHeader(req.entry.contentType),
|
|
'Cache-Control': 'public, max-age=31536000', // 1 year
|
|
'Last-Modified': req.entry.lastModified,
|
|
ETag: etag(req.entry.content),
|
|
'Cache-Tag': tags.join(', ')
|
|
})
|
|
.send(req.entry.content);
|
|
}
|