@tanstack/form-core 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/FieldApi.d.ts +94 -0
- package/dist/cjs/FormApi.d.ts +118 -0
- package/dist/cjs/index.cjs +926 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +5 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.js +926 -0
- package/dist/cjs/mergeForm.d.ts +4 -0
- package/dist/cjs/tests/FieldApi.spec.d.ts +1 -0
- package/dist/cjs/tests/FieldApi.test-d.d.ts +1 -0
- package/dist/cjs/tests/FormApi.spec.d.ts +1 -0
- package/dist/cjs/tests/mutateMergeDeep.spec.d.ts +1 -0
- package/dist/cjs/tests/utils.d.ts +1 -0
- package/dist/cjs/tests/utils.spec.d.ts +1 -0
- package/dist/cjs/types.d.ts +14 -0
- package/dist/cjs/utils.d.ts +57 -0
- package/dist/mjs/FieldApi.d.ts +94 -0
- package/dist/mjs/FormApi.d.ts +118 -0
- package/dist/mjs/index.d.mts +5 -0
- package/dist/mjs/index.d.ts +5 -0
- package/dist/mjs/index.js +926 -0
- package/dist/mjs/index.mjs +926 -0
- package/dist/mjs/index.mjs.map +1 -0
- package/dist/mjs/mergeForm.d.ts +4 -0
- package/dist/mjs/tests/FieldApi.spec.d.ts +1 -0
- package/dist/mjs/tests/FieldApi.test-d.d.ts +1 -0
- package/dist/mjs/tests/FormApi.spec.d.ts +1 -0
- package/dist/mjs/tests/mutateMergeDeep.spec.d.ts +1 -0
- package/dist/mjs/tests/utils.d.ts +1 -0
- package/dist/mjs/tests/utils.spec.d.ts +1 -0
- package/dist/mjs/types.d.ts +14 -0
- package/dist/mjs/utils.d.ts +57 -0
- package/package.json +16 -21
- package/src/FieldApi.ts +53 -38
- package/src/FormApi.ts +59 -23
- package/src/index.ts +1 -0
- package/src/mergeForm.ts +42 -0
- package/src/tests/FormApi.spec.ts +1 -0
- package/src/tests/mutateMergeDeep.spec.ts +32 -0
- package/src/types.ts +2 -1
- package/src/utils.ts +40 -23
- package/build/legacy/FieldApi.cjs +0 -313
- package/build/legacy/FieldApi.cjs.map +0 -1
- package/build/legacy/FieldApi.d.cts +0 -3
- package/build/legacy/FieldApi.d.ts +0 -3
- package/build/legacy/FieldApi.js +0 -288
- package/build/legacy/FieldApi.js.map +0 -1
- package/build/legacy/FormApi.cjs +0 -445
- package/build/legacy/FormApi.cjs.map +0 -1
- package/build/legacy/FormApi.d.cts +0 -3
- package/build/legacy/FormApi.d.ts +0 -3
- package/build/legacy/FormApi.js +0 -428
- package/build/legacy/FormApi.js.map +0 -1
- package/build/legacy/index.cjs +0 -31
- package/build/legacy/index.cjs.map +0 -1
- package/build/legacy/index.d.cts +0 -257
- package/build/legacy/index.d.ts +0 -257
- package/build/legacy/index.js +0 -6
- package/build/legacy/index.js.map +0 -1
- package/build/legacy/types.cjs +0 -19
- package/build/legacy/types.cjs.map +0 -1
- package/build/legacy/types.d.cts +0 -16
- package/build/legacy/types.d.ts +0 -16
- package/build/legacy/types.js +0 -1
- package/build/legacy/types.js.map +0 -1
- package/build/legacy/utils.cjs +0 -187
- package/build/legacy/utils.cjs.map +0 -1
- package/build/legacy/utils.d.cts +0 -3
- package/build/legacy/utils.d.ts +0 -3
- package/build/legacy/utils.js +0 -156
- package/build/legacy/utils.js.map +0 -1
- package/build/modern/FieldApi.cjs +0 -312
- package/build/modern/FieldApi.cjs.map +0 -1
- package/build/modern/FieldApi.d.cts +0 -3
- package/build/modern/FieldApi.d.ts +0 -3
- package/build/modern/FieldApi.js +0 -287
- package/build/modern/FieldApi.js.map +0 -1
- package/build/modern/FormApi.cjs +0 -439
- package/build/modern/FormApi.cjs.map +0 -1
- package/build/modern/FormApi.d.cts +0 -3
- package/build/modern/FormApi.d.ts +0 -3
- package/build/modern/FormApi.js +0 -422
- package/build/modern/FormApi.js.map +0 -1
- package/build/modern/index.cjs +0 -31
- package/build/modern/index.cjs.map +0 -1
- package/build/modern/index.d.cts +0 -257
- package/build/modern/index.d.ts +0 -257
- package/build/modern/index.js +0 -6
- package/build/modern/index.js.map +0 -1
- package/build/modern/types.cjs +0 -19
- package/build/modern/types.cjs.map +0 -1
- package/build/modern/types.d.cts +0 -16
- package/build/modern/types.d.ts +0 -16
- package/build/modern/types.js +0 -1
- package/build/modern/types.js.map +0 -1
- package/build/modern/utils.cjs +0 -187
- package/build/modern/utils.cjs.map +0 -1
- package/build/modern/utils.d.cts +0 -3
- package/build/modern/utils.d.ts +0 -3
- package/build/modern/utils.js +0 -156
- package/build/modern/utils.js.map +0 -1
package/build/legacy/index.d.cts
DELETED
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { Store } from '@tanstack/store';
|
|
2
|
-
import { ValidationCause, Validator, ValidationError, ValidationErrorMapKeys, ValidationErrorMap } from './types.cjs';
|
|
3
|
-
|
|
4
|
-
type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput;
|
|
5
|
-
type Updater<TInput, TOutput = TInput> = TOutput | UpdaterFn<TInput, TOutput>;
|
|
6
|
-
declare function functionalUpdate<TInput, TOutput = TInput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
|
|
7
|
-
/**
|
|
8
|
-
* Get a value from an object using a path, including dot notation.
|
|
9
|
-
*/
|
|
10
|
-
declare function getBy(obj: any, path: any): any;
|
|
11
|
-
/**
|
|
12
|
-
* Set a value on an object using a path, including dot notation.
|
|
13
|
-
*/
|
|
14
|
-
declare function setBy(obj: any, _path: any, updater: Updater<any>): any;
|
|
15
|
-
/**
|
|
16
|
-
* Delete a field on an object using a path, including dot notation.
|
|
17
|
-
*/
|
|
18
|
-
declare function deleteBy(obj: any, _path: any): any;
|
|
19
|
-
declare function isNonEmptyArray(obj: any): boolean;
|
|
20
|
-
interface AsyncValidatorArrayPartialOptions<T> {
|
|
21
|
-
validators?: T;
|
|
22
|
-
asyncDebounceMs?: number;
|
|
23
|
-
}
|
|
24
|
-
interface AsyncValidator<T> {
|
|
25
|
-
cause: ValidationCause;
|
|
26
|
-
validate: T;
|
|
27
|
-
debounceMs: number;
|
|
28
|
-
}
|
|
29
|
-
declare function getAsyncValidatorArray<T>(cause: ValidationCause, options: AsyncValidatorArrayPartialOptions<T>): T extends FieldValidators<any, any> ? Array<AsyncValidator<T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']>> : T extends FormValidators<any, any> ? Array<AsyncValidator<T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']>> : never;
|
|
30
|
-
interface SyncValidatorArrayPartialOptions<T> {
|
|
31
|
-
validators?: T;
|
|
32
|
-
}
|
|
33
|
-
interface SyncValidator<T> {
|
|
34
|
-
cause: ValidationCause;
|
|
35
|
-
validate: T;
|
|
36
|
-
}
|
|
37
|
-
declare function getSyncValidatorArray<T>(cause: ValidationCause, options: SyncValidatorArrayPartialOptions<T>): T extends FieldValidators<any, any> ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>> : T extends FormValidators<any, any> ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>> : never;
|
|
38
|
-
type RequiredByKey<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
39
|
-
type ComputeRange<N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : ComputeRange<N, [...Result, Result['length']]>;
|
|
40
|
-
type Index40 = ComputeRange<40>[number];
|
|
41
|
-
type IsTuple<T> = T extends readonly any[] & {
|
|
42
|
-
length: infer Length;
|
|
43
|
-
} ? Length extends Index40 ? T : never : never;
|
|
44
|
-
type AllowedIndexes<Tuple extends ReadonlyArray<any>, Keys extends number = never> = Tuple extends readonly [] ? Keys : Tuple extends readonly [infer _, ...infer Tail] ? AllowedIndexes<Tail, Keys | Tail['length']> : Keys;
|
|
45
|
-
type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5 ? never : unknown extends T ? string : object extends T ? string : T extends readonly any[] & IsTuple<T> ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth> : T extends any[] ? DeepKeys<T[number], [...TDepth, any]> : T extends Date ? never : T extends object ? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth> : never;
|
|
46
|
-
type DeepKeysPrefix<T, TPrefix, TDepth extends any[]> = TPrefix extends keyof T & (number | string) ? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}` : never;
|
|
47
|
-
type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & string] : never;
|
|
48
|
-
type Narrowable = string | number | bigint | boolean;
|
|
49
|
-
type NarrowRaw<A> = (A extends [] ? [] : never) | (A extends Narrowable ? A : never) | {
|
|
50
|
-
[K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw<A[K]>;
|
|
51
|
-
};
|
|
52
|
-
type Narrow<A> = Try<A, [], NarrowRaw<A>>;
|
|
53
|
-
type Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch;
|
|
54
|
-
type Pretty<T> = {
|
|
55
|
-
[K in keyof T]: T[K];
|
|
56
|
-
} & {};
|
|
57
|
-
|
|
58
|
-
type FormValidateFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
59
|
-
value: TFormData;
|
|
60
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
61
|
-
}) => ValidationError;
|
|
62
|
-
type FormValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer TFN> ? TFN : FormValidateFn<TFormData, TFormValidator>;
|
|
63
|
-
type FormValidateAsyncFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
64
|
-
value: TFormData;
|
|
65
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
66
|
-
signal: AbortSignal;
|
|
67
|
-
}) => ValidationError | Promise<ValidationError>;
|
|
68
|
-
type FormAsyncValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer FFN> ? FFN | FormValidateAsyncFn<TFormData, TFormValidator> : FormValidateAsyncFn<TFormData, TFormValidator>;
|
|
69
|
-
interface FormValidators<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
70
|
-
onMount?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
71
|
-
onChange?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
72
|
-
onChangeAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
73
|
-
onChangeAsyncDebounceMs?: number;
|
|
74
|
-
onBlur?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
75
|
-
onBlurAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
76
|
-
onBlurAsyncDebounceMs?: number;
|
|
77
|
-
onSubmit?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
78
|
-
onSubmitAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
79
|
-
onSubmitAsyncDebounceMs?: number;
|
|
80
|
-
}
|
|
81
|
-
type FormOptions<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = {
|
|
82
|
-
defaultValues?: TFormData;
|
|
83
|
-
defaultState?: Partial<FormState<TFormData>>;
|
|
84
|
-
asyncAlways?: boolean;
|
|
85
|
-
asyncDebounceMs?: number;
|
|
86
|
-
validatorAdapter?: TFormValidator;
|
|
87
|
-
validators?: FormValidators<TFormData, TFormValidator>;
|
|
88
|
-
onSubmit?: (props: {
|
|
89
|
-
value: TFormData;
|
|
90
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
91
|
-
}) => any | Promise<any>;
|
|
92
|
-
onSubmitInvalid?: (props: {
|
|
93
|
-
value: TFormData;
|
|
94
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
95
|
-
}) => void;
|
|
96
|
-
};
|
|
97
|
-
type ValidationMeta = {
|
|
98
|
-
lastAbortController: AbortController;
|
|
99
|
-
};
|
|
100
|
-
type FieldInfo<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = {
|
|
101
|
-
instances: Record<string, FieldApi<TFormData, any, Validator<unknown, unknown> | undefined, TFormValidator>>;
|
|
102
|
-
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
103
|
-
};
|
|
104
|
-
type FormState<TFormData> = {
|
|
105
|
-
values: TFormData;
|
|
106
|
-
isFormValidating: boolean;
|
|
107
|
-
isFormValid: boolean;
|
|
108
|
-
errors: ValidationError[];
|
|
109
|
-
errorMap: ValidationErrorMap;
|
|
110
|
-
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
111
|
-
fieldMeta: Record<DeepKeys<TFormData>, FieldMeta>;
|
|
112
|
-
isFieldsValidating: boolean;
|
|
113
|
-
isFieldsValid: boolean;
|
|
114
|
-
isSubmitting: boolean;
|
|
115
|
-
isTouched: boolean;
|
|
116
|
-
isSubmitted: boolean;
|
|
117
|
-
isValidating: boolean;
|
|
118
|
-
isValid: boolean;
|
|
119
|
-
canSubmit: boolean;
|
|
120
|
-
submissionAttempts: number;
|
|
121
|
-
};
|
|
122
|
-
declare class FormApi<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
123
|
-
options: FormOptions<TFormData, TFormValidator>;
|
|
124
|
-
store: Store<FormState<TFormData>>;
|
|
125
|
-
state: FormState<TFormData>;
|
|
126
|
-
fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData, TFormValidator>>;
|
|
127
|
-
constructor(opts?: FormOptions<TFormData, TFormValidator>);
|
|
128
|
-
runValidator<TValue extends {
|
|
129
|
-
value: TFormData;
|
|
130
|
-
formApi: FormApi<any, any>;
|
|
131
|
-
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
132
|
-
validate: TType extends 'validate' ? FormValidateOrFn<TFormData, TFormValidator> : FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
133
|
-
value: TValue;
|
|
134
|
-
type: TType;
|
|
135
|
-
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
136
|
-
mount: () => void;
|
|
137
|
-
update: (options?: FormOptions<TFormData, TFormValidator>) => void;
|
|
138
|
-
reset: () => void;
|
|
139
|
-
validateAllFields: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
140
|
-
validateSync: (cause: ValidationCause) => {
|
|
141
|
-
hasErrored: boolean;
|
|
142
|
-
};
|
|
143
|
-
validateAsync: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
144
|
-
validate: (cause: ValidationCause) => ValidationError[] | Promise<ValidationError[]>;
|
|
145
|
-
handleSubmit: () => Promise<void>;
|
|
146
|
-
getFieldValue: <TField extends DeepKeys<TFormData>>(field: TField) => DeepValue<TFormData, TField>;
|
|
147
|
-
getFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField) => FieldMeta | undefined;
|
|
148
|
-
getFieldInfo: <TField extends DeepKeys<TFormData>>(field: TField) => FieldInfo<TFormData, TFormValidator>;
|
|
149
|
-
setFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>) => void;
|
|
150
|
-
setFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: {
|
|
151
|
-
touch?: boolean;
|
|
152
|
-
}) => void;
|
|
153
|
-
deleteField: <TField extends DeepKeys<TFormData>>(field: TField) => void;
|
|
154
|
-
pushFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
155
|
-
touch?: boolean;
|
|
156
|
-
}) => void;
|
|
157
|
-
insertFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
158
|
-
touch?: boolean;
|
|
159
|
-
}) => void;
|
|
160
|
-
removeFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, opts?: {
|
|
161
|
-
touch?: boolean;
|
|
162
|
-
}) => void;
|
|
163
|
-
swapFieldValues: <TField extends DeepKeys<TFormData>>(field: TField, index1: number, index2: number) => void;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
type FieldValidateFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (props: {
|
|
167
|
-
value: TData;
|
|
168
|
-
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
169
|
-
}) => ValidationError;
|
|
170
|
-
type FieldValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
171
|
-
type FieldValidateAsyncFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (options: {
|
|
172
|
-
value: TData;
|
|
173
|
-
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
174
|
-
signal: AbortSignal;
|
|
175
|
-
}) => ValidationError | Promise<ValidationError>;
|
|
176
|
-
type FieldAsyncValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
177
|
-
interface FieldValidators<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
178
|
-
onMount?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
179
|
-
onChange?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
180
|
-
onChangeAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
181
|
-
onChangeAsyncDebounceMs?: number;
|
|
182
|
-
onBlur?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
183
|
-
onBlurAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
184
|
-
onBlurAsyncDebounceMs?: number;
|
|
185
|
-
onSubmit?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
186
|
-
onSubmitAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
187
|
-
onSubmitAsyncDebounceMs?: number;
|
|
188
|
-
}
|
|
189
|
-
interface FieldOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
190
|
-
name: TName;
|
|
191
|
-
index?: TData extends any[] ? number : never;
|
|
192
|
-
defaultValue?: TData;
|
|
193
|
-
asyncDebounceMs?: number;
|
|
194
|
-
asyncAlways?: boolean;
|
|
195
|
-
preserveValue?: boolean;
|
|
196
|
-
validatorAdapter?: TFieldValidator;
|
|
197
|
-
validators?: FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
198
|
-
defaultMeta?: Partial<FieldMeta>;
|
|
199
|
-
}
|
|
200
|
-
interface FieldApiOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> extends FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData> {
|
|
201
|
-
form: FormApi<TParentData, TFormValidator>;
|
|
202
|
-
}
|
|
203
|
-
type FieldMeta = {
|
|
204
|
-
isTouched: boolean;
|
|
205
|
-
touchedErrors: ValidationError[];
|
|
206
|
-
errors: ValidationError[];
|
|
207
|
-
errorMap: ValidationErrorMap;
|
|
208
|
-
isValidating: boolean;
|
|
209
|
-
};
|
|
210
|
-
type FieldState<TData> = {
|
|
211
|
-
value: TData;
|
|
212
|
-
meta: FieldMeta;
|
|
213
|
-
};
|
|
214
|
-
type ResolveName<TParentData> = unknown extends TParentData ? string : DeepKeys<TParentData>;
|
|
215
|
-
declare class FieldApi<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
216
|
-
uid: number;
|
|
217
|
-
form: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>['form'];
|
|
218
|
-
name: DeepKeys<TParentData>;
|
|
219
|
-
options: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
220
|
-
store: Store<FieldState<TData>>;
|
|
221
|
-
state: FieldState<TData>;
|
|
222
|
-
prevState: FieldState<TData>;
|
|
223
|
-
constructor(opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>);
|
|
224
|
-
runValidator<TValue extends {
|
|
225
|
-
value: TData;
|
|
226
|
-
fieldApi: FieldApi<any, any, any, any>;
|
|
227
|
-
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
228
|
-
validate: TType extends 'validate' ? FieldValidateOrFn<any, any, any, any> : FieldAsyncValidateOrFn<any, any, any, any>;
|
|
229
|
-
value: TValue;
|
|
230
|
-
type: TType;
|
|
231
|
-
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
232
|
-
mount: () => () => void;
|
|
233
|
-
update: (opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>) => void;
|
|
234
|
-
getValue: () => TData;
|
|
235
|
-
setValue: (updater: Updater<TData>, options?: {
|
|
236
|
-
touch?: boolean;
|
|
237
|
-
notify?: boolean;
|
|
238
|
-
}) => void;
|
|
239
|
-
_getMeta: () => FieldMeta | undefined;
|
|
240
|
-
getMeta: () => FieldMeta;
|
|
241
|
-
setMeta: (updater: Updater<FieldMeta>) => void;
|
|
242
|
-
getInfo: () => FieldInfo<TParentData, TFormValidator>;
|
|
243
|
-
pushValue: (value: TData extends any[] ? TData[number] : never) => void;
|
|
244
|
-
insertValue: (index: number, value: TData extends any[] ? TData[number] : never) => void;
|
|
245
|
-
removeValue: (index: number) => void;
|
|
246
|
-
swapValues: (aIndex: number, bIndex: number) => void;
|
|
247
|
-
getSubField: <TSubName extends DeepKeys<TData>, TSubData extends DeepValue<TData, TSubName> = DeepValue<TData, TSubName>>(name: TSubName) => FieldApi<TData, TSubName, Validator<TSubData, unknown> | undefined, Validator<TData, unknown> | undefined, TSubData>;
|
|
248
|
-
validateSync: (value: TData | undefined, cause: ValidationCause) => {
|
|
249
|
-
hasErrored: boolean;
|
|
250
|
-
};
|
|
251
|
-
validateAsync: (value: TData | undefined, cause: ValidationCause) => Promise<ValidationError[]>;
|
|
252
|
-
validate: (cause: ValidationCause, value?: TData) => ValidationError[] | Promise<ValidationError[]>;
|
|
253
|
-
handleChange: (updater: Updater<TData>) => void;
|
|
254
|
-
handleBlur: () => void;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
export { DeepKeys, DeepValue, FieldApi, FieldApiOptions, FieldAsyncValidateOrFn, FieldInfo, FieldMeta, FieldOptions, FieldState, FieldValidateAsyncFn, FieldValidateFn, FieldValidateOrFn, FieldValidators, FormApi, FormAsyncValidateOrFn, FormOptions, FormState, FormValidateAsyncFn, FormValidateFn, FormValidateOrFn, FormValidators, Narrow, Pretty, RequiredByKey, ResolveName, Updater, UpdaterFn, ValidationCause, ValidationError, ValidationErrorMap, ValidationErrorMapKeys, ValidationMeta, Validator, deleteBy, functionalUpdate, getAsyncValidatorArray, getBy, getSyncValidatorArray, isNonEmptyArray, setBy };
|
package/build/legacy/index.d.ts
DELETED
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { Store } from '@tanstack/store';
|
|
2
|
-
import { ValidationCause, Validator, ValidationError, ValidationErrorMapKeys, ValidationErrorMap } from './types.js';
|
|
3
|
-
|
|
4
|
-
type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput;
|
|
5
|
-
type Updater<TInput, TOutput = TInput> = TOutput | UpdaterFn<TInput, TOutput>;
|
|
6
|
-
declare function functionalUpdate<TInput, TOutput = TInput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
|
|
7
|
-
/**
|
|
8
|
-
* Get a value from an object using a path, including dot notation.
|
|
9
|
-
*/
|
|
10
|
-
declare function getBy(obj: any, path: any): any;
|
|
11
|
-
/**
|
|
12
|
-
* Set a value on an object using a path, including dot notation.
|
|
13
|
-
*/
|
|
14
|
-
declare function setBy(obj: any, _path: any, updater: Updater<any>): any;
|
|
15
|
-
/**
|
|
16
|
-
* Delete a field on an object using a path, including dot notation.
|
|
17
|
-
*/
|
|
18
|
-
declare function deleteBy(obj: any, _path: any): any;
|
|
19
|
-
declare function isNonEmptyArray(obj: any): boolean;
|
|
20
|
-
interface AsyncValidatorArrayPartialOptions<T> {
|
|
21
|
-
validators?: T;
|
|
22
|
-
asyncDebounceMs?: number;
|
|
23
|
-
}
|
|
24
|
-
interface AsyncValidator<T> {
|
|
25
|
-
cause: ValidationCause;
|
|
26
|
-
validate: T;
|
|
27
|
-
debounceMs: number;
|
|
28
|
-
}
|
|
29
|
-
declare function getAsyncValidatorArray<T>(cause: ValidationCause, options: AsyncValidatorArrayPartialOptions<T>): T extends FieldValidators<any, any> ? Array<AsyncValidator<T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']>> : T extends FormValidators<any, any> ? Array<AsyncValidator<T['onChangeAsync'] | T['onBlurAsync'] | T['onSubmitAsync']>> : never;
|
|
30
|
-
interface SyncValidatorArrayPartialOptions<T> {
|
|
31
|
-
validators?: T;
|
|
32
|
-
}
|
|
33
|
-
interface SyncValidator<T> {
|
|
34
|
-
cause: ValidationCause;
|
|
35
|
-
validate: T;
|
|
36
|
-
}
|
|
37
|
-
declare function getSyncValidatorArray<T>(cause: ValidationCause, options: SyncValidatorArrayPartialOptions<T>): T extends FieldValidators<any, any> ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>> : T extends FormValidators<any, any> ? Array<SyncValidator<T['onChange'] | T['onBlur'] | T['onSubmit']>> : never;
|
|
38
|
-
type RequiredByKey<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
39
|
-
type ComputeRange<N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : ComputeRange<N, [...Result, Result['length']]>;
|
|
40
|
-
type Index40 = ComputeRange<40>[number];
|
|
41
|
-
type IsTuple<T> = T extends readonly any[] & {
|
|
42
|
-
length: infer Length;
|
|
43
|
-
} ? Length extends Index40 ? T : never : never;
|
|
44
|
-
type AllowedIndexes<Tuple extends ReadonlyArray<any>, Keys extends number = never> = Tuple extends readonly [] ? Keys : Tuple extends readonly [infer _, ...infer Tail] ? AllowedIndexes<Tail, Keys | Tail['length']> : Keys;
|
|
45
|
-
type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5 ? never : unknown extends T ? string : object extends T ? string : T extends readonly any[] & IsTuple<T> ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth> : T extends any[] ? DeepKeys<T[number], [...TDepth, any]> : T extends Date ? never : T extends object ? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth> : never;
|
|
46
|
-
type DeepKeysPrefix<T, TPrefix, TDepth extends any[]> = TPrefix extends keyof T & (number | string) ? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}` : never;
|
|
47
|
-
type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & string] : never;
|
|
48
|
-
type Narrowable = string | number | bigint | boolean;
|
|
49
|
-
type NarrowRaw<A> = (A extends [] ? [] : never) | (A extends Narrowable ? A : never) | {
|
|
50
|
-
[K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw<A[K]>;
|
|
51
|
-
};
|
|
52
|
-
type Narrow<A> = Try<A, [], NarrowRaw<A>>;
|
|
53
|
-
type Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch;
|
|
54
|
-
type Pretty<T> = {
|
|
55
|
-
[K in keyof T]: T[K];
|
|
56
|
-
} & {};
|
|
57
|
-
|
|
58
|
-
type FormValidateFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
59
|
-
value: TFormData;
|
|
60
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
61
|
-
}) => ValidationError;
|
|
62
|
-
type FormValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer TFN> ? TFN : FormValidateFn<TFormData, TFormValidator>;
|
|
63
|
-
type FormValidateAsyncFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = (props: {
|
|
64
|
-
value: TFormData;
|
|
65
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
66
|
-
signal: AbortSignal;
|
|
67
|
-
}) => ValidationError | Promise<ValidationError>;
|
|
68
|
-
type FormAsyncValidateOrFn<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = TFormValidator extends Validator<TFormData, infer FFN> ? FFN | FormValidateAsyncFn<TFormData, TFormValidator> : FormValidateAsyncFn<TFormData, TFormValidator>;
|
|
69
|
-
interface FormValidators<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
70
|
-
onMount?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
71
|
-
onChange?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
72
|
-
onChangeAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
73
|
-
onChangeAsyncDebounceMs?: number;
|
|
74
|
-
onBlur?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
75
|
-
onBlurAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
76
|
-
onBlurAsyncDebounceMs?: number;
|
|
77
|
-
onSubmit?: FormValidateOrFn<TFormData, TFormValidator>;
|
|
78
|
-
onSubmitAsync?: FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
79
|
-
onSubmitAsyncDebounceMs?: number;
|
|
80
|
-
}
|
|
81
|
-
type FormOptions<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = {
|
|
82
|
-
defaultValues?: TFormData;
|
|
83
|
-
defaultState?: Partial<FormState<TFormData>>;
|
|
84
|
-
asyncAlways?: boolean;
|
|
85
|
-
asyncDebounceMs?: number;
|
|
86
|
-
validatorAdapter?: TFormValidator;
|
|
87
|
-
validators?: FormValidators<TFormData, TFormValidator>;
|
|
88
|
-
onSubmit?: (props: {
|
|
89
|
-
value: TFormData;
|
|
90
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
91
|
-
}) => any | Promise<any>;
|
|
92
|
-
onSubmitInvalid?: (props: {
|
|
93
|
-
value: TFormData;
|
|
94
|
-
formApi: FormApi<TFormData, TFormValidator>;
|
|
95
|
-
}) => void;
|
|
96
|
-
};
|
|
97
|
-
type ValidationMeta = {
|
|
98
|
-
lastAbortController: AbortController;
|
|
99
|
-
};
|
|
100
|
-
type FieldInfo<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> = {
|
|
101
|
-
instances: Record<string, FieldApi<TFormData, any, Validator<unknown, unknown> | undefined, TFormValidator>>;
|
|
102
|
-
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
103
|
-
};
|
|
104
|
-
type FormState<TFormData> = {
|
|
105
|
-
values: TFormData;
|
|
106
|
-
isFormValidating: boolean;
|
|
107
|
-
isFormValid: boolean;
|
|
108
|
-
errors: ValidationError[];
|
|
109
|
-
errorMap: ValidationErrorMap;
|
|
110
|
-
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>;
|
|
111
|
-
fieldMeta: Record<DeepKeys<TFormData>, FieldMeta>;
|
|
112
|
-
isFieldsValidating: boolean;
|
|
113
|
-
isFieldsValid: boolean;
|
|
114
|
-
isSubmitting: boolean;
|
|
115
|
-
isTouched: boolean;
|
|
116
|
-
isSubmitted: boolean;
|
|
117
|
-
isValidating: boolean;
|
|
118
|
-
isValid: boolean;
|
|
119
|
-
canSubmit: boolean;
|
|
120
|
-
submissionAttempts: number;
|
|
121
|
-
};
|
|
122
|
-
declare class FormApi<TFormData, TFormValidator extends Validator<TFormData, unknown> | undefined = undefined> {
|
|
123
|
-
options: FormOptions<TFormData, TFormValidator>;
|
|
124
|
-
store: Store<FormState<TFormData>>;
|
|
125
|
-
state: FormState<TFormData>;
|
|
126
|
-
fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData, TFormValidator>>;
|
|
127
|
-
constructor(opts?: FormOptions<TFormData, TFormValidator>);
|
|
128
|
-
runValidator<TValue extends {
|
|
129
|
-
value: TFormData;
|
|
130
|
-
formApi: FormApi<any, any>;
|
|
131
|
-
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
132
|
-
validate: TType extends 'validate' ? FormValidateOrFn<TFormData, TFormValidator> : FormAsyncValidateOrFn<TFormData, TFormValidator>;
|
|
133
|
-
value: TValue;
|
|
134
|
-
type: TType;
|
|
135
|
-
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
136
|
-
mount: () => void;
|
|
137
|
-
update: (options?: FormOptions<TFormData, TFormValidator>) => void;
|
|
138
|
-
reset: () => void;
|
|
139
|
-
validateAllFields: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
140
|
-
validateSync: (cause: ValidationCause) => {
|
|
141
|
-
hasErrored: boolean;
|
|
142
|
-
};
|
|
143
|
-
validateAsync: (cause: ValidationCause) => Promise<ValidationError[]>;
|
|
144
|
-
validate: (cause: ValidationCause) => ValidationError[] | Promise<ValidationError[]>;
|
|
145
|
-
handleSubmit: () => Promise<void>;
|
|
146
|
-
getFieldValue: <TField extends DeepKeys<TFormData>>(field: TField) => DeepValue<TFormData, TField>;
|
|
147
|
-
getFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField) => FieldMeta | undefined;
|
|
148
|
-
getFieldInfo: <TField extends DeepKeys<TFormData>>(field: TField) => FieldInfo<TFormData, TFormValidator>;
|
|
149
|
-
setFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>) => void;
|
|
150
|
-
setFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: {
|
|
151
|
-
touch?: boolean;
|
|
152
|
-
}) => void;
|
|
153
|
-
deleteField: <TField extends DeepKeys<TFormData>>(field: TField) => void;
|
|
154
|
-
pushFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
155
|
-
touch?: boolean;
|
|
156
|
-
}) => void;
|
|
157
|
-
insertFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, value: DeepValue<TFormData, TField> extends any[] ? DeepValue<TFormData, TField>[number] : never, opts?: {
|
|
158
|
-
touch?: boolean;
|
|
159
|
-
}) => void;
|
|
160
|
-
removeFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, index: number, opts?: {
|
|
161
|
-
touch?: boolean;
|
|
162
|
-
}) => void;
|
|
163
|
-
swapFieldValues: <TField extends DeepKeys<TFormData>>(field: TField, index1: number, index2: number) => void;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
type FieldValidateFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (props: {
|
|
167
|
-
value: TData;
|
|
168
|
-
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
169
|
-
}) => ValidationError;
|
|
170
|
-
type FieldValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
171
|
-
type FieldValidateAsyncFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = (options: {
|
|
172
|
-
value: TData;
|
|
173
|
-
fieldApi: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
174
|
-
signal: AbortSignal;
|
|
175
|
-
}) => ValidationError | Promise<ValidationError>;
|
|
176
|
-
type FieldAsyncValidateOrFn<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> = TFieldValidator extends Validator<TData, infer TFN> ? TFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : TFormValidator extends Validator<TParentData, infer FFN> ? FFN | FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData> : FieldValidateAsyncFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
177
|
-
interface FieldValidators<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
178
|
-
onMount?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
179
|
-
onChange?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
180
|
-
onChangeAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
181
|
-
onChangeAsyncDebounceMs?: number;
|
|
182
|
-
onBlur?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
183
|
-
onBlurAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
184
|
-
onBlurAsyncDebounceMs?: number;
|
|
185
|
-
onSubmit?: FieldValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
186
|
-
onSubmitAsync?: FieldAsyncValidateOrFn<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
187
|
-
onSubmitAsyncDebounceMs?: number;
|
|
188
|
-
}
|
|
189
|
-
interface FieldOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
190
|
-
name: TName;
|
|
191
|
-
index?: TData extends any[] ? number : never;
|
|
192
|
-
defaultValue?: TData;
|
|
193
|
-
asyncDebounceMs?: number;
|
|
194
|
-
asyncAlways?: boolean;
|
|
195
|
-
preserveValue?: boolean;
|
|
196
|
-
validatorAdapter?: TFieldValidator;
|
|
197
|
-
validators?: FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
198
|
-
defaultMeta?: Partial<FieldMeta>;
|
|
199
|
-
}
|
|
200
|
-
interface FieldApiOptions<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> extends FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData> {
|
|
201
|
-
form: FormApi<TParentData, TFormValidator>;
|
|
202
|
-
}
|
|
203
|
-
type FieldMeta = {
|
|
204
|
-
isTouched: boolean;
|
|
205
|
-
touchedErrors: ValidationError[];
|
|
206
|
-
errors: ValidationError[];
|
|
207
|
-
errorMap: ValidationErrorMap;
|
|
208
|
-
isValidating: boolean;
|
|
209
|
-
};
|
|
210
|
-
type FieldState<TData> = {
|
|
211
|
-
value: TData;
|
|
212
|
-
meta: FieldMeta;
|
|
213
|
-
};
|
|
214
|
-
type ResolveName<TParentData> = unknown extends TParentData ? string : DeepKeys<TParentData>;
|
|
215
|
-
declare class FieldApi<TParentData, TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> {
|
|
216
|
-
uid: number;
|
|
217
|
-
form: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>['form'];
|
|
218
|
-
name: DeepKeys<TParentData>;
|
|
219
|
-
options: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>;
|
|
220
|
-
store: Store<FieldState<TData>>;
|
|
221
|
-
state: FieldState<TData>;
|
|
222
|
-
prevState: FieldState<TData>;
|
|
223
|
-
constructor(opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>);
|
|
224
|
-
runValidator<TValue extends {
|
|
225
|
-
value: TData;
|
|
226
|
-
fieldApi: FieldApi<any, any, any, any>;
|
|
227
|
-
}, TType extends 'validate' | 'validateAsync'>(props: {
|
|
228
|
-
validate: TType extends 'validate' ? FieldValidateOrFn<any, any, any, any> : FieldAsyncValidateOrFn<any, any, any, any>;
|
|
229
|
-
value: TValue;
|
|
230
|
-
type: TType;
|
|
231
|
-
}): ReturnType<ReturnType<Validator<any>>[TType]>;
|
|
232
|
-
mount: () => () => void;
|
|
233
|
-
update: (opts: FieldApiOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>) => void;
|
|
234
|
-
getValue: () => TData;
|
|
235
|
-
setValue: (updater: Updater<TData>, options?: {
|
|
236
|
-
touch?: boolean;
|
|
237
|
-
notify?: boolean;
|
|
238
|
-
}) => void;
|
|
239
|
-
_getMeta: () => FieldMeta | undefined;
|
|
240
|
-
getMeta: () => FieldMeta;
|
|
241
|
-
setMeta: (updater: Updater<FieldMeta>) => void;
|
|
242
|
-
getInfo: () => FieldInfo<TParentData, TFormValidator>;
|
|
243
|
-
pushValue: (value: TData extends any[] ? TData[number] : never) => void;
|
|
244
|
-
insertValue: (index: number, value: TData extends any[] ? TData[number] : never) => void;
|
|
245
|
-
removeValue: (index: number) => void;
|
|
246
|
-
swapValues: (aIndex: number, bIndex: number) => void;
|
|
247
|
-
getSubField: <TSubName extends DeepKeys<TData>, TSubData extends DeepValue<TData, TSubName> = DeepValue<TData, TSubName>>(name: TSubName) => FieldApi<TData, TSubName, Validator<TSubData, unknown> | undefined, Validator<TData, unknown> | undefined, TSubData>;
|
|
248
|
-
validateSync: (value: TData | undefined, cause: ValidationCause) => {
|
|
249
|
-
hasErrored: boolean;
|
|
250
|
-
};
|
|
251
|
-
validateAsync: (value: TData | undefined, cause: ValidationCause) => Promise<ValidationError[]>;
|
|
252
|
-
validate: (cause: ValidationCause, value?: TData) => ValidationError[] | Promise<ValidationError[]>;
|
|
253
|
-
handleChange: (updater: Updater<TData>) => void;
|
|
254
|
-
handleBlur: () => void;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
export { DeepKeys, DeepValue, FieldApi, FieldApiOptions, FieldAsyncValidateOrFn, FieldInfo, FieldMeta, FieldOptions, FieldState, FieldValidateAsyncFn, FieldValidateFn, FieldValidateOrFn, FieldValidators, FormApi, FormAsyncValidateOrFn, FormOptions, FormState, FormValidateAsyncFn, FormValidateFn, FormValidateOrFn, FormValidators, Narrow, Pretty, RequiredByKey, ResolveName, Updater, UpdaterFn, ValidationCause, ValidationError, ValidationErrorMap, ValidationErrorMapKeys, ValidationMeta, Validator, deleteBy, functionalUpdate, getAsyncValidatorArray, getBy, getSyncValidatorArray, isNonEmptyArray, setBy };
|
package/build/legacy/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './FormApi'\nexport * from './FieldApi'\nexport * from './utils'\nexport * from './types'\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
package/build/legacy/types.cjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/types.ts
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
19
|
-
//# sourceMappingURL=types.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types.ts"],"sourcesContent":["export type ValidationError = undefined | false | null | string\n\n// If/when TypeScript supports higher-kinded types, this should not be `unknown` anymore\nexport type Validator<Type, Fn = unknown> = () => {\n validate(options: { value: Type }, fn: Fn): ValidationError\n validateAsync(options: { value: Type }, fn: Fn): Promise<ValidationError>\n}\n\nexport type ValidationCause = 'change' | 'blur' | 'submit' | 'mount'\n\nexport type ValidationErrorMapKeys = `on${Capitalize<ValidationCause>}`\n\nexport type ValidationErrorMap = {\n [K in ValidationErrorMapKeys]?: ValidationError\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/build/legacy/types.d.cts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
type ValidationError = undefined | false | null | string;
|
|
2
|
-
type Validator<Type, Fn = unknown> = () => {
|
|
3
|
-
validate(options: {
|
|
4
|
-
value: Type;
|
|
5
|
-
}, fn: Fn): ValidationError;
|
|
6
|
-
validateAsync(options: {
|
|
7
|
-
value: Type;
|
|
8
|
-
}, fn: Fn): Promise<ValidationError>;
|
|
9
|
-
};
|
|
10
|
-
type ValidationCause = 'change' | 'blur' | 'submit' | 'mount';
|
|
11
|
-
type ValidationErrorMapKeys = `on${Capitalize<ValidationCause>}`;
|
|
12
|
-
type ValidationErrorMap = {
|
|
13
|
-
[K in ValidationErrorMapKeys]?: ValidationError;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export { ValidationCause, ValidationError, ValidationErrorMap, ValidationErrorMapKeys, Validator };
|
package/build/legacy/types.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
type ValidationError = undefined | false | null | string;
|
|
2
|
-
type Validator<Type, Fn = unknown> = () => {
|
|
3
|
-
validate(options: {
|
|
4
|
-
value: Type;
|
|
5
|
-
}, fn: Fn): ValidationError;
|
|
6
|
-
validateAsync(options: {
|
|
7
|
-
value: Type;
|
|
8
|
-
}, fn: Fn): Promise<ValidationError>;
|
|
9
|
-
};
|
|
10
|
-
type ValidationCause = 'change' | 'blur' | 'submit' | 'mount';
|
|
11
|
-
type ValidationErrorMapKeys = `on${Capitalize<ValidationCause>}`;
|
|
12
|
-
type ValidationErrorMap = {
|
|
13
|
-
[K in ValidationErrorMapKeys]?: ValidationError;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export { ValidationCause, ValidationError, ValidationErrorMap, ValidationErrorMapKeys, Validator };
|
package/build/legacy/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|