Skip to content

fix: collect imports for enums in separate files#155

Open
Barba2k2 wants to merge 5 commits intomainfrom
fix/152-enum-imports-generated-code
Open

fix: collect imports for enums in separate files#155
Barba2k2 wants to merge 5 commits intomainfrom
fix/152-enum-imports-generated-code

Conversation

@Barba2k2
Copy link
Copy Markdown
Contributor

Summary

  • Fixes [BUG] Vaden não importa enums no código gerado pelo Build Runner #152 — enums defined in separate files were not imported in the generated vaden_application.dart, causing Undefined name compilation errors
  • Added type import collection for DTO fields and controller method parameters in vaden_class_scanner
  • Handles enums, List<Enum>, Future<Enum>, and inherited method parameters

Changes Made

  • vaden_class_scanner/lib/src/setups/initial.dart: Added _collectFieldTypeImports, _collectMethodParamTypeImports, and _addTypeImport helpers that resolve library URIs for non-core types referenced by DTO fields and controller parameters. Integrated into _selectComponent for DTO and Controller processing.
  • vaden/example/: Added reproduction test cases with enums in separate files (ProductCategory, OrderStatus), DTOs using them (ProductDto, OrderDto), and a controller (OrderController).

Root Cause

_checkMasterAnnotations only discovers classes with Vaden annotations (@DTO, @Controller, etc.). Plain enums in separate files are never scanned, so their import URIs are never added to the generated output. The fix collects imports by inspecting the actual types referenced in fields and method parameters.

Checklist

  • Tests have been added or updated.
  • Code review completed.

Related Issue

Resolves #152

@Barba2k2 Barba2k2 requested a review from jacobaraujo7 March 18, 2026 00:27
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.

[BUG] Vaden não importa enums no código gerado pelo Build Runner

1 participant