validasi_gen 0.1.0-dev.2
validasi_gen: ^0.1.0-dev.2 copied to clipboard
Code generator for Validasi - compile-time validation with zero-cost abstraction.
0.1.0-dev.2 #
- Add cross-field validation support with
validateFieldsand related methods. - Add async validation support with
validateAsyncmethods in generated code. - Add
@RefineFnannotation withFailFn, remove old@Refine/@RefineAsync. - Prevent nested fields from being processed in
generateFromFormmethod. - Refactor field generation and validation logic; improve codegen formatting.
- Add support for indexed fields in validation framework.
- Update docs and improve generated code formatting.
0.1.0-dev.1 #
- Initial development release.
- Generates
validate()extension method for@ValidateClass()annotated classes. - Supports
MinLength,MaxLength,OneOf,Required,Nullablestring rules via direct Dart codegen (Level 2). - Add per-field validation: for each
@ValidateClass()type, emit a sealedXFields<V>hierarchy that extendsValidasiKey<X>fromvalidasi_annotation. - Each annotated or nested field becomes a public
XFieldNameFieldleaf, exposingname,extract(X owner), andvalidate(V? value). - Add
validateField<V>(XFields<V> field)on the generated extension, withVinferred from the field key. - Standalone usage is supported via the leaf directly:
XFields.email.validate('value'). - Pattern matching is exhaustive on the sealed
XFieldsfor downstream form libraries. - Existing
validate()is unchanged in behavior; codegen now shares the rule emission helpers. - Add
generateFieldsbuild option (defaulttrue) and matching@ValidateClass(generateFields: ...)per-class override. When set tofalse, theXFieldssealed class, the per-field leaves, and thevalidateField<V>method are not emitted — only the existingvalidate()extension is generated. - Per-class annotation takes precedence over the build-level default. A non-bool value in
build.yamlis rejected at builder construction with anInvalidGenerationSourceError.