Skip to content

Commit 2e9bc7c

Browse files
authored
Fix(zodResolver): error paths in complex unions #787 (#819)
* fix: error paths in complex unions * fixes zod fieldError type * Fix FiledErrors type assertion * Remove unnecessary type assertion * Remove more unnecessary type assertions
1 parent e95721d commit 2e9bc7c

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

valibot/src/valibot.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,7 @@ export function valibotResolver<Input extends FieldValues, Context, Output>(
129129

130130
// Otherwise, return resolver result with values
131131
return {
132-
values: resolverOptions.raw
133-
? Object.assign({}, values)
134-
: (result.output as FieldValues),
132+
values: resolverOptions.raw ? Object.assign({}, values) : result.output,
135133
errors: {},
136134
};
137135
};

vine/src/vine.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
} from '@vinejs/vine/build/src/types';
77
import {
88
FieldError,
9-
FieldErrors,
109
FieldValues,
1110
Resolver,
1211
appendErrors,
@@ -94,7 +93,7 @@ export function vineResolver<Input extends FieldValues, Context, Output>(
9493
options.shouldUseNativeValidation && validateFieldsNatively({}, options);
9594

9695
return {
97-
errors: {} as FieldErrors,
96+
errors: {},
9897
values: resolverOptions.raw ? Object.assign({}, values) : data,
9998
};
10099
} catch (error: any) {

zod/src/zod.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';
22
import {
33
FieldError,
4-
FieldErrors,
54
FieldValues,
65
Resolver,
76
ResolverError,
@@ -105,7 +104,9 @@ function parseZod4Issues(
105104

106105
if (error.code === 'invalid_union') {
107106
error.errors.forEach((unionError) =>
108-
unionError.forEach((e) => zodErrors.push(e)),
107+
unionError.forEach((e) =>
108+
zodErrors.push({ ...e, path: [...error.path, ...e.path] }),
109+
),
109110
);
110111
}
111112

@@ -254,7 +255,7 @@ export function zodResolver<Input extends FieldValues, Context, Output>(
254255
validateFieldsNatively({}, options);
255256

256257
return {
257-
errors: {} as FieldErrors,
258+
errors: {},
258259
values: resolverOptions.raw ? Object.assign({}, values) : data,
259260
} satisfies ResolverSuccess<Output | Input>;
260261
} catch (error) {
@@ -288,7 +289,7 @@ export function zodResolver<Input extends FieldValues, Context, Output>(
288289
validateFieldsNatively({}, options);
289290

290291
return {
291-
errors: {} as FieldErrors,
292+
errors: {},
292293
values: resolverOptions.raw ? Object.assign({}, values) : data,
293294
} satisfies ResolverSuccess<Output | Input>;
294295
} catch (error) {

0 commit comments

Comments
 (0)