From 1f4cc53df833deed939942f0d1401a5b249099c4 Mon Sep 17 00:00:00 2001
From: Danis Kirasirov <dbgbbu@gmail.com>
Date: Fri, 28 Feb 2025 09:28:13 +0300
Subject: [PATCH] fix

---
 pkg/items/item.go    | 5 +++--
 pkg/schema/schema.go | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/pkg/items/item.go b/pkg/items/item.go
index 26aaf54f..ee00425f 100644
--- a/pkg/items/item.go
+++ b/pkg/items/item.go
@@ -296,9 +296,10 @@ func (i *Item) Encode(ctx context.Context, s *schema.Schema) (*Item, error) {
 func (i *Item) Decode(ctx context.Context, s *schema.Schema, opts ...field.EncodeOption) (*Item, error) {
 	res := *i
 	var err error
+	opt := field.NewEncodeOptions(opts...)
 	if i.Data != nil {
 		res.Data, err = s.Decode(ctx, i.Data, opts...)
-		if err != nil {
+		if err != nil && !opt.GetDataWithErrors {
 			return nil, err
 		}
 	}
@@ -310,7 +311,7 @@ func (i *Item) Decode(ctx context.Context, s *schema.Schema, opts ...field.Encod
 				continue
 			}
 			dt, err := schema.Decode(ctx, s, v, opts...) //nolint:govet // err shadows
-			if err != nil {
+			if err != nil && !opt.GetDataWithErrors {
 				return nil, err
 			}
 			res.Translations[l] = dt.(map[string]interface{})
diff --git a/pkg/schema/schema.go b/pkg/schema/schema.go
index 57dd8f9b..5088370d 100644
--- a/pkg/schema/schema.go
+++ b/pkg/schema/schema.go
@@ -153,8 +153,9 @@ func (s *Schema) Decode(ctx context.Context, v interface{}, opt ...field.EncodeO
 		return nil, err
 	}
 
+	opts := field.NewEncodeOptions(opt...)
 	v, err := Decode(ctx, s, v, opt...)
-	if err != nil {
+	if err != nil && !opts.GetDataWithErrors {
 		return nil, err
 	}
 	res, _ := v.(map[string]interface{})
-- 
GitLab