Files
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
unpkg/modules/actions/serveStaticFile.js
2019-01-07 20:29:16 -08:00

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);
}