feat(ValidateForm): unify async validation APIs across frameworks - #8441
feat(ValidateForm): unify async validation APIs across frameworks#8441ArgoZhang wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
Sorry @ArgoZhang, you've used your own review budget of 250,000 diff characters for the last 7 days.
You can request another review in 22 hours and 55 minutes by commenting @sourcery-ai review. Upgrade to get a review now.
Reviewer's GuideUnifies async form and field validation across frameworks by adding pre-.NET 11 EditContext compatibility extensions, centralizing task and cancellation lifecycles, exposing pending/fault state, simplifying ValidateForm integration, and adding broad lifecycle and exception coverage. Sequence diagram for unified async form validationsequenceDiagram
participant Caller
participant EditContext
participant ValidateForm as ValidateForm
participant Validator as AsyncValidator
Caller->>EditContext: ValidateAsync(cancellationToken)
EditContext->>EditContext: CancelAsyncFieldValidations()
EditContext->>ValidateForm: ValidateModelAsync(cancellationToken)
ValidateForm->>EditContext: AddAsyncValidator(validator)
EditContext->>Validator: validator(cancellationToken)
Validator-->>EditContext: Task
EditContext->>EditContext: await task
EditContext-->>Caller: bool result
State diagram for async validation lifecyclestateDiagram-v2
[*] --> Idle
Idle --> Pending: ValidateAsync()
Pending --> Idle: tasks complete successfully
Pending --> Faulted: task fault or cancellation
Faulted --> Idle: next validation pass
Idle --> FieldPending: RegisterAsyncFieldValidator()
FieldPending --> Idle: field task completes
FieldPending --> FieldPending: RegisterAsyncFieldValidator() / cancel previous task
FieldPending --> FieldFaulted: field task faults
FieldFaulted --> Idle: next field validation
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8441 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 772 774 +2
Lines 34798 34940 +142
==========================================
+ Hits 34798 34940 +142
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Link issues
fixes #8440
Summary By Copilot
Regression?
Risk
Changes async task lifecycles. Older frameworks now reject synchronous
Validate()calls that register async validators.Verification
The .NET 10 unit-test project builds successfully. Unit tests were not run by Copilot.
Packaging changes reviewed?
☑️ Self Check before Merge
Summary by Sourcery
Unify asynchronous form and field validation behavior across supported Blazor frameworks.
New Features:
Bug Fixes:
Enhancements:
Tests: