Skip to content

fix(analyzer): preserve full coerceSchema metadata in outputSchema - #18

Merged
atinseau merged 1 commit into
masterfrom
fix/preserve-coerceschema-metadata
Mar 12, 2026
Merged

atinseau merged 1 commit into
masterfrom
fix/preserve-coerceschema-metadata

Conversation

@atinseau

Copy link
Copy Markdown
Owner

Changements apportés

  • Modification de inferProgramType dans src/analyzer.ts : retourne désormais ctx.coerceSchema complet au lieu de { type: coercedType }, préservant toutes les métadonnées supplémentaires (ex. constraints, description, format, minimum, etc.) dans l'outputSchema.
  • Mise à jour de index.ts (fichier de développement) : ajout de constraints: "IsUuid" sur la propriété ok du coerceSchema pour illustrer le cas d'usage.

Tests

  • Ajout de deux nouvelles suites dans tests/schema-type-coercion.spec.ts :
    • coerceSchema custom metadata preservation : vérifie que constraints, description, format, minimum, maximum et autres propriétés extra sont bien propagées dans l'outputSchema pour les templates primitifs, objets, tableaux et les cas combinés avec excludeTemplateExpression.
    • coerceSchema combinator metadata preservation (allOf / anyOf / oneOf) : vérifie la préservation des métadonnées dans les combinateurs, y compris les objets imbriqués, les propriétés partagées entre branches, l'absence de contamination entre propriétés sœurs, et les interactions avec excludeTemplateExpression.

🚀

@atinseau
atinseau merged commit aca2f17 into master Mar 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant