{"id":"b0566279ac1933c2","repo":"knex/knex","slug":"missing-value-for-mode","errorCode":null,"errorMessage":"Missing value for --mode","messagePattern":"Missing value for --mode","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"docs/scripts/resolve-schema-snippets-docker.mjs","lineNumber":228,"sourceCode":"    if (names.includes(args[i])) {\n      const value = args[i + 1];\n      if (!value) {\n        throw new Error(`Missing value for ${args[i]}`);\n      }\n      i += 1;\n      values.push(...value.split(',').map((entry) => entry.trim()));\n    }\n  }\n  const filtered = values.filter(Boolean);\n  return filtered.length ? new Set(filtered) : null;\n}\n\nfunction parseMode(args) {\n  for (let i = 0; i < args.length; i += 1) {\n    if (args[i] === '--mode') {\n      const value = args[i + 1];\n      if (!value) {\n        throw new Error('Missing value for --mode');\n      }\n      i += 1;\n      if (!MODES.has(value)) {\n        throw new Error(`Unknown mode: ${value}`);\n      }\n      return value;\n    }\n  }\n  return DEFAULT_MODE;\n}\n\nfunction selectGroups(dialectFilter, dbFilter) {\n  const byDefault = groups.filter((group) => group.default);\n  const byDb = dbFilter\n    ? groups.filter((group) => dbFilter.has(group.name))\n    : null;\n\n  if (dbFilter) {","sourceCodeStart":210,"sourceCodeEnd":246,"githubUrl":"https://github.com/knex/knex/blob/e25d54bcb707714a17f5a5744eba5c4246bb4d1d/docs/scripts/resolve-schema-snippets-docker.mjs#L210-L246","documentation":"parseMode in resolve-schema-snippets-docker.mjs (line 223) reads the --mode flag. If --mode is present but no value follows, line 227 throws 'Missing value for --mode'. Allowed values are 'live' or 'compile' (MODES set, line 17); default is 'live'.","triggerScenarios":"Running 'node resolve-schema-snippets-docker.mjs --mode' with no following argument, or where the value was an empty/unset shell variable.","commonSituations":"Incomplete CLI invocation; empty $MODE env expansion passed as nothing; script wrapper that conditionally adds --mode but forgets the value.","solutions":["Provide a value: --mode live or --mode compile.","Omit --mode entirely to use the default 'live'.","Ensure the shell variable is non-empty before interpolating: --mode \"${MODE:-live}\".","Run with --help for the option list."],"exampleFix":"# before\nnode docs/scripts/resolve-schema-snippets-docker.mjs --mode\n# after\nnode docs/scripts/resolve-schema-snippets-docker.mjs --mode compile","handlingStrategy":"validation","validationCode":"const modeIdx = process.argv.indexOf('--mode');\nif (modeIdx !== -1 && !process.argv[modeIdx + 1]) {\n  console.error('--mode requires a value: live | compile');\n  process.exit(2);\n}","typeGuard":"const modeIsValid = (args) => {\n  const i = args.indexOf('--mode');\n  return i === -1 || (args[i+1] && ['live','compile'].includes(args[i+1]));\n};","tryCatchPattern":null,"preventionTips":["Always pass a value with --mode or omit it for the default","Use \"${MODE:-live}\" when interpolating shell variables","Add a wrapper that validates flags"],"tags":["docs","build-script","cli","argument-validation"],"analyzedSha":"e25d54bcb707714a17f5a5744eba5c4246bb4d1d","analyzedAt":"2026-08-03T18:35:32.148Z","schemaVersion":2}