import createSearch from '../utils/createSearch.js'; const knownQueryParams = { main: true, // Deprecated, see #63 meta: true, module: true }; function isKnownQueryParam(param) { return !!knownQueryParams[param]; } /** * Reject URLs with invalid query parameters to increase cache hit rates. */ export default function validateQuery(req, res, next) { const keys = Object.keys(req.query); if (!keys.every(isKnownQueryParam)) { const newQuery = keys.filter(isKnownQueryParam).reduce((query, key) => { query[key] = req.query[key]; return query; }, {}); return res.redirect(302, req.path + createSearch(newQuery)); } next(); }