Break middleware out into separate files

This commit is contained in:
MICHAEL JACKSON
2017-08-10 10:12:50 -07:00
parent 8fdc926bb9
commit 7661950de3
7 changed files with 302 additions and 245 deletions

View File

@ -0,0 +1,30 @@
const { parsePackageURL } = require('./PackageUtils')
/**
* Parse and validate the URL.
*/
function parseURL() {
return function (req, res, next) {
let url
try {
url = parsePackageURL(req.url)
} catch (error) {
return res.status(403).send(`Invalid URL: ${req.url}`)
}
if (url == null)
return res.status(403).send(`Invalid URL: ${req.url}`)
req.packageName = url.packageName
req.packageVersion = url.packageVersion
req.packageSpec = `${req.packageName}@${req.packageVersion}`
req.pathname = url.pathname
req.filename = url.filename
req.search = url.search
req.query = url.query
next()
}
}
module.exports = parseURL