feat(valid): initial stable release v0.9.0

Struct validation backed by go-playground/validator/v10 with xerrors integration and pluggable i18n message providers.

What's included:
- Validator interface with Struct(v any) error method
- New(...Option) constructor with WithMessageProvider functional option
- MessageProvider interface for i18n; DefaultMessages (EN) and SpanishMessages (ES) built in
- ValidationErrors mapped to xerrors.ErrInvalidInput with field and tag context keys
- InvalidValidationError (non-struct input) mapped to xerrors.ErrInternal
- Full playground.ValidationErrors attached via WithError for callers needing all failures

Tested-via: todo-api POC integration
Reviewed-against: docs/adr/
This commit is contained in:
2026-03-18 21:02:26 +00:00
commit 328b80c060
16 changed files with 955 additions and 0 deletions

10
compliance_test.go Normal file
View File

@@ -0,0 +1,10 @@
package valid_test
import "code.nochebuena.dev/go/valid"
// Verify New returns a Validator.
var _ valid.Validator = valid.New()
// Verify DefaultMessages and SpanishMessages satisfy MessageProvider.
var _ valid.MessageProvider = valid.DefaultMessages
var _ valid.MessageProvider = valid.SpanishMessages