Skip to content

Commit f8eb757

Browse files
committed
Prettified SuperStruct types
1 parent eb8903e commit f8eb757

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/lib/superStruct.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
export type SuperStructArray<T extends Record<string, unknown>, Data, ArrayData = unknown> = {
1+
import type { Prettify } from './utils.js';
2+
3+
export type SuperStructArray<
4+
T extends Record<string, unknown>,
5+
Data,
6+
ArrayData = unknown
7+
> = Prettify<{
28
// eslint-disable-next-line @typescript-eslint/no-explicit-any
39
[Property in keyof T]?: T extends any
410
? NonNullable<T[Property]> extends Record<string, unknown>
@@ -13,17 +19,19 @@ export type SuperStructArray<T extends Record<string, unknown>, Data, ArrayData
1319
>
1420
: Data
1521
: never;
16-
};
22+
}>;
1723

18-
export type SuperStruct<T extends Record<string, unknown>, Data> = Partial<{
19-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
20-
[Property in keyof T]: T extends any
21-
? NonNullable<T[Property]> extends Record<string, unknown>
22-
? SuperStruct<NonNullable<T[Property]>, Data>
23-
: NonNullable<T[Property]> extends (infer A)[]
24-
? NonNullable<A> extends Record<string, unknown>
25-
? SuperStruct<NonNullable<A>, Data>
24+
export type SuperStruct<T extends Record<string, unknown>, Data> = Prettify<
25+
Partial<{
26+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
27+
[Property in keyof T]: T extends any
28+
? NonNullable<T[Property]> extends Record<string, unknown>
29+
? SuperStruct<NonNullable<T[Property]>, Data>
30+
: NonNullable<T[Property]> extends (infer A)[]
31+
? NonNullable<A> extends Record<string, unknown>
32+
? SuperStruct<NonNullable<A>, Data>
33+
: Data
2634
: Data
27-
: Data
28-
: never;
29-
}>;
35+
: never;
36+
}>
37+
>;

src/lib/superValidate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ export function setError<
268268

269269
const errArr = Array.isArray(error) ? error : [error];
270270

271-
if (!form.errors) form.errors = {};
271+
if (!form.errors) form.errors = {} as ValidationErrors<T>;
272272

273273
if (path === null || path === '') {
274274
if (!form.errors._errors) form.errors._errors = [];

0 commit comments

Comments
 (0)