unpkg/server/middleware/validatePackageURL.js

26 lines
660 B
JavaScript
Raw Normal View History

2018-02-18 02:00:56 +00:00
const parsePackageURL = require("../utils/parsePackageURL");
/**
* Adds various properties to the request object to do with the
* package/file being requested.
*/
function validatePackageURL(req, res, next) {
2018-02-18 02:00:56 +00:00
const url = parsePackageURL(req.url);
if (url == null) {
2018-02-18 02:00:56 +00:00
return res.status(403).send({ error: `Invalid URL: ${req.url}` });
}
2018-02-18 02:00:56 +00:00
req.packageName = url.packageName;
req.packageVersion = url.packageVersion;
req.packageSpec = `${url.packageName}@${url.packageVersion}`;
req.pathname = url.pathname;
req.filename = url.filename;
req.search = url.search;
req.query = url.query;
2018-02-18 02:00:56 +00:00
next();
}
2018-02-18 02:00:56 +00:00
module.exports = validatePackageURL;