@fontoxml/fontoxml-development-tools
Version:
Development tools for Fonto.
31 lines (27 loc) • 718 B
JavaScript
/** @typedef {import('../../src/getAppConfig.js').DevCmsConfig} DevCmsConfig */
/**
* @param {DevCmsConfig} config
*/
function configureAssetPreviewGetRouteHandler(config) {
return (req, res) => {
const id = req.query.id;
if (id && id.indexOf('..') !== -1) {
res.status(403).end();
return;
}
// TODO: Make this work with memory store as well.
const filePath = req.cms.getPathInFilesystemSync(
id,
JSON.parse(req.query.context).editSessionToken,
);
if (filePath) {
res.sendFile(filePath, {
cacheControl: !config.cacheControlDisabled,
maxAge: config.cacheControlMaxAge,
});
} else {
res.status(404).end();
}
};
}
export default configureAssetPreviewGetRouteHandler;