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.
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:
Enter the URL of a public GitHub repository