function parseInput()

in tools/lighthouse-audit.js [156:181]


function parseInput(args) {
  const [url, minScoresRaw, logFile] = args;

  if (!url) {
    onError('Invalid arguments: <url> not specified.');
  } else if (!minScoresRaw) {
    onError('Invalid arguments: <min-scores> not specified.');
  }

  const minScores = parseMinScores(minScoresRaw || '');
  const unknownCategories =
      Object.keys(minScores).filter(cat => !AUDIT_CATEGORIES.includes(cat));
  const allValuesValid =
      Object.values(minScores).every(x => (0 <= x) && (x <= 1));

  if (unknownCategories.length > 0) {
    onError(`Invalid arguments: <min-scores> contains unknown category(-ies): ${
        unknownCategories.join(', ')}`);
  } else if (!allValuesValid) {
    onError(
        `Invalid arguments: <min-scores> has non-numeric or out-of-range values: ${
            minScoresRaw}`);
  }

  return {url, minScores, logFile};
}