1 | import { FieldValues, InternalFieldName, Ref } from './fields';
|
2 | import { BrowserNativeObject, IsAny, LiteralUnion, Merge } from './utils';
|
3 | import { RegisterOptions, ValidateResult } from './validator';
|
4 | export type Message = string;
|
5 | export type MultipleFieldErrors = {
|
6 | [K in keyof RegisterOptions]?: ValidateResult;
|
7 | } & {
|
8 | [key: string]: ValidateResult;
|
9 | };
|
10 | export type FieldError = {
|
11 | type: LiteralUnion<keyof RegisterOptions, string>;
|
12 | root?: FieldError;
|
13 | ref?: Ref;
|
14 | types?: MultipleFieldErrors;
|
15 | message?: Message;
|
16 | };
|
17 | export type ErrorOption = {
|
18 | message?: Message;
|
19 | type?: LiteralUnion<keyof RegisterOptions, string>;
|
20 | types?: MultipleFieldErrors;
|
21 | };
|
22 | export type DeepRequired<T> = T extends BrowserNativeObject | Blob ? T : {
|
23 | [K in keyof T]-?: NonNullable<DeepRequired<T[K]>>;
|
24 | };
|
25 | export type FieldErrorsImpl<T extends FieldValues = FieldValues> = {
|
26 | [K in keyof T]?: T[K] extends BrowserNativeObject | Blob ? FieldError : K extends 'root' | `root.${string}` ? GlobalError : T[K] extends object ? Merge<FieldError, FieldErrorsImpl<T[K]>> : FieldError;
|
27 | };
|
28 | export type GlobalError = Partial<{
|
29 | type: string | number;
|
30 | message: Message;
|
31 | }>;
|
32 | export type FieldErrors<T extends FieldValues = FieldValues> = Partial<FieldValues extends IsAny<FieldValues> ? any : FieldErrorsImpl<DeepRequired<T>>> & {
|
33 | root?: Record<string, GlobalError> & GlobalError;
|
34 | };
|
35 | export type InternalFieldErrors = Partial<Record<InternalFieldName, FieldError>>;
|
36 |
|
\ | No newline at end of file |