import parsePackagePathname from '../utils/parsePackagePathname.js';

/**
 * Parse the pathname in the URL. Reject invalid URLs.
 */
export default function validatePackagePathname(req, res, next) {
  const parsed = parsePackagePathname(req.path);

  if (parsed == null) {
    return res.status(403).send({ error: `Invalid URL: ${req.path}` });
  }

  req.packageName = parsed.packageName;
  req.packageVersion = parsed.packageVersion;
  req.packageSpec = parsed.packageSpec;
  req.filename = parsed.filename;

  next();
}