26 lines
648 B
JavaScript
26 lines
648 B
JavaScript
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) {
|
|
const url = parsePackageURL(req.url)
|
|
|
|
if (url == null) {
|
|
return res.status(403).send({ error: `Invalid URL: ${req.url}` })
|
|
}
|
|
|
|
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
|
|
|
|
next()
|
|
}
|
|
|
|
module.exports = validatePackageURL
|