{"record":{"id":"fb7d05c130c76d05","repo":"chenglou/pretext","slug":"invalid-value-for-name-raw-fb7d05","errorCode":null,"errorMessage":"Invalid value for --${name}: ${raw}","messagePattern":"Invalid value for --(.+?): (.+?)","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"scripts/corpus-taxonomy.ts","lineNumber":69,"sourceCode":"type TaxonomyEntry = {\n  width: number\n  diffPx: number\n  category: TaxonomyCategory\n  reason: string\n  deltaText: string\n}\n\nfunction parseStringFlag(name: string): string | null {\n  const prefix = `--${name}=`\n  const arg = process.argv.find(value => value.startsWith(prefix))\n  return arg === undefined ? null : arg.slice(prefix.length)\n}\n\nfunction parseNumberFlag(name: string, fallback: number): number {\n  const raw = parseStringFlag(name)\n  if (raw === null) return fallback\n  const parsed = Number.parseInt(raw, 10)\n  if (!Number.isFinite(parsed)) throw new Error(`Invalid value for --${name}: ${raw}`)\n  return parsed\n}\n\nfunction parseOptionalNumberFlag(name: string): number | null {\n  const raw = parseStringFlag(name)\n  if (raw === null) return null\n  const parsed = Number.parseInt(raw, 10)\n  if (!Number.isFinite(parsed)) throw new Error(`Invalid value for --${name}: ${raw}`)\n  return parsed\n}\n\nfunction parseBrowser(value: string | null): BrowserKind {\n  const browser = (value ?? process.env['CORPUS_CHECK_BROWSER'] ?? 'chrome').toLowerCase()\n  if (browser !== 'chrome' && browser !== 'safari') {\n    throw new Error(`Unsupported browser ${browser}; expected chrome or safari`)\n  }\n  return browser\n}","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/chenglou/pretext/blob/ac49b09b7d83ede19581fa94a8b892b07d309baf/scripts/corpus-taxonomy.ts#L51-L87","documentation":"Thrown by the taxonomy script's `parseNumberFlag` when a required numeric flag is present but not a finite integer. Covers `--port`, `--timeout`, `--start`, `--end`, and `--step`.","triggerScenarios":"`bun run scripts/corpus-taxonomy.ts --id=... --step=abc`, `--port=0x10`, or `--timeout=30s` — parseInt returns NaN.","commonSituations":"Typo; unit suffix on `--timeout` (milliseconds); hex value; empty `--flag=`.","solutions":["Pass a base-10 integer, e.g. `--step=10`.","Strip unit suffixes; `--timeout` is milliseconds (`--timeout=180000`).","Check for a stray `=` with no value."],"exampleFix":"// before\nbun run scripts/corpus-taxonomy.ts --id=ja-kumo-no-ito --step=10px\n// after\nbun run scripts/corpus-taxonomy.ts --id=ja-kumo-no-ito --step=10","handlingStrategy":"validation","validationCode":"for (const name of ['port', 'timeout', 'start', 'end', 'step']) {\n  const raw = parseStringFlag(name)\n  if (raw !== null && !/^-?\\d+$/.test(raw)) {\n    console.error(`--${name} must be a base-10 integer, got: ${raw}`)\n    process.exit(2)\n  }\n}","typeGuard":"const isIntString = (v: string): boolean => /^-?\\d+$/.test(v)","tryCatchPattern":null,"preventionTips":["Pass bare base-10 integers to numeric flags.","Remember --timeout is milliseconds with no suffix.","Avoid empty --flag= tokens."],"tags":["cli","argument-parsing","validation","taxonomy"],"backgroundTag":null,"analyzedSha":"ac49b09b7d83ede19581fa94a8b892b07d309baf","analyzedAt":"2026-08-12T17:03:16.263Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}