Back to all reviewers

Enforce strict config schemas

continuedev/continue
Based on 3 comments
Typescript

Configuration schemas should explicitly define all required fields and validate types at compile time to prevent runtime errors. Use strict typing with clear validation rules, and avoid marking required fields as optional.

Configurations Typescript

Reviewer Prompt

Configuration schemas should explicitly define all required fields and validate types at compile time to prevent runtime errors. Use strict typing with clear validation rules, and avoid marking required fields as optional.

Example:

// โŒ Problematic: Required field marked as optional
const configSchema = z.object({
  modelArn: z.string().optional(), // Could cause runtime errors
});

// โœ… Better: Explicit required/optional fields
const configSchema = z.object({
  modelArn: z.string(), // Required field
  profile: z.string().optional(), // Truly optional field
  region: z.string().optional(),
});

// Add runtime validation
function validateConfig(config: Config) {
  const result = configSchema.safeParse(config);
  if (!result.success) {
    throw new ValidationError(result.error.errors);
  }
}

This approach:

  1. Makes required fields explicit in the schema
  2. Catches missing required fields at compile time
  3. Provides clear validation errors at runtime
  4. Maintains consistency between schema and implementation
3
Comments Analyzed
Typescript
Primary Language
Configurations
Category

Source Discussions