unpkg/modules/actions/serveFile.js
Michael Jackson 34baab07ab New "browse" UI
Also, separated out browse, ?meta, and ?module request handlers.

Fixes #82
2019-07-26 15:31:46 -07:00

25 lines
638 B
JavaScript

import path from 'path';
import etag from 'etag';
import getContentTypeHeader from '../utils/getContentTypeHeader.js';
export default function serveFile(req, res) {
const tags = ['file'];
const ext = path.extname(req.entry.path).substr(1);
if (ext) {
tags.push(`${ext}-file`);
}
res
.set({
'Content-Type': getContentTypeHeader(req.entry.contentType),
'Content-Length': req.entry.size,
'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);
}