From b2ddb0e29e8f40d9668c0ddaef6a6eec838ea878 Mon Sep 17 00:00:00 2001 From: chorobin Date: Fri, 7 Mar 2025 12:36:00 +0100 Subject: [PATCH 01/25] perf: add variance annotations --- packages/form-core/src/FieldApi.ts | 76 ++++++++++++++-------------- packages/form-core/src/FormApi.ts | 67 ++++++++++++------------ packages/react-form/src/useField.tsx | 22 ++++---- packages/react-form/src/useForm.tsx | 20 ++++---- 4 files changed, 92 insertions(+), 93 deletions(-) diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 91468d56f..062a9a9bc 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -445,31 +445,31 @@ export interface FieldOptions< * An object type representing the required options for the FieldApi class. */ export interface FieldApiOptions< - TParentData, - TName extends DeepKeys, - TData extends DeepValue, - TOnMount extends undefined | FieldValidateOrFn, - TOnChange extends undefined | FieldValidateOrFn, - TOnChangeAsync extends + in out TParentData, + in out TName extends DeepKeys, + in out TData extends DeepValue, + in out TOnMount extends undefined | FieldValidateOrFn, + in out TOnChange extends undefined | FieldValidateOrFn, + in out TOnChangeAsync extends | undefined | FieldAsyncValidateOrFn, - TOnBlur extends undefined | FieldValidateOrFn, - TOnBlurAsync extends + in out TOnBlur extends undefined | FieldValidateOrFn, + in out TOnBlurAsync extends | undefined | FieldAsyncValidateOrFn, - TOnSubmit extends undefined | FieldValidateOrFn, - TOnSubmitAsync extends + in out TOnSubmit extends undefined | FieldValidateOrFn, + in out TOnSubmitAsync extends | undefined | FieldAsyncValidateOrFn, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TParentSubmitMeta, > extends FieldOptions< TParentData, TName, @@ -857,31 +857,31 @@ export type AnyFieldApi = FieldApi< * the `new FieldApi` constructor. */ export class FieldApi< - TParentData, - TName extends DeepKeys, - TData extends DeepValue, - TOnMount extends undefined | FieldValidateOrFn, - TOnChange extends undefined | FieldValidateOrFn, - TOnChangeAsync extends + in out TParentData, + in out TName extends DeepKeys, + in out TData extends DeepValue, + in out TOnMount extends undefined | FieldValidateOrFn, + in out TOnChange extends undefined | FieldValidateOrFn, + in out TOnChangeAsync extends | undefined | FieldAsyncValidateOrFn, - TOnBlur extends undefined | FieldValidateOrFn, - TOnBlurAsync extends + in out TOnBlur extends undefined | FieldValidateOrFn, + in out TOnBlurAsync extends | undefined | FieldAsyncValidateOrFn, - TOnSubmit extends undefined | FieldValidateOrFn, - TOnSubmitAsync extends + in out TOnSubmit extends undefined | FieldValidateOrFn, + in out TOnSubmitAsync extends | undefined | FieldAsyncValidateOrFn, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TParentSubmitMeta, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TParentSubmitMeta, > { /** * A reference to the form API instance. diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index a68e77d83..b7bfc98e4 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -235,16 +235,16 @@ export interface FormTransform< * An object representing the options for a form. */ export interface FormOptions< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, - TSubmitMeta = never, + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, + in out TSubmitMeta = never, > { /** * Set initial values for your form. @@ -532,17 +532,17 @@ export type DerivedFormState< fieldMeta: Record, AnyFieldMeta> } -export type FormState< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, -> = BaseFormState< +export interface FormState< + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, +> extends BaseFormState< TFormData, TOnMount, TOnChange, @@ -552,8 +552,7 @@ export type FormState< TOnSubmit, TOnSubmitAsync, TOnServer -> & - DerivedFormState< +>,DerivedFormState< TFormData, TOnMount, TOnChange, @@ -563,7 +562,7 @@ export type FormState< TOnSubmit, TOnSubmitAsync, TOnServer - > + > {} export type AnyFormState = FormState< any, @@ -657,16 +656,16 @@ export type AnyFormApi = FormApi< * However, if you need to create a new instance manually, you can do so by calling the `new FormApi` constructor. */ export class FormApi< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, - TSubmitMeta = never, + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, + in out TSubmitMeta = never, > { /** * The options for the form. diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 1b52980ae..a267c1502 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -305,17 +305,17 @@ type FieldComponentProps< * A type alias representing a field component for a specific form data type. */ export type FieldComponent< - TParentData, - TFormOnMount extends undefined | FormValidateOrFn, - TFormOnChange extends undefined | FormValidateOrFn, - TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TFormOnBlur extends undefined | FormValidateOrFn, - TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TFormOnSubmit extends undefined | FormValidateOrFn, - TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TFormOnServer extends undefined | FormAsyncValidateOrFn, - TPatentSubmitMeta, - ExtendedApi = {}, + in out TParentData, + in out TFormOnMount extends undefined | FormValidateOrFn, + in out TFormOnChange extends undefined | FormValidateOrFn, + in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlur extends undefined | FormValidateOrFn, + in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmit extends undefined | FormValidateOrFn, + in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnServer extends undefined | FormAsyncValidateOrFn, + in out TPatentSubmitMeta, + in out ExtendedApi = {}, > = < const TName extends DeepKeys, TData extends DeepValue, diff --git a/packages/react-form/src/useForm.tsx b/packages/react-form/src/useForm.tsx index 2831190d1..729064aba 100644 --- a/packages/react-form/src/useForm.tsx +++ b/packages/react-form/src/useForm.tsx @@ -19,16 +19,16 @@ import type { NoInfer } from '@tanstack/react-store' * Fields that are added onto the `FormAPI` from `@tanstack/form-core` and returned from `useForm` */ export interface ReactFormApi< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, - TSubmitMeta, + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, + in out TSubmitMeta, > { /** * A React component to render form fields. With this, you can render and manage individual form fields. From ca40c4d68a5c032b4816573b8b76cae4d348d60a Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 00:42:45 +0100 Subject: [PATCH 02/25] perf(form-core): improve ts performance for large example --- packages/form-core/src/FieldApi.ts | 165 ++++++------ packages/form-core/src/FormApi.ts | 97 +++---- packages/form-core/src/metaHelper.ts | 5 +- packages/form-core/src/util-types.ts | 236 +++++++++--------- packages/form-core/tests/FieldApi.test-d.ts | 6 +- packages/form-core/tests/FormApi.spec.ts | 1 - packages/form-core/tests/util-types.test-d.ts | 5 + packages/react-form/src/useField.tsx | 12 +- 8 files changed, 274 insertions(+), 253 deletions(-) diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 062a9a9bc..ffa832dc4 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -4,7 +4,12 @@ import { standardSchemaValidators, } from './standardSchemaValidator' import { getAsyncValidatorArray, getBy, getSyncValidatorArray } from './utils' -import type { DeepKeys, DeepValue, UnwrapOneLevelOfArray } from './util-types' +import type { + DeepKeys, + DeepValue, + UnwrapOneLevelOfArray, + ValidateName, +} from './util-types' import type { StandardSchemaV1, StandardSchemaV1Issue, @@ -32,7 +37,7 @@ import type { AsyncValidator, SyncValidator, Updater } from './utils' // TODO: Add the `Unwrap` type to the errors type FieldErrorMapFromValidator< TFormData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -49,7 +54,7 @@ type FieldErrorMapFromValidator< | FieldAsyncValidateOrFn, > = Partial< Record< - DeepKeys, + DeepKeys & string, ValidationErrorMap< TOnMount, TOnChange, @@ -67,7 +72,7 @@ type FieldErrorMapFromValidator< */ export type FieldValidateFn< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > = (props: { value: TData @@ -101,7 +106,7 @@ export type FieldValidateFn< */ export type FieldValidateOrFn< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > = | FieldValidateFn @@ -118,8 +123,7 @@ type UnwrapFormValidateOrFnForInner< : undefined export type UnwrapFieldValidateOrFn< - TParentData, - TName extends DeepKeys, + TName extends string, TValidateOrFn extends undefined | FieldValidateOrFn, TFormValidateOrFn extends undefined | FormValidateOrFn, > = @@ -151,7 +155,7 @@ export type UnwrapFieldValidateOrFn< */ export type FieldValidateAsyncFn< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > = (options: { value: TData @@ -186,7 +190,7 @@ export type FieldValidateAsyncFn< */ export type FieldAsyncValidateOrFn< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > = | FieldValidateAsyncFn @@ -201,8 +205,7 @@ type UnwrapFormAsyncValidateOrFnForInner< : undefined export type UnwrapFieldAsyncValidateOrFn< - TParentData, - TName extends DeepKeys, + TName extends string, TValidateOrFn extends undefined | FieldAsyncValidateOrFn, TFormValidateOrFn extends undefined | FormAsyncValidateOrFn, > = @@ -234,7 +237,7 @@ export type UnwrapFieldAsyncValidateOrFn< */ export type FieldListenerFn< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > = (props: { value: TData @@ -265,7 +268,7 @@ export type FieldListenerFn< export interface FieldValidators< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -346,7 +349,7 @@ export interface FieldValidators< export interface FieldListeners< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue = DeepValue, > { onChange?: FieldListenerFn @@ -360,7 +363,7 @@ export interface FieldListeners< */ export interface FieldOptions< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -379,7 +382,7 @@ export interface FieldOptions< /** * The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. */ - name: TName + name: ValidateName /** * An optional default value for the field. */ @@ -446,28 +449,42 @@ export interface FieldOptions< */ export interface FieldApiOptions< in out TParentData, - in out TName extends DeepKeys, + in out TName extends string, in out TData extends DeepValue, - in out TOnMount extends undefined | FieldValidateOrFn, - in out TOnChange extends undefined | FieldValidateOrFn, + in out TOnMount extends + | undefined + | FieldValidateOrFn, + in out TOnChange extends + | undefined + | FieldValidateOrFn, in out TOnChangeAsync extends | undefined | FieldAsyncValidateOrFn, - in out TOnBlur extends undefined | FieldValidateOrFn, + in out TOnBlur extends + | undefined + | FieldValidateOrFn, in out TOnBlurAsync extends | undefined | FieldAsyncValidateOrFn, - in out TOnSubmit extends undefined | FieldValidateOrFn, + in out TOnSubmit extends + | undefined + | FieldValidateOrFn, in out TOnSubmitAsync extends | undefined | FieldAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, - in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnChangeAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, - in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlurAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, - in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmitAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > extends FieldOptions< @@ -498,7 +515,7 @@ export interface FieldApiOptions< export type FieldMetaBase< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -537,28 +554,13 @@ export type FieldMetaBase< * A map of errors related to the field value. */ errorMap: ValidationErrorMap< - UnwrapFieldValidateOrFn, - UnwrapFieldValidateOrFn, - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnChangeAsync, - TFormOnChangeAsync - >, - UnwrapFieldValidateOrFn, - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnBlurAsync, - TFormOnBlurAsync - >, - UnwrapFieldValidateOrFn, - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnSubmitAsync, - TFormOnSubmitAsync - > + UnwrapFieldValidateOrFn, + UnwrapFieldValidateOrFn, + UnwrapFieldAsyncValidateOrFn, + UnwrapFieldValidateOrFn, + UnwrapFieldAsyncValidateOrFn, + UnwrapFieldValidateOrFn, + UnwrapFieldAsyncValidateOrFn > /** * A flag indicating whether the field is currently being validated. @@ -588,7 +590,7 @@ export type AnyFieldMetaBase = FieldMetaBase< export type FieldMetaDerived< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -616,40 +618,25 @@ export type FieldMetaDerived< */ errors: Array< | UnwrapOneLevelOfArray< - UnwrapFieldValidateOrFn + UnwrapFieldValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldValidateOrFn + UnwrapFieldValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnChangeAsync, - TFormOnChangeAsync - > + UnwrapFieldAsyncValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldValidateOrFn + UnwrapFieldValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnBlurAsync, - TFormOnBlurAsync - > + UnwrapFieldAsyncValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldValidateOrFn + UnwrapFieldValidateOrFn > | UnwrapOneLevelOfArray< - UnwrapFieldAsyncValidateOrFn< - TParentData, - TName, - TOnSubmitAsync, - TFormOnSubmitAsync - > + UnwrapFieldAsyncValidateOrFn > > /** @@ -683,7 +670,7 @@ export type AnyFieldMetaDerived = FieldMetaDerived< */ export type FieldMeta< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -769,7 +756,7 @@ export type AnyFieldMeta = FieldMeta< */ export type FieldState< TParentData, - TName extends DeepKeys, + TName extends string, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -858,28 +845,42 @@ export type AnyFieldApi = FieldApi< */ export class FieldApi< in out TParentData, - in out TName extends DeepKeys, + in out TName extends string, in out TData extends DeepValue, - in out TOnMount extends undefined | FieldValidateOrFn, - in out TOnChange extends undefined | FieldValidateOrFn, + in out TOnMount extends + | undefined + | FieldValidateOrFn, + in out TOnChange extends + | undefined + | FieldValidateOrFn, in out TOnChangeAsync extends | undefined | FieldAsyncValidateOrFn, - in out TOnBlur extends undefined | FieldValidateOrFn, + in out TOnBlur extends + | undefined + | FieldValidateOrFn, in out TOnBlurAsync extends | undefined | FieldAsyncValidateOrFn, - in out TOnSubmit extends undefined | FieldValidateOrFn, + in out TOnSubmit extends + | undefined + | FieldValidateOrFn, in out TOnSubmitAsync extends | undefined | FieldAsyncValidateOrFn, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, - in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnChangeAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, - in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlurAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, - in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmitAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TParentSubmitMeta, > { @@ -1005,7 +1006,7 @@ export class FieldApi< this.store = new Derived({ deps: [this.form.store], fn: () => { - const value = this.form.getFieldValue(this.name) + const value = this.form.getFieldValue(this.name as string) const meta = this.form.getFieldMeta(this.name) ?? { isValidating: false, isTouched: false, @@ -1169,7 +1170,7 @@ export class FieldApi< * @deprecated Use `field.state.value` instead. */ getValue = (): TData => { - return this.form.getFieldValue(this.name) as TData + return this.form.getFieldValue(this.name as string) as TData } /** diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index b7bfc98e4..e4031e936 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -30,7 +30,7 @@ import type { ValidationErrorMap, ValidationErrorMapKeys, } from './types' -import type { DeepKeys, DeepValue } from './util-types' +import type { DeepKeys, DeepValue, ValidateName } from './util-types' import type { Updater } from './utils' /** @@ -48,7 +48,7 @@ type FormErrorMapFromValidator< TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, > = Partial< Record< - DeepKeys, + DeepKeys & string, ValidationErrorMap< TOnMount, TOnChange, @@ -543,26 +543,27 @@ export interface FormState< in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, in out TOnServer extends undefined | FormAsyncValidateOrFn, > extends BaseFormState< - TFormData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnServer ->,DerivedFormState< - TFormData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TOnServer - > {} + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnServer + >, + DerivedFormState< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnServer + > {} export type AnyFormState = FormState< any, @@ -1186,7 +1187,7 @@ export class FormApi< /** * Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type. */ - validateArrayFieldsStartingFrom = async >( + validateArrayFieldsStartingFrom = async ( field: TField, index: number, cause: ValidationCause, @@ -1225,8 +1226,8 @@ export class FormApi< /** * Validates a specified field in the form using the correct handlers for a given validation type. */ - validateField = >( - field: TField, + validateField = ( + field: ValidateName, cause: ValidationCause, ) => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition @@ -1661,15 +1662,15 @@ export class FormApi< /** * Gets the value of the specified field. */ - getFieldValue = >( + getFieldValue = ( field: TField, ): DeepValue => getBy(this.state.values, field) /** * Gets the metadata of the specified field. */ - getFieldMeta = >( - field: TField, + getFieldMeta = ( + field: ValidateName, ): AnyFieldMeta | undefined => { return this.state.fieldMeta[field] } @@ -1677,8 +1678,8 @@ export class FormApi< /** * Gets the field info of the specified field. */ - getFieldInfo = >( - field: TField, + getFieldInfo = ( + field: ValidateName, ): FieldInfo => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition return (this.fieldInfo[field] ||= { @@ -1696,8 +1697,8 @@ export class FormApi< /** * Updates the metadata of the specified field. */ - setFieldMeta = >( - field: TField, + setFieldMeta = ( + field: ValidateName, updater: Updater, ) => { this.baseStore.setState((prev) => { @@ -1714,7 +1715,7 @@ export class FormApi< }) } - resetFieldMeta = >( + resetFieldMeta = ( fieldMeta: Record, ): Record => { return Object.keys(fieldMeta).reduce( @@ -1738,8 +1739,8 @@ export class FormApi< /** * Sets the value of the specified field and optionally updates the touched state. */ - setFieldValue = >( - field: TField, + setFieldValue = ( + field: ValidateName, updater: Updater>, opts?: UpdateMetaOptions, ) => { @@ -1768,7 +1769,7 @@ export class FormApi< }) } - deleteField = >(field: TField) => { + deleteField = (field: TField) => { const subFieldsToDelete = Object.keys(this.fieldInfo).filter((f) => { const fieldStr = field.toString() return f !== fieldStr && f.startsWith(fieldStr) @@ -1792,8 +1793,8 @@ export class FormApi< /** * Pushes a value into an array field. */ - pushFieldValue = >( - field: TField, + pushFieldValue = ( + field: ValidateName, value: DeepValue extends any[] ? DeepValue[number] : never, @@ -1807,8 +1808,8 @@ export class FormApi< this.validateField(field, 'change') } - insertFieldValue = async >( - field: TField, + insertFieldValue = async ( + field: ValidateName, index: number, value: DeepValue extends any[] ? DeepValue[number] @@ -1839,8 +1840,8 @@ export class FormApi< /** * Replaces a value into an array field at the specified index. */ - replaceFieldValue = async >( - field: TField, + replaceFieldValue = async ( + field: ValidateName, index: number, value: DeepValue extends any[] ? DeepValue[number] @@ -1865,8 +1866,8 @@ export class FormApi< /** * Removes a value from an array field at the specified index. */ - removeFieldValue = async >( - field: TField, + removeFieldValue = async ( + field: ValidateName, index: number, opts?: UpdateMetaOptions, ) => { @@ -1902,8 +1903,8 @@ export class FormApi< /** * Swaps the values at the specified indices within an array field. */ - swapFieldValues = >( - field: TField, + swapFieldValues = ( + field: ValidateName, index1: number, index2: number, opts?: UpdateMetaOptions, @@ -1931,8 +1932,8 @@ export class FormApi< /** * Moves the value at the first specified index to the second specified index within an array field. */ - moveFieldValues = >( - field: TField, + moveFieldValues = ( + field: ValidateName, index1: number, index2: number, opts?: UpdateMetaOptions, diff --git a/packages/form-core/src/metaHelper.ts b/packages/form-core/src/metaHelper.ts index 7860c195d..84a14bd76 100644 --- a/packages/form-core/src/metaHelper.ts +++ b/packages/form-core/src/metaHelper.ts @@ -106,7 +106,10 @@ export function metaHelper< const sortedFields = direction === 'up' ? fields : [...fields].reverse() sortedFields.forEach((fieldKey) => { - const nextFieldKey = updateIndex(fieldKey.toString(), direction) + const nextFieldKey = updateIndex( + (fieldKey as string).toString(), + direction, + ) const nextFieldMeta = formApi.getFieldMeta(nextFieldKey) if (nextFieldMeta) { formApi.setFieldMeta(fieldKey, nextFieldMeta) diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index de966d622..0e28a5287 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -19,132 +19,138 @@ type Try = A1 extends A2 ? A1 : Catch */ export type Narrow = Try> -type ComputeRange< - N extends number, - Result extends Array = [], -> = Result['length'] extends N - ? Result - : ComputeRange -type Index40 = ComputeRange<40>[number] - -// Is this type a tuple? -type IsTuple = T extends readonly any[] & { length: infer Length } - ? Length extends Index40 - ? T +type IsAny = 0 extends 1 & T ? true : false + +export type DeepKeysAndValuesArray< + T extends ReadonlyArray, + TPrefix extends string, + TNextPrefix extends string = `${TPrefix}[${number}]` | `${TPrefix}[number]`, +> = { [TKey in TNextPrefix]: T[number] } & DeepKeysAndValues< + T[number], + TNextPrefix +> + +export type TupleAccessor< + TPrefix extends string, + TKey, +> = `${TPrefix}[${TKey & string}]` + +export type AllTupleKeys = T extends any ? keyof T & `${number}` : never + +export type GetValue = T extends any + ? TKey extends keyof T + ? T[TKey] : never : never -// If this type is a tuple, what indices are allowed? -type AllowedIndexes< - Tuple extends ReadonlyArray, - Keys extends number = never, -> = Tuple extends readonly [] - ? Keys - : Tuple extends readonly [infer _, ...infer Tail] - ? AllowedIndexes - : Keys - -type PrefixArrayAccessor = { - [K in keyof T]: `[${number}]${DeepKeys}` -}[number] - -type PrefixTupleAccessor< - T extends any[], - TIndex extends number, - TDepth extends any[], -> = { - [K in TIndex]: `[${K}]` | `[${K}]${DeepKeys}` -}[TIndex] - -type PrefixObjectAccessor = { - [K in keyof T]-?: K extends string | number - ? - | PrefixFromDepth - | `${PrefixFromDepth}${DeepKeys}` +export type FlattenTupleKeys = T extends any + ? AllTupleKeys extends infer TKey extends AllTupleKeys + ? TKey extends any + ? TupleAccessor extends infer TAccessor extends string + ? T[TKey] extends infer TValue + ? TValue extends any + ? keyof DeepKeysAndValues + : never + : never + : never + : never : never -}[keyof T] + : never -/** - * The keys of an object or array, deeply nested. - */ -export type DeepKeys = TDepth['length'] extends 5 - ? never - : unknown extends T - ? PrefixFromDepth - : T extends readonly any[] & IsTuple - ? PrefixTupleAccessor, TDepth> - : T extends any[] - ? PrefixArrayAccessor - : T extends Date - ? never - : T extends object - ? PrefixObjectAccessor - : T extends string | number | boolean | bigint - ? '' +export type FlattenTupleValues = T extends any + ? AllObjectKeys extends infer TAllKeys extends AllTupleKeys + ? TAllKeys extends any + ? TupleAccessor extends infer TAccessor extends string + ? T[TAllKeys] extends infer TValue + ? TValue extends any + ? TKey extends keyof DeepKeysAndValues + ? DeepKeysAndValues[TKey] : never + : never + : never + : never + : never + : never + : never + +export type DeepKeysAndValuesTuple = { + [TKey in AllTupleKeys as TupleAccessor]: GetValue +} & { + [TKey in FlattenTupleKeys]: FlattenTupleValues +} + +export type ObjectAccessor< + TPrefix extends string, + TKey extends string | number, +> = TPrefix extends '' ? `${TKey}` : `${TPrefix}.${TKey}` + +export type AllObjectKeys = T extends any + ? keyof T & (string | number) + : never -type PrefixFromDepth< - T extends string | number, - TDepth extends any[], -> = TDepth['length'] extends 0 ? T : `.${T}` +export type FlattenObjectKeys = T extends any + ? AllObjectKeys extends infer TKey extends AllObjectKeys + ? TKey extends any + ? T[TKey] extends infer TValue + ? TValue extends any + ? keyof DeepKeysAndValues> + : never + : never + : never + : never + : never -// Hack changing Typescript's default get behavior in order to work with union objects -type Get = T extends { [Key in K]: infer V } - ? V - : T extends { [Key in K]?: infer W } - ? W | undefined +export type FlattenObjectValues = T extends any + ? AllObjectKeys extends infer TAllKeys extends AllObjectKeys + ? TAllKeys extends any + ? ObjectAccessor extends infer TAccessor extends string + ? T[TAllKeys] extends infer TValue + ? TValue extends any + ? TKey extends keyof DeepKeysAndValues + ? DeepKeysAndValues[TKey] + : never + : never + : never + : never + : never : never + : never + +export type DeepKeysAndValuesObject = { + [TKey in AllObjectKeys as ObjectAccessor]: GetValue +} & { + [TKey in FlattenObjectKeys]: FlattenObjectValues +} + +export type DeepKeysAndValues = + IsAny extends true + ? T + : T extends string | number | boolean | bigint ? Record : T extends ReadonlyArray + ? number extends T['length'] + ? DeepKeysAndValuesArray + : DeepKeysAndValuesTuple + : T extends object + ? DeepKeysAndValuesObject + : Record -type ApplyNull = null extends T ? null : never -type ApplyUndefined = undefined extends T ? undefined : never +/** + * The keys of an object or array, deeply nested. + */ +export type DeepKeys = unknown extends T + ? string + : keyof DeepKeysAndValues & string + +export type ValidateName = ConstrainLiteral< + TName, + DeepKeys +> + +export type ConstrainLiteral = + | (T & TConstraint) + | TDefault /** * Infer the type of a deeply nested property within an object or an array. */ -export type DeepValue< - // The object or array in which we have the property whose type we're trying to infer - TValue, - // A string representing the path of the property we're trying to access - TAccessor, - // Depth for preventing infinite recursion - TDepth extends ReadonlyArray = [], -> = unknown extends TValue // If TValue is any it will recurse forever, this terminates the recursion - ? TValue - : TDepth['length'] extends 10 - ? unknown - : // Check if we're looking for the property in an array - TValue extends ReadonlyArray - ? TAccessor extends `[${infer TBrackets}].${infer TAfter}` - ? /* - Extract the first element from the accessor path (`TBrackets`) - and recursively call `DeepValue` with it - */ - DeepValue< - DeepValue, - TAfter, - [...TDepth, any] - > - : TAccessor extends `[${infer TBrackets}]` - ? DeepValue - : TAccessor extends keyof TValue - ? TValue[TAccessor] - : TValue[TAccessor & number] - : TAccessor extends `${infer TBefore}[${infer TEverythingElse}` - ? DeepValue< - DeepValue, - `[${TEverythingElse}`, - [...TDepth, any] - > - : TAccessor extends `[${infer TBrackets}]` - ? DeepValue - : TAccessor extends `${infer TBefore}.${infer TAfter}` - ? DeepValue< - DeepValue, - TAfter, - [...TDepth, any] - > - : TAccessor extends string - ? - | Get - | (ApplyNull | ApplyUndefined) - : never +export type DeepValue = DeepKeysAndValues[TAccessor & + keyof DeepKeysAndValues] diff --git a/packages/form-core/tests/FieldApi.test-d.ts b/packages/form-core/tests/FieldApi.test-d.ts index b9d010a94..c2d08bf22 100644 --- a/packages/form-core/tests/FieldApi.test-d.ts +++ b/packages/form-core/tests/FieldApi.test-d.ts @@ -32,7 +32,7 @@ it('should type value when nothing is passed into constructor', () => { }) assertType(field.state.value) - assertType<'name'>(field.options.name) + assertType<'name' | 'age'>(field.options.name) assertType(field.getValue()) }) @@ -54,7 +54,7 @@ it('should type required fields in constructor', () => { }) assertType(field.state.value) - assertType<'name'>(field.options.name) + assertType<'name' | 'age'>(field.options.name) assertType(field.getValue()) }) @@ -74,7 +74,7 @@ it('should type value properly for completely partial forms', () => { }) assertType<'test' | undefined>(field.state.value) - assertType<'name'>(field.options.name) + assertType<'name' | 'age'>(field.options.name) assertType<'test' | undefined>(field.getValue()) }) diff --git a/packages/form-core/tests/FormApi.spec.ts b/packages/form-core/tests/FormApi.spec.ts index 49543bf8b..921b7ffc6 100644 --- a/packages/form-core/tests/FormApi.spec.ts +++ b/packages/form-core/tests/FormApi.spec.ts @@ -856,7 +856,6 @@ describe('form api', () => { }, }) field1.mount() - const field2 = new FieldApi({ form, name: 'names[1]', diff --git a/packages/form-core/tests/util-types.test-d.ts b/packages/form-core/tests/util-types.test-d.ts index dc4eaa26e..3bfb35495 100644 --- a/packages/form-core/tests/util-types.test-d.ts +++ b/packages/form-core/tests/util-types.test-d.ts @@ -24,8 +24,13 @@ assertType< type ArraySupport = DeepKeys<{ users: User[] }> assertType< | 'users' + | `users[number]` + | `users[${number}]` + | `users[number].name` | `users[${number}].name` + | `users[number].id` | `users[${number}].id` + | `users[number].age` | `users[${number}].age` >(0 as never as ArraySupport) diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index a267c1502..23845fea8 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -308,11 +308,17 @@ export type FieldComponent< in out TParentData, in out TFormOnMount extends undefined | FormValidateOrFn, in out TFormOnChange extends undefined | FormValidateOrFn, - in out TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnChangeAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnBlur extends undefined | FormValidateOrFn, - in out TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnBlurAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnSubmit extends undefined | FormValidateOrFn, - in out TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TFormOnSubmitAsync extends + | undefined + | FormAsyncValidateOrFn, in out TFormOnServer extends undefined | FormAsyncValidateOrFn, in out TPatentSubmitMeta, in out ExtendedApi = {}, From a8ec3cc01f1cd87496d4512f6abfbabfcc7be3b9 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 9 Mar 2025 23:59:59 +0000 Subject: [PATCH 03/25] ci: apply automated fixes and generate docs --- .../classes/tanstackformcontroller.md | 2 +- .../react/reference/functions/field.md | 4 +- .../react/reference/functions/usefield.md | 2 +- .../solid/reference/functions/createfield.md | 2 +- .../solid/reference/functions/field.md | 2 +- .../vue/reference/functions/usefield.md | 2 +- docs/reference/classes/fieldapi.md | 54 +-- docs/reference/classes/formapi.md | 66 +-- docs/reference/functions/mergeform.md | 2 +- docs/reference/index.md | 17 +- docs/reference/interfaces/fieldapioptions.md | 24 +- docs/reference/interfaces/fieldlisteners.md | 12 +- docs/reference/interfaces/fieldoptions.md | 22 +- docs/reference/interfaces/fieldvalidators.md | 30 +- docs/reference/interfaces/formstate.md | 448 ++++++++++++++++++ docs/reference/type-aliases/allobjectkeys.md | 18 + docs/reference/type-aliases/alltuplekeys.md | 18 + docs/reference/type-aliases/anyfieldapi.md | 2 +- docs/reference/type-aliases/anyfieldmeta.md | 2 +- .../type-aliases/anyfieldmetabase.md | 2 +- .../type-aliases/anyfieldmetaderived.md | 2 +- .../type-aliases/constrainliteral.md | 22 + docs/reference/type-aliases/deepkeys.md | 8 +- .../type-aliases/deepkeysandvalues.md | 20 + .../type-aliases/deepkeysandvaluesarray.md | 22 + .../type-aliases/deepkeysandvaluesobject.md | 20 + .../type-aliases/deepkeysandvaluestuple.md | 20 + docs/reference/type-aliases/deepvalue.md | 10 +- docs/reference/type-aliases/fieldmeta.md | 4 +- docs/reference/type-aliases/fieldmetabase.md | 6 +- .../type-aliases/fieldmetaderived.md | 18 +- docs/reference/type-aliases/fieldstate.md | 4 +- .../type-aliases/flattenobjectkeys.md | 20 + .../type-aliases/flattenobjectvalues.md | 22 + .../type-aliases/flattentuplekeys.md | 20 + .../type-aliases/flattentuplevalues.md | 22 + docs/reference/type-aliases/formstate.md | 34 -- docs/reference/type-aliases/getvalue.md | 20 + docs/reference/type-aliases/objectaccessor.md | 20 + docs/reference/type-aliases/tupleaccessor.md | 20 + .../unwrapfieldasyncvalidateorfn.md | 10 +- .../type-aliases/unwrapfieldvalidateorfn.md | 10 +- docs/reference/type-aliases/validatename.md | 20 + packages/form-core/src/util-types.ts | 16 +- 44 files changed, 923 insertions(+), 198 deletions(-) create mode 100644 docs/reference/interfaces/formstate.md create mode 100644 docs/reference/type-aliases/allobjectkeys.md create mode 100644 docs/reference/type-aliases/alltuplekeys.md create mode 100644 docs/reference/type-aliases/constrainliteral.md create mode 100644 docs/reference/type-aliases/deepkeysandvalues.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluesarray.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluesobject.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluestuple.md create mode 100644 docs/reference/type-aliases/flattenobjectkeys.md create mode 100644 docs/reference/type-aliases/flattenobjectvalues.md create mode 100644 docs/reference/type-aliases/flattentuplekeys.md create mode 100644 docs/reference/type-aliases/flattentuplevalues.md delete mode 100644 docs/reference/type-aliases/formstate.md create mode 100644 docs/reference/type-aliases/getvalue.md create mode 100644 docs/reference/type-aliases/objectaccessor.md create mode 100644 docs/reference/type-aliases/tupleaccessor.md create mode 100644 docs/reference/type-aliases/validatename.md diff --git a/docs/framework/lit/reference/classes/tanstackformcontroller.md b/docs/framework/lit/reference/classes/tanstackformcontroller.md index dcc822099..aba24fb90 100644 --- a/docs/framework/lit/reference/classes/tanstackformcontroller.md +++ b/docs/framework/lit/reference/classes/tanstackformcontroller.md @@ -81,7 +81,7 @@ Defined in: [tanstack-form-controller.ts:260](https://github.com/TanStack/form/b #### Type Parameters -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/framework/react/reference/functions/field.md b/docs/framework/react/reference/functions/field.md index 1f9a8accb..2b9147924 100644 --- a/docs/framework/react/reference/functions/field.md +++ b/docs/framework/react/reference/functions/field.md @@ -11,7 +11,7 @@ title: Field function Field(__namedParameters): ReactNode ``` -Defined in: [packages/react-form/src/useField.tsx:369](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L369) +Defined in: [packages/react-form/src/useField.tsx:375](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L375) A function component that takes field options and a render function as children and returns a React component. @@ -21,7 +21,7 @@ The `Field` component uses the `useField` hook internally to manage the field in • **TParentData** -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/framework/react/reference/functions/usefield.md b/docs/framework/react/reference/functions/usefield.md index 3129ca3e7..b7aaf8469 100644 --- a/docs/framework/react/reference/functions/usefield.md +++ b/docs/framework/react/reference/functions/usefield.md @@ -19,7 +19,7 @@ A hook for managing a field in a form. • **TParentData** -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/framework/solid/reference/functions/createfield.md b/docs/framework/solid/reference/functions/createfield.md index 6b6769ef5..68c740bf0 100644 --- a/docs/framework/solid/reference/functions/createfield.md +++ b/docs/framework/solid/reference/functions/createfield.md @@ -17,7 +17,7 @@ Defined in: [packages/solid-form/src/createField.tsx:236](https://github.com/Tan • **TParentData** -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/framework/solid/reference/functions/field.md b/docs/framework/solid/reference/functions/field.md index 5c2a3f014..4c456febf 100644 --- a/docs/framework/solid/reference/functions/field.md +++ b/docs/framework/solid/reference/functions/field.md @@ -17,7 +17,7 @@ Defined in: [packages/solid-form/src/createField.tsx:480](https://github.com/Tan • **TParentData** -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/framework/vue/reference/functions/usefield.md b/docs/framework/vue/reference/functions/usefield.md index 7ac8f59fc..4067fd126 100644 --- a/docs/framework/vue/reference/functions/usefield.md +++ b/docs/framework/vue/reference/functions/usefield.md @@ -17,7 +17,7 @@ Defined in: [packages/vue-form/src/useField.tsx:303](https://github.com/TanStack • **TParentData** -• **TName** *extends* `string` \| `number` +• **TName** *extends* `string` • **TData** diff --git a/docs/reference/classes/fieldapi.md b/docs/reference/classes/fieldapi.md index 4b06bdeef..8a7e074a3 100644 --- a/docs/reference/classes/fieldapi.md +++ b/docs/reference/classes/fieldapi.md @@ -7,7 +7,7 @@ title: FieldApi # Class: FieldApi\ -Defined in: [packages/form-core/src/FieldApi.ts:859](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L859) +Defined in: [packages/form-core/src/FieldApi.ts:846](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L846) A class representing the API for managing a form field. @@ -21,7 +21,7 @@ the `new FieldApi` constructor. • **TParentData** -• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -65,7 +65,7 @@ the `new FieldApi` constructor. new FieldApi(opts): FieldApi ``` -Defined in: [packages/form-core/src/FieldApi.ts:973](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L973) +Defined in: [packages/form-core/src/FieldApi.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L974) Initializes a new `FieldApi` instance. @@ -87,7 +87,7 @@ Initializes a new `FieldApi` instance. form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:889](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L889) +Defined in: [packages/form-core/src/FieldApi.ts:890](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L890) A reference to the form API instance. @@ -96,10 +96,10 @@ A reference to the form API instance. ### name ```ts -name: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never; +name: DeepKeys; ``` -Defined in: [packages/form-core/src/FieldApi.ts:913](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L913) +Defined in: [packages/form-core/src/FieldApi.ts:914](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L914) The field name. @@ -111,7 +111,7 @@ The field name. options: FieldApiOptions; ``` -Defined in: [packages/form-core/src/FieldApi.ts:917](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L917) +Defined in: [packages/form-core/src/FieldApi.ts:918](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L918) The field options. @@ -123,7 +123,7 @@ The field options. store: Derived>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:941](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L941) +Defined in: [packages/form-core/src/FieldApi.ts:942](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L942) The field state store. @@ -135,7 +135,7 @@ The field state store. timeoutIds: Record; ``` -Defined in: [packages/form-core/src/FieldApi.ts:968](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L968) +Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L969) ## Accessors @@ -147,7 +147,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:968](https://github.com/TanStack get state(): FieldState ``` -Defined in: [packages/form-core/src/FieldApi.ts:965](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L965) +Defined in: [packages/form-core/src/FieldApi.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L966) The current field state. @@ -163,7 +163,7 @@ The current field state. getInfo(): FieldInfo ``` -Defined in: [packages/form-core/src/FieldApi.ts:1221](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1221) +Defined in: [packages/form-core/src/FieldApi.ts:1222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1222) Gets the field information object. @@ -179,7 +179,7 @@ Gets the field information object. getMeta(): FieldMeta ``` -Defined in: [packages/form-core/src/FieldApi.ts:1189](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1189) +Defined in: [packages/form-core/src/FieldApi.ts:1190](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1190) #### Returns @@ -193,7 +193,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:1189](https://github.com/TanStac getValue(): TData ``` -Defined in: [packages/form-core/src/FieldApi.ts:1171](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1171) +Defined in: [packages/form-core/src/FieldApi.ts:1172](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1172) Gets the current field value. @@ -213,7 +213,7 @@ Use `field.state.value` instead. handleBlur(): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1632](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1632) +Defined in: [packages/form-core/src/FieldApi.ts:1633](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1633) Handles the blur event. @@ -229,7 +229,7 @@ Handles the blur event. handleChange(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1625](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1625) +Defined in: [packages/form-core/src/FieldApi.ts:1626](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1626) Handles the change event. @@ -254,7 +254,7 @@ insertValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1241](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1241) +Defined in: [packages/form-core/src/FieldApi.ts:1242](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1242) Inserts a value at the specified index, shifting the subsequent values to the right. @@ -284,7 +284,7 @@ Inserts a value at the specified index, shifting the subsequent values to the ri mount(): () => void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1077](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1077) +Defined in: [packages/form-core/src/FieldApi.ts:1078](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1078) Mounts the field instance to the form. @@ -307,7 +307,7 @@ moveValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1297](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1297) +Defined in: [packages/form-core/src/FieldApi.ts:1298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1298) Moves the value at the first specified index to the second specified index. @@ -337,7 +337,7 @@ Moves the value at the first specified index to the second specified index. pushValue(value, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1226](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1226) +Defined in: [packages/form-core/src/FieldApi.ts:1227](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1227) Pushes a new value to the field. @@ -363,7 +363,7 @@ Pushes a new value to the field. removeValue(index, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1273](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1273) +Defined in: [packages/form-core/src/FieldApi.ts:1274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1274) Removes a value at the specified index. @@ -392,7 +392,7 @@ replaceValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1257](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1257) +Defined in: [packages/form-core/src/FieldApi.ts:1258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1258) Replaces a value at the specified index. @@ -422,7 +422,7 @@ Replaces a value at the specified index. setErrorMap(errorMap): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1652](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1652) +Defined in: [packages/form-core/src/FieldApi.ts:1653](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1653) Updates the field's errorMap @@ -444,7 +444,7 @@ Updates the field's errorMap setMeta(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1194](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1194) +Defined in: [packages/form-core/src/FieldApi.ts:1195](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1195) Sets the field metadata. @@ -466,7 +466,7 @@ Sets the field metadata. setValue(updater, options?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1178](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1178) +Defined in: [packages/form-core/src/FieldApi.ts:1179](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1179) Sets the field value and run the `change` validator. @@ -495,7 +495,7 @@ swapValues( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1285](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1285) +Defined in: [packages/form-core/src/FieldApi.ts:1286](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1286) Swaps the values at the specified indices. @@ -525,7 +525,7 @@ Swaps the values at the specified indices. update(opts): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1119](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1119) +Defined in: [packages/form-core/src/FieldApi.ts:1120](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1120) Updates the field instance with new options. @@ -547,7 +547,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise ``` -Defined in: [packages/form-core/src/FieldApi.ts:1592](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1592) +Defined in: [packages/form-core/src/FieldApi.ts:1593](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1593) Validates the field value. diff --git a/docs/reference/classes/formapi.md b/docs/reference/classes/formapi.md index b276d961b..7c7f5973b 100644 --- a/docs/reference/classes/formapi.md +++ b/docs/reference/classes/formapi.md @@ -74,7 +74,7 @@ Defined in: [packages/form-core/src/FormApi.ts:686](https://github.com/TanStack/ ### fieldInfo ```ts -fieldInfo: Record ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TFormData extends any[] ? PrefixArrayAccessor, [any]> : TFormData extends Date ? never : TFormData extends object ? PrefixObjectAccessor, []> : TFormData extends string | number | bigint | boolean ? "" : never, FieldInfo>; +fieldInfo: Record, FieldInfo>; ``` Defined in: [packages/form-core/src/FormApi.ts:716](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L716) @@ -86,7 +86,7 @@ A record of field information for each field in the form. ### fieldMetaDerived ```ts -fieldMetaDerived: Derived ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TFormData extends any[] ? PrefixArrayAccessor, [any]> : TFormData extends Date ? never : TFormData extends object ? PrefixObjectAccessor, []> : TFormData extends string | number | bigint | boolean ? "" : never, AnyFieldMeta>>; +fieldMetaDerived: Derived, AnyFieldMeta>>; ``` Defined in: [packages/form-core/src/FormApi.ts:699](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L699) @@ -127,7 +127,7 @@ Defined in: [packages/form-core/src/FormApi.ts:718](https://github.com/TanStack/ ##### Returns -[`FormState`](../type-aliases/formstate.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\> +[`FormState`](../interfaces/formstate.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\> ## Methods @@ -141,7 +141,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1772](https://github.com/TanStack #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters @@ -218,13 +218,13 @@ Gets the field info of the specified field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> #### Returns @@ -244,13 +244,13 @@ Gets the metadata of the specified field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> #### Returns @@ -270,7 +270,7 @@ Gets the value of the specified field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters @@ -336,13 +336,13 @@ Defined in: [packages/form-core/src/FormApi.ts:1811](https://github.com/TanStack #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### index @@ -350,7 +350,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1811](https://github.com/TanStack ##### value -[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\>\[`number`\] : `never` +[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\> *extends* `any`[] ? [`DeepValue`](../type-aliases/deepvalue.md)\<[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\>\>\[`number`\] : `never` ##### opts? @@ -396,13 +396,13 @@ Moves the value at the first specified index to the second specified index withi #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### index1 @@ -437,17 +437,17 @@ Pushes a value into an array field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### value -[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\>\[`number`\] : `never` +[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\> *extends* `any`[] ? [`DeepValue`](../type-aliases/deepvalue.md)\<[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\>\>\[`number`\] : `never` ##### opts? @@ -474,13 +474,13 @@ Removes a value from an array field at the specified index. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### index @@ -512,13 +512,13 @@ Replaces a value into an array field at the specified index. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### index @@ -526,7 +526,7 @@ Replaces a value into an array field at the specified index. ##### value -[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\> *extends* `any`[] ? `any`[] & [`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\>\[`number`\] : `never` +[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\> *extends* `any`[] ? [`DeepValue`](../type-aliases/deepvalue.md)\<[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\>\>\[`number`\] : `never` ##### opts? @@ -581,7 +581,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1718](https://github.com/TanStack #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters @@ -629,13 +629,13 @@ Updates the metadata of the specified field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### updater @@ -662,17 +662,17 @@ Sets the value of the specified field and optionally updates the touched state. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### updater -[`Updater`](../type-aliases/updater.md)\<[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`, \[\]\>\> +[`Updater`](../type-aliases/updater.md)\<[`DeepValue`](../type-aliases/deepvalue.md)\<`TFormData`, `TField`\>\> ##### opts? @@ -700,13 +700,13 @@ Swaps the values at the specified indices within an array field. #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### index1 @@ -785,7 +785,7 @@ Validates the children of a specified array in the form starting from a given in #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters @@ -819,13 +819,13 @@ Validates a specified field in the form using the correct handlers for a given v #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters ##### field -`TField` +[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> ##### cause diff --git a/docs/reference/functions/mergeform.md b/docs/reference/functions/mergeform.md index 24238089b..25d3a54e3 100644 --- a/docs/reference/functions/mergeform.md +++ b/docs/reference/functions/mergeform.md @@ -25,7 +25,7 @@ Defined in: [packages/form-core/src/mergeForm.ts:73](https://github.com/TanStack ### state -`Partial`\<[`FormState`](../type-aliases/formstate.md)\<`TFormData`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`\>\> +`Partial`\<[`FormState`](../interfaces/formstate.md)\<`TFormData`, `any`, `any`, `any`, `any`, `any`, `any`, `any`, `any`\>\> ## Returns diff --git a/docs/reference/index.md b/docs/reference/index.md index a87090a70..170d879bf 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -19,11 +19,14 @@ title: "@tanstack/form-core" - [FieldOptions](interfaces/fieldoptions.md) - [FieldValidators](interfaces/fieldvalidators.md) - [FormOptions](interfaces/formoptions.md) +- [FormState](interfaces/formstate.md) - [FormValidators](interfaces/formvalidators.md) - [StandardSchemaV1Issue](interfaces/standardschemav1issue.md) ## Type Aliases +- [AllObjectKeys](type-aliases/allobjectkeys.md) +- [AllTupleKeys](type-aliases/alltuplekeys.md) - [AnyFieldApi](type-aliases/anyfieldapi.md) - [AnyFieldMeta](type-aliases/anyfieldmeta.md) - [AnyFieldMetaBase](type-aliases/anyfieldmetabase.md) @@ -31,7 +34,12 @@ title: "@tanstack/form-core" - [AnyFormApi](type-aliases/anyformapi.md) - [AnyFormState](type-aliases/anyformstate.md) - [BaseFormState](type-aliases/baseformstate.md) +- [ConstrainLiteral](type-aliases/constrainliteral.md) - [DeepKeys](type-aliases/deepkeys.md) +- [DeepKeysAndValues](type-aliases/deepkeysandvalues.md) +- [DeepKeysAndValuesArray](type-aliases/deepkeysandvaluesarray.md) +- [DeepKeysAndValuesObject](type-aliases/deepkeysandvaluesobject.md) +- [DeepKeysAndValuesTuple](type-aliases/deepkeysandvaluestuple.md) - [DeepValue](type-aliases/deepvalue.md) - [DerivedFormState](type-aliases/derivedformstate.md) - [FieldInfo](type-aliases/fieldinfo.md) @@ -39,18 +47,25 @@ title: "@tanstack/form-core" - [FieldMetaBase](type-aliases/fieldmetabase.md) - [FieldMetaDerived](type-aliases/fieldmetaderived.md) - [FieldState](type-aliases/fieldstate.md) -- [FormState](type-aliases/formstate.md) +- [FlattenObjectKeys](type-aliases/flattenobjectkeys.md) +- [FlattenObjectValues](type-aliases/flattenobjectvalues.md) +- [FlattenTupleKeys](type-aliases/flattentuplekeys.md) +- [FlattenTupleValues](type-aliases/flattentuplevalues.md) - [FormValidateFn](type-aliases/formvalidatefn.md) - [FormValidationError](type-aliases/formvalidationerror.md) - [FormValidator](type-aliases/formvalidator.md) +- [GetValue](type-aliases/getvalue.md) +- [ObjectAccessor](type-aliases/objectaccessor.md) - [StandardSchemaV1](type-aliases/standardschemav1.md) - [TStandardSchemaValidatorValue](type-aliases/tstandardschemavalidatorvalue.md) +- [TupleAccessor](type-aliases/tupleaccessor.md) - [UnwrapFieldAsyncValidateOrFn](type-aliases/unwrapfieldasyncvalidateorfn.md) - [UnwrapFieldValidateOrFn](type-aliases/unwrapfieldvalidateorfn.md) - [UnwrapFormAsyncValidateOrFn](type-aliases/unwrapformasyncvalidateorfn.md) - [UnwrapFormValidateOrFn](type-aliases/unwrapformvalidateorfn.md) - [Updater](type-aliases/updater.md) - [UpdaterFn](type-aliases/updaterfn.md) +- [ValidateName](type-aliases/validatename.md) - [ValidationError](type-aliases/validationerror.md) - [ValidationMeta](type-aliases/validationmeta.md) - [ValidationSource](type-aliases/validationsource.md) diff --git a/docs/reference/interfaces/fieldapioptions.md b/docs/reference/interfaces/fieldapioptions.md index 16109d166..7bae9d204 100644 --- a/docs/reference/interfaces/fieldapioptions.md +++ b/docs/reference/interfaces/fieldapioptions.md @@ -7,7 +7,7 @@ title: FieldApiOptions # Interface: FieldApiOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:447](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L447) +Defined in: [packages/form-core/src/FieldApi.ts:450](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L450) An object type representing the required options for the FieldApi class. @@ -19,7 +19,7 @@ An object type representing the required options for the FieldApi class. • **TParentData** -• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -63,7 +63,7 @@ An object type representing the required options for the FieldApi class. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L394) +Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -79,7 +79,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:390](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L390) +Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -95,7 +95,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L413) +Defined in: [packages/form-core/src/FieldApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L416) An optional object with default metadata for the field. @@ -111,7 +111,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:386](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L386) +Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) An optional default value for the field. @@ -127,7 +127,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:441](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L441) +Defined in: [packages/form-core/src/FieldApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L444) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -143,7 +143,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:485](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L485) +Defined in: [packages/form-core/src/FieldApi.ts:502](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L502) *** @@ -153,7 +153,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:485](https://github.com/TanStack optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:437](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L437) +Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) A list of listeners which attach to the corresponding events @@ -166,10 +166,10 @@ A list of listeners which attach to the corresponding events ### name ```ts -name: TName; +name: ValidateName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:382](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L382) +Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -185,7 +185,7 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L398) +Defined in: [packages/form-core/src/FieldApi.ts:401](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L401) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldlisteners.md b/docs/reference/interfaces/fieldlisteners.md index e0cfca1e0..25989ffaf 100644 --- a/docs/reference/interfaces/fieldlisteners.md +++ b/docs/reference/interfaces/fieldlisteners.md @@ -7,13 +7,13 @@ title: FieldListeners # Interface: FieldListeners\ -Defined in: [packages/form-core/src/FieldApi.ts:347](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L347) +Defined in: [packages/form-core/src/FieldApi.ts:350](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L350) ## Type Parameters • **TParentData** -• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -25,7 +25,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:347](https://github.com/TanStack optional onBlur: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L353) +Defined in: [packages/form-core/src/FieldApi.ts:356](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L356) *** @@ -35,7 +35,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack optional onChange: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:352](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L352) +Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L355) *** @@ -45,7 +45,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:352](https://github.com/TanStack optional onMount: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:354](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L354) +Defined in: [packages/form-core/src/FieldApi.ts:357](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L357) *** @@ -55,4 +55,4 @@ Defined in: [packages/form-core/src/FieldApi.ts:354](https://github.com/TanStack optional onSubmit: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L355) +Defined in: [packages/form-core/src/FieldApi.ts:358](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L358) diff --git a/docs/reference/interfaces/fieldoptions.md b/docs/reference/interfaces/fieldoptions.md index 8f3dee93a..c84168d40 100644 --- a/docs/reference/interfaces/fieldoptions.md +++ b/docs/reference/interfaces/fieldoptions.md @@ -7,7 +7,7 @@ title: FieldOptions # Interface: FieldOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L361) +Defined in: [packages/form-core/src/FieldApi.ts:364](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L364) An object type representing the options for a field in a form. @@ -19,7 +19,7 @@ An object type representing the options for a field in a form. • **TParentData** -• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -45,7 +45,7 @@ An object type representing the options for a field in a form. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L394) +Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -57,7 +57,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:390](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L390) +Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -69,7 +69,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L413) +Defined in: [packages/form-core/src/FieldApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L416) An optional object with default metadata for the field. @@ -81,7 +81,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:386](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L386) +Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) An optional default value for the field. @@ -93,7 +93,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:441](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L441) +Defined in: [packages/form-core/src/FieldApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L444) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -105,7 +105,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:437](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L437) +Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) A list of listeners which attach to the corresponding events @@ -114,10 +114,10 @@ A list of listeners which attach to the corresponding events ### name ```ts -name: TName; +name: ValidateName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:382](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L382) +Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -129,6 +129,6 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L398) +Defined in: [packages/form-core/src/FieldApi.ts:401](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L401) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldvalidators.md b/docs/reference/interfaces/fieldvalidators.md index 8d5f44c66..29d938bad 100644 --- a/docs/reference/interfaces/fieldvalidators.md +++ b/docs/reference/interfaces/fieldvalidators.md @@ -7,13 +7,13 @@ title: FieldValidators # Interface: FieldValidators\ -Defined in: [packages/form-core/src/FieldApi.ts:266](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L266) +Defined in: [packages/form-core/src/FieldApi.ts:269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L269) ## Type Parameters • **TParentData** -• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -39,7 +39,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:266](https://github.com/TanStack optional onBlur: TOnBlur; ``` -Defined in: [packages/form-core/src/FieldApi.ts:315](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L315) +Defined in: [packages/form-core/src/FieldApi.ts:318](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L318) An optional function, that runs on the blur event of input. @@ -57,7 +57,7 @@ z.string().min(1) optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:321](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L321) +Defined in: [packages/form-core/src/FieldApi.ts:324](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L324) An optional property similar to `onBlur` but async validation. @@ -75,7 +75,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:328](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L328) +Defined in: [packages/form-core/src/FieldApi.ts:331](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L331) An optional number to represent how long the `onBlurAsync` should wait before running @@ -86,10 +86,10 @@ If set to a number larger than 0, will debounce the async validation event by th ### onBlurListenTo? ```ts -optional onBlurListenTo: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never[]; +optional onBlurListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:332](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L332) +Defined in: [packages/form-core/src/FieldApi.ts:335](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L335) An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes @@ -101,7 +101,7 @@ An optional list of field names that should trigger this field's `onBlur` and `o optional onChange: TOnChange; ``` -Defined in: [packages/form-core/src/FieldApi.ts:293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L293) +Defined in: [packages/form-core/src/FieldApi.ts:296](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L296) An optional function, that runs on the change event of input. @@ -119,7 +119,7 @@ z.string().min(1) optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:299](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L299) +Defined in: [packages/form-core/src/FieldApi.ts:302](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L302) An optional property similar to `onChange` but async validation @@ -137,7 +137,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:305](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L305) +Defined in: [packages/form-core/src/FieldApi.ts:308](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L308) An optional number to represent how long the `onChangeAsync` should wait before running @@ -148,10 +148,10 @@ If set to a number larger than 0, will debounce the async validation event by th ### onChangeListenTo? ```ts -optional onChangeListenTo: unknown extends TParentData ? string : TParentData extends readonly any[] & IsTuple ? PrefixTupleAccessor, AllowedIndexes, never>, []> : TParentData extends any[] ? PrefixArrayAccessor, [any]> : TParentData extends Date ? never : TParentData extends object ? PrefixObjectAccessor, []> : TParentData extends string | number | bigint | boolean ? "" : never[]; +optional onChangeListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:309](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L309) +Defined in: [packages/form-core/src/FieldApi.ts:312](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L312) An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes @@ -163,7 +163,7 @@ An optional list of field names that should trigger this field's `onChange` and optional onMount: TOnMount; ``` -Defined in: [packages/form-core/src/FieldApi.ts:287](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L287) +Defined in: [packages/form-core/src/FieldApi.ts:290](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L290) An optional function, that runs on the mount event of input. @@ -175,7 +175,7 @@ An optional function, that runs on the mount event of input. optional onSubmit: TOnSubmit; ``` -Defined in: [packages/form-core/src/FieldApi.ts:338](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L338) +Defined in: [packages/form-core/src/FieldApi.ts:341](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L341) An optional function, that runs on the submit event of form. @@ -193,7 +193,7 @@ z.string().min(1) optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:344](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L344) +Defined in: [packages/form-core/src/FieldApi.ts:347](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L347) An optional property similar to `onSubmit` but async validation. diff --git a/docs/reference/interfaces/formstate.md b/docs/reference/interfaces/formstate.md new file mode 100644 index 000000000..4f94546c6 --- /dev/null +++ b/docs/reference/interfaces/formstate.md @@ -0,0 +1,448 @@ +--- +id: FormState +title: FormState +--- + + + +# Interface: FormState\ + +Defined in: [packages/form-core/src/FormApi.ts:535](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L535) + +An object representing the current state of the form. + +## Extends + +- [`BaseFormState`](../type-aliases/baseformstate.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\>.[`DerivedFormState`](../type-aliases/derivedformstate.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\> + +## Type Parameters + +• **TFormData** + +• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +## Properties + +### \_force\_re\_eval? + +```ts +optional _force_re_eval: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:462](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L462) + +@private, used to force a re-evaluation of the form state when options change + +#### Inherited from + +```ts +BaseFormState._force_re_eval +``` + +*** + +### canSubmit + +```ts +canSubmit: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:528](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L528) + +A boolean indicating if the form can be submitted based on its current state. + +#### Inherited from + +```ts +DerivedFormState.canSubmit +``` + +*** + +### errorMap + +```ts +errorMap: FormValidationErrorMap, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormAsyncValidateOrFn>; +``` + +Defined in: [packages/form-core/src/FormApi.ts:412](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L412) + +The error map for the form itself. + +#### Inherited from + +```ts +BaseFormState.errorMap +``` + +*** + +### errors + +```ts +errors: ( + | UnwrapFormValidateOrFn + | UnwrapFormValidateOrFn + | UnwrapFormAsyncValidateOrFn + | UnwrapFormValidateOrFn + | UnwrapFormAsyncValidateOrFn + | UnwrapFormValidateOrFn + | UnwrapFormAsyncValidateOrFn + | UnwrapFormAsyncValidateOrFn)[]; +``` + +Defined in: [packages/form-core/src/FormApi.ts:487](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L487) + +The error array for the form itself. + +#### Inherited from + +```ts +DerivedFormState.errors +``` + +*** + +### fieldMeta + +```ts +fieldMeta: Record, AnyFieldMeta>; +``` + +Defined in: [packages/form-core/src/FormApi.ts:532](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L532) + +A record of field metadata for each field in the form. + +#### Inherited from + +```ts +DerivedFormState.fieldMeta +``` + +*** + +### fieldMetaBase + +```ts +fieldMetaBase: Record, AnyFieldMetaBase>; +``` + +Defined in: [packages/form-core/src/FormApi.ts:429](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L429) + +A record of field metadata for each field in the form, not including the derived properties, like `errors` and such + +#### Inherited from + +```ts +BaseFormState.fieldMetaBase +``` + +*** + +### isBlurred + +```ts +isBlurred: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:512](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L512) + +A boolean indicating if any of the form fields have been blurred. + +#### Inherited from + +```ts +DerivedFormState.isBlurred +``` + +*** + +### isDirty + +```ts +isDirty: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:516](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L516) + +A boolean indicating if any of the form's fields' values have been modified by the user. `True` if the user have modified at least one of the fields. Opposite of `isPristine`. + +#### Inherited from + +```ts +DerivedFormState.isDirty +``` + +*** + +### isFieldsValid + +```ts +isFieldsValid: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:504](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L504) + +A boolean indicating if all the form fields are valid. + +#### Inherited from + +```ts +DerivedFormState.isFieldsValid +``` + +*** + +### isFieldsValidating + +```ts +isFieldsValidating: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:500](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L500) + +A boolean indicating if any of the form fields are currently validating. + +#### Inherited from + +```ts +DerivedFormState.isFieldsValidating +``` + +*** + +### isFormValid + +```ts +isFormValid: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:483](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L483) + +A boolean indicating if the form is valid. + +#### Inherited from + +```ts +DerivedFormState.isFormValid +``` + +*** + +### isFormValidating + +```ts +isFormValidating: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:479](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L479) + +A boolean indicating if the form is currently validating. + +#### Inherited from + +```ts +DerivedFormState.isFormValidating +``` + +*** + +### isPristine + +```ts +isPristine: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:520](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L520) + +A boolean indicating if none of the form's fields' values have been modified by the user. `True` if the user have not modified any of the fields. Opposite of `isDirty`. + +#### Inherited from + +```ts +DerivedFormState.isPristine +``` + +*** + +### isSubmitSuccessful + +```ts +isSubmitSuccessful: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:458](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L458) + +A boolean indicating if the last submission was successful. + +#### Inherited from + +```ts +BaseFormState.isSubmitSuccessful +``` + +*** + +### isSubmitted + +```ts +isSubmitted: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:446](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L446) + +A boolean indicating if the form has been submitted. + +#### Inherited from + +```ts +BaseFormState.isSubmitted +``` + +*** + +### isSubmitting + +```ts +isSubmitting: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L442) + +A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. + +Goes back to `false` when submission completes for one of the following reasons: +- the validation step returned errors. +- the `onSubmit` function has completed. + +Note: if you're running async operations in your `onSubmit` function make sure to await them to ensure `isSubmitting` is set to `false` only when the async operation completes. + +This is useful for displaying loading indicators or disabling form inputs during submission. + +#### Inherited from + +```ts +BaseFormState.isSubmitting +``` + +*** + +### isTouched + +```ts +isTouched: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:508](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L508) + +A boolean indicating if any of the form fields have been touched. + +#### Inherited from + +```ts +DerivedFormState.isTouched +``` + +*** + +### isValid + +```ts +isValid: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:524](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L524) + +A boolean indicating if the form and all its fields are valid. + +#### Inherited from + +```ts +DerivedFormState.isValid +``` + +*** + +### isValidating + +```ts +isValidating: boolean; +``` + +Defined in: [packages/form-core/src/FormApi.ts:450](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L450) + +A boolean indicating if the form or any of its fields are currently validating. + +#### Inherited from + +```ts +BaseFormState.isValidating +``` + +*** + +### submissionAttempts + +```ts +submissionAttempts: number; +``` + +Defined in: [packages/form-core/src/FormApi.ts:454](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L454) + +A counter for tracking the number of submission attempts. + +#### Inherited from + +```ts +BaseFormState.submissionAttempts +``` + +*** + +### validationMetaMap + +```ts +validationMetaMap: Record<"onChange" | "onBlur" | "onSubmit" | "onMount" | "onServer", undefined | ValidationMeta>; +``` + +Defined in: [packages/form-core/src/FormApi.ts:425](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L425) + +An internal mechanism used for keeping track of validation logic in a form. + +#### Inherited from + +```ts +BaseFormState.validationMetaMap +``` + +*** + +### values + +```ts +values: TFormData; +``` + +Defined in: [packages/form-core/src/FormApi.ts:408](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L408) + +The current values of the form fields. + +#### Inherited from + +```ts +BaseFormState.values +``` diff --git a/docs/reference/type-aliases/allobjectkeys.md b/docs/reference/type-aliases/allobjectkeys.md new file mode 100644 index 000000000..715981eee --- /dev/null +++ b/docs/reference/type-aliases/allobjectkeys.md @@ -0,0 +1,18 @@ +--- +id: AllObjectKeys +title: AllObjectKeys +--- + + + +# Type Alias: AllObjectKeys\ + +```ts +type AllObjectKeys = T extends any ? keyof T & string | number : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:87](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L87) + +## Type Parameters + +• **T** diff --git a/docs/reference/type-aliases/alltuplekeys.md b/docs/reference/type-aliases/alltuplekeys.md new file mode 100644 index 000000000..b05354e08 --- /dev/null +++ b/docs/reference/type-aliases/alltuplekeys.md @@ -0,0 +1,18 @@ +--- +id: AllTupleKeys +title: AllTupleKeys +--- + + + +# Type Alias: AllTupleKeys\ + +```ts +type AllTupleKeys = T extends any ? keyof T & `${number}` : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:38](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L38) + +## Type Parameters + +• **T** diff --git a/docs/reference/type-aliases/anyfieldapi.md b/docs/reference/type-aliases/anyfieldapi.md index 9db1bfefa..08853cb89 100644 --- a/docs/reference/type-aliases/anyfieldapi.md +++ b/docs/reference/type-aliases/anyfieldapi.md @@ -11,6 +11,6 @@ title: AnyFieldApi type AnyFieldApi = FieldApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:828](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L828) +Defined in: [packages/form-core/src/FieldApi.ts:815](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L815) A type representing the Field API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/anyfieldmeta.md b/docs/reference/type-aliases/anyfieldmeta.md index abbfd3049..7eb934eca 100644 --- a/docs/reference/type-aliases/anyfieldmeta.md +++ b/docs/reference/type-aliases/anyfieldmeta.md @@ -11,4 +11,4 @@ title: AnyFieldMeta type AnyFieldMeta = FieldMeta; ``` -Defined in: [packages/form-core/src/FieldApi.ts:747](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L747) +Defined in: [packages/form-core/src/FieldApi.ts:734](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L734) diff --git a/docs/reference/type-aliases/anyfieldmetabase.md b/docs/reference/type-aliases/anyfieldmetabase.md index 34a5f25ad..4a008df18 100644 --- a/docs/reference/type-aliases/anyfieldmetabase.md +++ b/docs/reference/type-aliases/anyfieldmetabase.md @@ -11,4 +11,4 @@ title: AnyFieldMetaBase type AnyFieldMetaBase = FieldMetaBase; ``` -Defined in: [packages/form-core/src/FieldApi.ts:569](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L569) +Defined in: [packages/form-core/src/FieldApi.ts:571](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L571) diff --git a/docs/reference/type-aliases/anyfieldmetaderived.md b/docs/reference/type-aliases/anyfieldmetaderived.md index 71df55bfb..b5af3f970 100644 --- a/docs/reference/type-aliases/anyfieldmetaderived.md +++ b/docs/reference/type-aliases/anyfieldmetaderived.md @@ -11,4 +11,4 @@ title: AnyFieldMetaDerived type AnyFieldMetaDerived = FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:661](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L661) +Defined in: [packages/form-core/src/FieldApi.ts:648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L648) diff --git a/docs/reference/type-aliases/constrainliteral.md b/docs/reference/type-aliases/constrainliteral.md new file mode 100644 index 000000000..a24df8375 --- /dev/null +++ b/docs/reference/type-aliases/constrainliteral.md @@ -0,0 +1,22 @@ +--- +id: ConstrainLiteral +title: ConstrainLiteral +--- + + + +# Type Alias: ConstrainLiteral\ + +```ts +type ConstrainLiteral = T & TConstraint | TDefault; +``` + +Defined in: [packages/form-core/src/util-types.ts:150](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L150) + +## Type Parameters + +• **T** + +• **TConstraint** + +• **TDefault** = `TConstraint` diff --git a/docs/reference/type-aliases/deepkeys.md b/docs/reference/type-aliases/deepkeys.md index 64559e493..468e7ce51 100644 --- a/docs/reference/type-aliases/deepkeys.md +++ b/docs/reference/type-aliases/deepkeys.md @@ -5,18 +5,16 @@ title: DeepKeys -# Type Alias: DeepKeys\ +# Type Alias: DeepKeys\ ```ts -type DeepKeys = TDepth["length"] extends 5 ? never : unknown extends T ? PrefixFromDepth : T extends readonly any[] & IsTuple ? PrefixTupleAccessor, TDepth> : T extends any[] ? PrefixArrayAccessor : T extends Date ? never : T extends object ? PrefixObjectAccessor : T extends string | number | boolean | bigint ? "" : never; +type DeepKeys = unknown extends T ? string : keyof DeepKeysAndValues & string; ``` -Defined in: [packages/form-core/src/util-types.ts:70](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L70) +Defined in: [packages/form-core/src/util-types.ts:141](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L141) The keys of an object or array, deeply nested. ## Type Parameters • **T** - -• **TDepth** *extends* `any`[] = \[\] diff --git a/docs/reference/type-aliases/deepkeysandvalues.md b/docs/reference/type-aliases/deepkeysandvalues.md new file mode 100644 index 000000000..3bca4810f --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvalues.md @@ -0,0 +1,20 @@ +--- +id: DeepKeysAndValues +title: DeepKeysAndValues +--- + + + +# Type Alias: DeepKeysAndValues\ + +```ts +type DeepKeysAndValues = IsAny extends true ? T : T extends string | number | boolean | bigint ? Record : T extends ReadonlyArray ? number extends T["length"] ? DeepKeysAndValuesArray : DeepKeysAndValuesTuple : T extends object ? DeepKeysAndValuesObject : Record; +``` + +Defined in: [packages/form-core/src/util-types.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L125) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` = `""` diff --git a/docs/reference/type-aliases/deepkeysandvaluesarray.md b/docs/reference/type-aliases/deepkeysandvaluesarray.md new file mode 100644 index 000000000..72fd1c3cb --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluesarray.md @@ -0,0 +1,22 @@ +--- +id: DeepKeysAndValuesArray +title: DeepKeysAndValuesArray +--- + + + +# Type Alias: DeepKeysAndValuesArray\ + +```ts +type DeepKeysAndValuesArray = { [TKey in TNextPrefix]: T[number] } & DeepKeysAndValues; +``` + +Defined in: [packages/form-core/src/util-types.ts:24](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L24) + +## Type Parameters + +• **T** *extends* `ReadonlyArray`\<`any`\> + +• **TPrefix** *extends* `string` + +• **TNextPrefix** *extends* `string` = `` `${TPrefix}[${number}]` `` \| `` `${TPrefix}[number]` `` diff --git a/docs/reference/type-aliases/deepkeysandvaluesobject.md b/docs/reference/type-aliases/deepkeysandvaluesobject.md new file mode 100644 index 000000000..43c711dcb --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluesobject.md @@ -0,0 +1,20 @@ +--- +id: DeepKeysAndValuesObject +title: DeepKeysAndValuesObject +--- + + + +# Type Alias: DeepKeysAndValuesObject\ + +```ts +type DeepKeysAndValuesObject = { [TKey in AllObjectKeys as ObjectAccessor]: GetValue } & { [TKey in FlattenObjectKeys]: FlattenObjectValues }; +``` + +Defined in: [packages/form-core/src/util-types.ts:119](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L119) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/deepkeysandvaluestuple.md b/docs/reference/type-aliases/deepkeysandvaluestuple.md new file mode 100644 index 000000000..e1aa8b501 --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluestuple.md @@ -0,0 +1,20 @@ +--- +id: DeepKeysAndValuesTuple +title: DeepKeysAndValuesTuple +--- + + + +# Type Alias: DeepKeysAndValuesTuple\ + +```ts +type DeepKeysAndValuesTuple = { [TKey in AllTupleKeys as TupleAccessor]: GetValue } & { [TKey in FlattenTupleKeys]: FlattenTupleValues }; +``` + +Defined in: [packages/form-core/src/util-types.ts:76](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L76) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/deepvalue.md b/docs/reference/type-aliases/deepvalue.md index 22f9dd033..09bc229b7 100644 --- a/docs/reference/type-aliases/deepvalue.md +++ b/docs/reference/type-aliases/deepvalue.md @@ -5,15 +5,13 @@ title: DeepValue -# Type Alias: DeepValue\ +# Type Alias: DeepValue\ ```ts -type DeepValue = unknown extends TValue ? TValue : TDepth["length"] extends 10 ? unknown : TValue extends ReadonlyArray ? TAccessor extends `[${infer TBrackets}].${infer TAfter}` ? DeepValue, TAfter, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue : TAccessor extends keyof TValue ? TValue[TAccessor] : TValue[TAccessor & number] : TAccessor extends `${infer TBefore}[${infer TEverythingElse}` ? DeepValue, `[${TEverythingElse}`, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue : TAccessor extends `${infer TBefore}.${infer TAfter}` ? DeepValue, TAfter, [...TDepth, any]> : TAccessor extends string ? - | Get - | ApplyNull<...> | ApplyUndefined<...> : never; +type DeepValue = DeepKeysAndValues[TAccessor & keyof DeepKeysAndValues]; ``` -Defined in: [packages/form-core/src/util-types.ts:104](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L104) +Defined in: [packages/form-core/src/util-types.ts:157](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L157) Infer the type of a deeply nested property within an object or an array. @@ -22,5 +20,3 @@ Infer the type of a deeply nested property within an object or an array. • **TValue** • **TAccessor** - -• **TDepth** *extends* `ReadonlyArray`\<`any`\> = \[\] diff --git a/docs/reference/type-aliases/fieldmeta.md b/docs/reference/type-aliases/fieldmeta.md index 14f0df130..03601d172 100644 --- a/docs/reference/type-aliases/fieldmeta.md +++ b/docs/reference/type-aliases/fieldmeta.md @@ -11,7 +11,7 @@ title: FieldMeta type FieldMeta = FieldMetaBase & FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:684](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L684) +Defined in: [packages/form-core/src/FieldApi.ts:671](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L671) An object type representing the metadata of a field in a form. @@ -19,7 +19,7 @@ An object type representing the metadata of a field in a form. • **TParentData** -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/fieldmetabase.md b/docs/reference/type-aliases/fieldmetabase.md index 236e3709a..c0b8434de 100644 --- a/docs/reference/type-aliases/fieldmetabase.md +++ b/docs/reference/type-aliases/fieldmetabase.md @@ -11,13 +11,13 @@ title: FieldMetaBase type FieldMetaBase = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:499](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L499) +Defined in: [packages/form-core/src/FieldApi.ts:516](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L516) ## Type Parameters • **TParentData** -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> @@ -54,7 +54,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:499](https://github.com/TanStack ### errorMap ```ts -errorMap: ValidationErrorMap, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn>; +errorMap: ValidationErrorMap, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn, UnwrapFieldValidateOrFn, UnwrapFieldAsyncValidateOrFn>; ``` A map of errors related to the field value. diff --git a/docs/reference/type-aliases/fieldmetaderived.md b/docs/reference/type-aliases/fieldmetaderived.md index 1f7bb3888..3346e35dd 100644 --- a/docs/reference/type-aliases/fieldmetaderived.md +++ b/docs/reference/type-aliases/fieldmetaderived.md @@ -11,13 +11,13 @@ title: FieldMetaDerived type FieldMetaDerived = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:589](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L589) +Defined in: [packages/form-core/src/FieldApi.ts:591](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L591) ## Type Parameters • **TParentData** -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> @@ -55,13 +55,13 @@ Defined in: [packages/form-core/src/FieldApi.ts:589](https://github.com/TanStack ```ts errors: ( - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray> - | UnwrapOneLevelOfArray>)[]; + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray> + | UnwrapOneLevelOfArray>)[]; ``` An array of errors related to the field value. diff --git a/docs/reference/type-aliases/fieldstate.md b/docs/reference/type-aliases/fieldstate.md index c1043845e..41bbcb2a5 100644 --- a/docs/reference/type-aliases/fieldstate.md +++ b/docs/reference/type-aliases/fieldstate.md @@ -11,7 +11,7 @@ title: FieldState type FieldState = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:770](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L770) +Defined in: [packages/form-core/src/FieldApi.ts:757](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L757) An object type representing the state of a field. @@ -19,7 +19,7 @@ An object type representing the state of a field. • **TParentData** -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/flattenobjectkeys.md b/docs/reference/type-aliases/flattenobjectkeys.md new file mode 100644 index 000000000..d2293d93b --- /dev/null +++ b/docs/reference/type-aliases/flattenobjectkeys.md @@ -0,0 +1,20 @@ +--- +id: FlattenObjectKeys +title: FlattenObjectKeys +--- + + + +# Type Alias: FlattenObjectKeys\ + +```ts +type FlattenObjectKeys = T extends any ? AllObjectKeys extends infer TKey ? TKey extends any ? T[TKey] extends infer TValue ? TValue extends any ? keyof DeepKeysAndValues> : never : never : never : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:91](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L91) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattenobjectvalues.md b/docs/reference/type-aliases/flattenobjectvalues.md new file mode 100644 index 000000000..cb2ecbb20 --- /dev/null +++ b/docs/reference/type-aliases/flattenobjectvalues.md @@ -0,0 +1,22 @@ +--- +id: FlattenObjectValues +title: FlattenObjectValues +--- + + + +# Type Alias: FlattenObjectValues\ + +```ts +type FlattenObjectValues = T extends any ? AllObjectKeys extends infer TAllKeys ? TAllKeys extends any ? ObjectAccessor extends infer TAccessor ? T[TAllKeys] extends infer TValue ? TValue extends any ? TKey extends keyof DeepKeysAndValues ? DeepKeysAndValues[TKey] : never : never : never : never : never : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:103](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L103) + +## Type Parameters + +• **T** + +• **TKey** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattentuplekeys.md b/docs/reference/type-aliases/flattentuplekeys.md new file mode 100644 index 000000000..ed96aade0 --- /dev/null +++ b/docs/reference/type-aliases/flattentuplekeys.md @@ -0,0 +1,20 @@ +--- +id: FlattenTupleKeys +title: FlattenTupleKeys +--- + + + +# Type Alias: FlattenTupleKeys\ + +```ts +type FlattenTupleKeys = T extends any ? AllTupleKeys extends infer TKey ? TKey extends any ? TupleAccessor extends infer TAccessor ? T[TKey] extends infer TValue ? TValue extends any ? keyof DeepKeysAndValues : never : never : never : never : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:46](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L46) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattentuplevalues.md b/docs/reference/type-aliases/flattentuplevalues.md new file mode 100644 index 000000000..b26a70d45 --- /dev/null +++ b/docs/reference/type-aliases/flattentuplevalues.md @@ -0,0 +1,22 @@ +--- +id: FlattenTupleValues +title: FlattenTupleValues +--- + + + +# Type Alias: FlattenTupleValues\ + +```ts +type FlattenTupleValues = T extends any ? AllObjectKeys extends infer TAllKeys ? TAllKeys extends any ? TupleAccessor extends infer TAccessor ? T[TAllKeys] extends infer TValue ? TValue extends any ? TKey extends keyof DeepKeysAndValues ? DeepKeysAndValues[TKey] : never : never : never : never : never : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:60](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L60) + +## Type Parameters + +• **T** + +• **TKey** + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/formstate.md b/docs/reference/type-aliases/formstate.md deleted file mode 100644 index ff23c8776..000000000 --- a/docs/reference/type-aliases/formstate.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: FormState -title: FormState ---- - - - -# Type Alias: FormState\ - -```ts -type FormState = BaseFormState & DerivedFormState; -``` - -Defined in: [packages/form-core/src/FormApi.ts:535](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L535) - -## Type Parameters - -• **TFormData** - -• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> diff --git a/docs/reference/type-aliases/getvalue.md b/docs/reference/type-aliases/getvalue.md new file mode 100644 index 000000000..3605a3ec8 --- /dev/null +++ b/docs/reference/type-aliases/getvalue.md @@ -0,0 +1,20 @@ +--- +id: GetValue +title: GetValue +--- + + + +# Type Alias: GetValue\ + +```ts +type GetValue = T extends any ? TKey extends keyof T ? T[TKey] : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:40](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L40) + +## Type Parameters + +• **T** + +• **TKey** diff --git a/docs/reference/type-aliases/objectaccessor.md b/docs/reference/type-aliases/objectaccessor.md new file mode 100644 index 000000000..bb84e23f4 --- /dev/null +++ b/docs/reference/type-aliases/objectaccessor.md @@ -0,0 +1,20 @@ +--- +id: ObjectAccessor +title: ObjectAccessor +--- + + + +# Type Alias: ObjectAccessor\ + +```ts +type ObjectAccessor = TPrefix extends "" ? `${TKey}` : `${TPrefix}.${TKey}`; +``` + +Defined in: [packages/form-core/src/util-types.ts:82](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L82) + +## Type Parameters + +• **TPrefix** *extends* `string` + +• **TKey** *extends* `string` \| `number` diff --git a/docs/reference/type-aliases/tupleaccessor.md b/docs/reference/type-aliases/tupleaccessor.md new file mode 100644 index 000000000..b1c5ec3d4 --- /dev/null +++ b/docs/reference/type-aliases/tupleaccessor.md @@ -0,0 +1,20 @@ +--- +id: TupleAccessor +title: TupleAccessor +--- + + + +# Type Alias: TupleAccessor\ + +```ts +type TupleAccessor = `${TPrefix}[${TKey & string}]`; +``` + +Defined in: [packages/form-core/src/util-types.ts:33](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L33) + +## Type Parameters + +• **TPrefix** *extends* `string` + +• **TKey** diff --git a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md index f2ed90556..f03216626 100644 --- a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md +++ b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md @@ -5,22 +5,20 @@ title: UnwrapFieldAsyncValidateOrFn -# Type Alias: UnwrapFieldAsyncValidateOrFn\ +# Type Alias: UnwrapFieldAsyncValidateOrFn\ ```ts -type UnwrapFieldAsyncValidateOrFn = +type UnwrapFieldAsyncValidateOrFn = | [TFormValidateOrFn] extends [StandardSchemaV1] ? TName extends keyof TStandardOut ? StandardSchemaV1Issue[] : undefined : undefined | UnwrapFormAsyncValidateOrFnForInner extends infer TFormValidateVal ? TFormValidateVal extends object ? [DeepValue] extends [never] ? undefined : StandardSchemaV1Issue[] : TFormValidateVal extends object ? TName extends keyof TFormValidateVal["fields"] ? TFormValidateVal["fields"][TName] : undefined : undefined : never | [TValidateOrFn] extends [FieldValidateAsyncFn] ? Awaited> : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:203](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L203) +Defined in: [packages/form-core/src/FieldApi.ts:207](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L207) ## Type Parameters -• **TParentData** - -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TValidateOrFn** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`any`, `any`, `any`\> diff --git a/docs/reference/type-aliases/unwrapfieldvalidateorfn.md b/docs/reference/type-aliases/unwrapfieldvalidateorfn.md index c58816352..6c58f8eb3 100644 --- a/docs/reference/type-aliases/unwrapfieldvalidateorfn.md +++ b/docs/reference/type-aliases/unwrapfieldvalidateorfn.md @@ -5,22 +5,20 @@ title: UnwrapFieldValidateOrFn -# Type Alias: UnwrapFieldValidateOrFn\ +# Type Alias: UnwrapFieldValidateOrFn\ ```ts -type UnwrapFieldValidateOrFn = +type UnwrapFieldValidateOrFn = | [TFormValidateOrFn] extends [StandardSchemaV1] ? TName extends keyof TStandardOut ? StandardSchemaV1Issue[] : undefined : undefined | UnwrapFormValidateOrFnForInner extends infer TFormValidateVal ? TFormValidateVal extends object ? [DeepValue] extends [never] ? undefined : StandardSchemaV1Issue[] : TFormValidateVal extends object ? TName extends keyof TFormValidateVal["fields"] ? TFormValidateVal["fields"][TName] : undefined : undefined : never | [TValidateOrFn] extends [FieldValidateFn] ? ReturnType : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:120](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L120) +Defined in: [packages/form-core/src/FieldApi.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L125) ## Type Parameters -• **TParentData** - -• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> +• **TName** *extends* `string` • **TValidateOrFn** *extends* `undefined` \| `FieldValidateOrFn`\<`any`, `any`, `any`\> diff --git a/docs/reference/type-aliases/validatename.md b/docs/reference/type-aliases/validatename.md new file mode 100644 index 000000000..20868c81d --- /dev/null +++ b/docs/reference/type-aliases/validatename.md @@ -0,0 +1,20 @@ +--- +id: ValidateName +title: ValidateName +--- + + + +# Type Alias: ValidateName\ + +```ts +type ValidateName = ConstrainLiteral>; +``` + +Defined in: [packages/form-core/src/util-types.ts:145](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L145) + +## Type Parameters + +• **T** + +• **TName** *extends* `string` diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index 0e28a5287..2467ba02c 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -125,13 +125,15 @@ export type DeepKeysAndValuesObject = { export type DeepKeysAndValues = IsAny extends true ? T - : T extends string | number | boolean | bigint ? Record : T extends ReadonlyArray - ? number extends T['length'] - ? DeepKeysAndValuesArray - : DeepKeysAndValuesTuple - : T extends object - ? DeepKeysAndValuesObject - : Record + : T extends string | number | boolean | bigint + ? Record + : T extends ReadonlyArray + ? number extends T['length'] + ? DeepKeysAndValuesArray + : DeepKeysAndValuesTuple + : T extends object + ? DeepKeysAndValuesObject + : Record /** * The keys of an object or array, deeply nested. From 727fcb9dd2807428ea8d845eee45461490afde19 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 22:04:34 +0100 Subject: [PATCH 04/25] perf(form-core): rework to use UnionToIntersection, add other variance annotations and remove Omit --- packages/form-core/src/FieldApi.ts | 2 +- packages/form-core/src/FormApi.ts | 36 +++---- packages/form-core/src/types.ts | 16 +-- packages/form-core/src/util-types.ts | 143 ++++++++++-------------- packages/react-form/src/types.ts | 81 ++++++++++---- packages/react-form/src/useField.tsx | 156 +++++++++++++++++++-------- 6 files changed, 251 insertions(+), 183 deletions(-) diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 17810807c..73e8327a8 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -1603,7 +1603,7 @@ export class FieldApi< : this.form.validateSync(cause) const { hasErrored } = this.validateSync( cause, - fieldsErrorMap[this.name] ?? {}, + (fieldsErrorMap[this.name] ?? {}) as ValidationErrorMap, ) if (hasErrored && !this.options.asyncAlways) { diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index f9c221f0e..05c4e8061 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -392,15 +392,15 @@ export type FieldInfo = { * An object representing the current state of the form. */ export type BaseFormState< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, > = { /** * The current values of the form fields. @@ -463,15 +463,15 @@ export type BaseFormState< } export type DerivedFormState< - TFormData, - TOnMount extends undefined | FormValidateOrFn, - TOnChange extends undefined | FormValidateOrFn, - TOnChangeAsync extends undefined | FormAsyncValidateOrFn, - TOnBlur extends undefined | FormValidateOrFn, - TOnBlurAsync extends undefined | FormAsyncValidateOrFn, - TOnSubmit extends undefined | FormValidateOrFn, - TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, - TOnServer extends undefined | FormAsyncValidateOrFn, + in out TFormData, + in out TOnMount extends undefined | FormValidateOrFn, + in out TOnChange extends undefined | FormValidateOrFn, + in out TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + in out TOnBlur extends undefined | FormValidateOrFn, + in out TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + in out TOnSubmit extends undefined | FormValidateOrFn, + in out TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + in out TOnServer extends undefined | FormAsyncValidateOrFn, > = { /** * A boolean indicating if the form is currently validating. diff --git a/packages/form-core/src/types.ts b/packages/form-core/src/types.ts index 7dacf8b42..340af5ae9 100644 --- a/packages/form-core/src/types.ts +++ b/packages/form-core/src/types.ts @@ -19,14 +19,14 @@ export type ValidationErrorMapKeys = `on${Capitalize}` * @private */ export type ValidationErrorMap< - TOnMountReturn = unknown, - TOnChangeReturn = unknown, - TOnChangeAsyncReturn = unknown, - TOnBlurReturn = unknown, - TOnBlurAsyncReturn = unknown, - TOnSubmitReturn = unknown, - TOnSubmitAsyncReturn = unknown, - TOnServerReturn = unknown, + in out TOnMountReturn = unknown, + in out TOnChangeReturn = unknown, + in out TOnChangeAsyncReturn = unknown, + in out TOnBlurReturn = unknown, + in out TOnBlurAsyncReturn = unknown, + in out TOnSubmitReturn = unknown, + in out TOnSubmitAsyncReturn = unknown, + in out TOnServerReturn = unknown, > = { onMount?: TOnMountReturn onChange?: TOnChangeReturn | TOnChangeAsyncReturn diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index 0e28a5287..8b890e499 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -21,13 +21,18 @@ export type Narrow = Try> type IsAny = 0 extends 1 & T ? true : false -export type DeepKeysAndValuesArray< +export type ArrayAccessor = + | `${TPrefix}[${number}]` + | `${TPrefix}[number]` + +export type DeepKeysAndValuesArrayUnion< T extends ReadonlyArray, TPrefix extends string, - TNextPrefix extends string = `${TPrefix}[${number}]` | `${TPrefix}[number]`, -> = { [TKey in TNextPrefix]: T[number] } & DeepKeysAndValues< + TAcc, +> = DeepKeysAndValuesUnion< T[number], - TNextPrefix + ArrayAccessor, + TAcc | Record, T[number]> > export type TupleAccessor< @@ -37,101 +42,67 @@ export type TupleAccessor< export type AllTupleKeys = T extends any ? keyof T & `${number}` : never -export type GetValue = T extends any - ? TKey extends keyof T - ? T[TKey] - : never - : never - -export type FlattenTupleKeys = T extends any - ? AllTupleKeys extends infer TKey extends AllTupleKeys - ? TKey extends any - ? TupleAccessor extends infer TAccessor extends string - ? T[TKey] extends infer TValue - ? TValue extends any - ? keyof DeepKeysAndValues - : never - : never - : never - : never - : never +export type DeepKeysAndValuesTupleUnion< + T extends ReadonlyArray, + TPrefix extends string, + TAcc, + TAllKeys extends AllTupleKeys = AllTupleKeys, +> = TAllKeys extends any + ? DeepKeysAndValuesUnion< + T[TAllKeys], + TupleAccessor, + TAcc | Record, T[TAllKeys]> + > : never -export type FlattenTupleValues = T extends any - ? AllObjectKeys extends infer TAllKeys extends AllTupleKeys - ? TAllKeys extends any - ? TupleAccessor extends infer TAccessor extends string - ? T[TAllKeys] extends infer TValue - ? TValue extends any - ? TKey extends keyof DeepKeysAndValues - ? DeepKeysAndValues[TKey] - : never - : never - : never - : never - : never - : never +export type AllObjectKeys = T extends any + ? keyof T & (string | number) : never -export type DeepKeysAndValuesTuple = { - [TKey in AllTupleKeys as TupleAccessor]: GetValue -} & { - [TKey in FlattenTupleKeys]: FlattenTupleValues -} - export type ObjectAccessor< TPrefix extends string, TKey extends string | number, > = TPrefix extends '' ? `${TKey}` : `${TPrefix}.${TKey}` -export type AllObjectKeys = T extends any - ? keyof T & (string | number) - : never - -export type FlattenObjectKeys = T extends any - ? AllObjectKeys extends infer TKey extends AllObjectKeys - ? TKey extends any - ? T[TKey] extends infer TValue - ? TValue extends any - ? keyof DeepKeysAndValues> - : never - : never - : never - : never - : never - -export type FlattenObjectValues = T extends any - ? AllObjectKeys extends infer TAllKeys extends AllObjectKeys - ? TAllKeys extends any - ? ObjectAccessor extends infer TAccessor extends string - ? T[TAllKeys] extends infer TValue - ? TValue extends any - ? TKey extends keyof DeepKeysAndValues - ? DeepKeysAndValues[TKey] - : never - : never - : never - : never - : never - : never +export type DeepKeysAndValuesObjectUnion< + T, + TPrefix extends string, + TAcc, + TAllKeys extends AllObjectKeys = AllObjectKeys, +> = TAllKeys extends any + ? DeepKeysAndValuesUnion< + T[TAllKeys], + ObjectAccessor, + TAcc | Record, T[TAllKeys]> + > : never -export type DeepKeysAndValuesObject = { - [TKey in AllObjectKeys as ObjectAccessor]: GetValue -} & { - [TKey in FlattenObjectKeys]: FlattenObjectValues -} - -export type DeepKeysAndValues = +export type DeepKeysAndValuesUnion< + T, + TPrefix extends string = '', + TAcc = never, +> = IsAny extends true ? T - : T extends string | number | boolean | bigint ? Record : T extends ReadonlyArray - ? number extends T['length'] - ? DeepKeysAndValuesArray - : DeepKeysAndValuesTuple - : T extends object - ? DeepKeysAndValuesObject - : Record + : T extends string | number | boolean | bigint | Date + ? TAcc + : T extends ReadonlyArray + ? number extends T['length'] + ? DeepKeysAndValuesArrayUnion + : DeepKeysAndValuesTupleUnion + : T extends object + ? DeepKeysAndValuesObjectUnion + : TAcc + +export type UnionToIntersection = ( + T extends any ? (param: T) => any : never +) extends (param: infer TI) => any + ? TI + : never + +export type DeepKeysAndValues = UnionToIntersection< + DeepKeysAndValuesUnion +> /** * The keys of an object or array, deeply nested. diff --git a/packages/react-form/src/types.ts b/packages/react-form/src/types.ts index ddc44a182..ad596ed31 100644 --- a/packages/react-form/src/types.ts +++ b/packages/react-form/src/types.ts @@ -3,15 +3,20 @@ import type { DeepValue, FieldApiOptions, FieldAsyncValidateOrFn, + FieldOptions, FieldValidateOrFn, FormAsyncValidateOrFn, FormValidateOrFn, } from '@tanstack/form-core' +export interface FieldOptionsMode { + mode?: 'value' | 'array' +} + /** * The field options. */ -export type UseFieldOptions< +export interface UseFieldOptions< TParentData, TName extends DeepKeys, TData extends DeepValue, @@ -37,26 +42,56 @@ export type UseFieldOptions< TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, TFormOnServer extends undefined | FormAsyncValidateOrFn, TSubmitMeta, -> = FieldApiOptions< +> extends FieldApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TSubmitMeta + >, + FieldOptionsMode {} + +export interface UseFieldOptionsBound< TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TSubmitMeta -> & { - mode?: 'value' | 'array' -} + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, +> extends FieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + >, + FieldOptionsMode {} diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 23845fea8..9fdb87e80 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -11,7 +11,7 @@ import type { FormValidateOrFn, } from '@tanstack/form-core' import type { FunctionComponent, ReactNode } from 'react' -import type { UseFieldOptions } from './types' +import type { UseFieldOptions, UseFieldOptionsBound } from './types' interface ReactFieldApi< TParentData, @@ -227,7 +227,7 @@ export function useField< /** * @param children A render function that takes a field API instance and returns a React element. */ -type FieldComponentProps< +interface FieldComponentProps< TParentData, TName extends DeepKeys, TData extends DeepValue, @@ -254,7 +254,27 @@ type FieldComponentProps< TFormOnServer extends undefined | FormAsyncValidateOrFn, TPatentSubmitMeta, ExtendedApi = {}, -> = { +> extends UseFieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TPatentSubmitMeta + > { children: ( fieldApi: FieldApi< TParentData, @@ -279,27 +299,72 @@ type FieldComponentProps< > & ExtendedApi, ) => ReactNode -} & UseFieldOptions< +} + +interface FieldComponentBoundProps< TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TPatentSubmitMeta -> + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TPatentSubmitMeta, + ExtendedApi = {}, +> extends UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + > { + children: ( + fieldApi: FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TPatentSubmitMeta + > & + ExtendedApi, + ) => ReactNode +} /** * A type alias representing a field component for a specific form data type. @@ -341,30 +406,27 @@ export type FieldComponent< >({ children, ...fieldOptions -}: Omit< - FieldComponentProps< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TPatentSubmitMeta, - ExtendedApi - >, - 'form' +}: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TPatentSubmitMeta, + ExtendedApi >) => ReactNode /** From b0ce7ad0ca27a9854447132a6a779a36c335b6ea Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 21:08:26 +0000 Subject: [PATCH 05/25] ci: apply automated fixes and generate docs --- .../reference/classes/tanstackfield.md | 321 ------------------ .../angular/reference/functions/injectform.md | 46 --- .../reference/functions/injectstore.md | 52 --- docs/framework/angular/reference/index.md | 17 - .../react/reference/functions/field.md | 2 +- .../reference/type-aliases/fieldcomponent.md | 4 +- docs/reference/index.md | 14 +- docs/reference/type-aliases/allobjectkeys.md | 2 +- docs/reference/type-aliases/alltuplekeys.md | 2 +- docs/reference/type-aliases/arrayaccessor.md | 18 + .../type-aliases/constrainliteral.md | 2 +- docs/reference/type-aliases/deepkeys.md | 2 +- .../type-aliases/deepkeysandvalues.md | 8 +- .../type-aliases/deepkeysandvaluesarray.md | 22 -- .../deepkeysandvaluesarrayunion.md | 24 ++ .../type-aliases/deepkeysandvaluesobject.md | 20 -- .../deepkeysandvaluesobjectunion.md | 26 ++ .../type-aliases/deepkeysandvaluestuple.md | 20 -- .../deepkeysandvaluestupleunion.md | 26 ++ .../type-aliases/deepkeysandvaluesunion.md | 22 ++ docs/reference/type-aliases/deepvalue.md | 2 +- .../type-aliases/flattenobjectkeys.md | 20 -- .../type-aliases/flattenobjectvalues.md | 22 -- .../type-aliases/flattentuplekeys.md | 20 -- .../type-aliases/flattentuplevalues.md | 22 -- docs/reference/type-aliases/getvalue.md | 20 -- docs/reference/type-aliases/objectaccessor.md | 2 +- docs/reference/type-aliases/tupleaccessor.md | 2 +- .../type-aliases/uniontointersection.md | 18 + docs/reference/type-aliases/validatename.md | 2 +- 30 files changed, 154 insertions(+), 626 deletions(-) delete mode 100644 docs/framework/angular/reference/classes/tanstackfield.md delete mode 100644 docs/framework/angular/reference/functions/injectform.md delete mode 100644 docs/framework/angular/reference/functions/injectstore.md delete mode 100644 docs/framework/angular/reference/index.md create mode 100644 docs/reference/type-aliases/arrayaccessor.md delete mode 100644 docs/reference/type-aliases/deepkeysandvaluesarray.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluesarrayunion.md delete mode 100644 docs/reference/type-aliases/deepkeysandvaluesobject.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluesobjectunion.md delete mode 100644 docs/reference/type-aliases/deepkeysandvaluestuple.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluestupleunion.md create mode 100644 docs/reference/type-aliases/deepkeysandvaluesunion.md delete mode 100644 docs/reference/type-aliases/flattenobjectkeys.md delete mode 100644 docs/reference/type-aliases/flattenobjectvalues.md delete mode 100644 docs/reference/type-aliases/flattentuplekeys.md delete mode 100644 docs/reference/type-aliases/flattentuplevalues.md delete mode 100644 docs/reference/type-aliases/getvalue.md create mode 100644 docs/reference/type-aliases/uniontointersection.md diff --git a/docs/framework/angular/reference/classes/tanstackfield.md b/docs/framework/angular/reference/classes/tanstackfield.md deleted file mode 100644 index c15d5b235..000000000 --- a/docs/framework/angular/reference/classes/tanstackfield.md +++ /dev/null @@ -1,321 +0,0 @@ ---- -id: TanStackField -title: TanStackField ---- - - - -# Class: TanStackField\ - -Defined in: [tanstack-field.directive.ts:31](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L31) - -## Type Parameters - -• **TParentData** - -• **TName** *extends* `DeepKeys`\<`TParentData`\> - -• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> - -• **TOnMount** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnChange** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnChangeAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnBlur** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnBlurAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnSubmit** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TOnSubmitAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> - -• **TFormOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> - -• **TFormOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> - -• **TFormOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> - -• **TFormOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> - -• **TFormOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> - -• **TFormOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> - -• **TFormOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> - -• **TFormOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> - -• **TSubmitMeta** - -## Implements - -- `OnInit` -- `OnChanges` -- `OnDestroy` -- `FieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> - -## Constructors - -### new TanStackField() - -```ts -new TanStackField(): TanStackField -``` - -#### Returns - -[`TanStackField`](tanstackfield.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TSubmitMeta`\> - -## Properties - -### api - -```ts -api: FieldApi; -``` - -Defined in: [tanstack-field.directive.ts:129](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L129) - -*** - -### asyncAlways? - -```ts -optional asyncAlways: boolean; -``` - -Defined in: [tanstack-field.directive.ts:78](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L78) - -If `true`, always run async validation, even if there are errors emitted during synchronous validation. - -#### Implementation of - -```ts -FieldOptions.asyncAlways -``` - -*** - -### asyncDebounceMs? - -```ts -optional asyncDebounceMs: number; -``` - -Defined in: [tanstack-field.directive.ts:77](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L77) - -The default time to debounce async validation if there is not a more specific debounce time passed. - -#### Implementation of - -```ts -FieldOptions.asyncDebounceMs -``` - -*** - -### defaultMeta? - -```ts -optional defaultMeta: Partial>; -``` - -Defined in: [tanstack-field.directive.ts:106](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L106) - -An optional object with default metadata for the field. - -#### Implementation of - -```ts -FieldOptions.defaultMeta -``` - -*** - -### defaultValue? - -```ts -optional defaultValue: NoInfer; -``` - -Defined in: [tanstack-field.directive.ts:76](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L76) - -An optional default value for the field. - -#### Implementation of - -```ts -FieldOptions.defaultValue -``` - -*** - -### disableErrorFlat? - -```ts -optional disableErrorFlat: boolean; -``` - -Defined in: [tanstack-field.directive.ts:127](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L127) - -Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. - -#### Implementation of - -```ts -FieldOptions.disableErrorFlat -``` - -*** - -### listeners? - -```ts -optional listeners: NoInfer>; -``` - -Defined in: [tanstack-field.directive.ts:105](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L105) - -A list of listeners which attach to the corresponding events - -#### Implementation of - -```ts -FieldOptions.listeners -``` - -*** - -### name - -```ts -name: TName; -``` - -Defined in: [tanstack-field.directive.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L75) - -The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. - -#### Implementation of - -```ts -FieldOptions.name -``` - -*** - -### tanstackField - -```ts -tanstackField: FormApi; -``` - -Defined in: [tanstack-field.directive.ts:79](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L79) - -*** - -### unmount()? - -```ts -optional unmount: () => void; -``` - -Defined in: [tanstack-field.directive.ts:185](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L185) - -#### Returns - -`void` - -*** - -### validators? - -```ts -optional validators: NoInfer>; -``` - -Defined in: [tanstack-field.directive.ts:91](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L91) - -A list of validators to pass to the field - -#### Implementation of - -```ts -FieldOptions.validators -``` - -## Methods - -### ngOnChanges() - -```ts -ngOnChanges(): void -``` - -Defined in: [tanstack-field.directive.ts:197](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L197) - -A callback method that is invoked immediately after the -default change detector has checked data-bound properties -if at least one has changed, and before the view and content -children are checked. - -#### Returns - -`void` - -#### Implementation of - -```ts -OnChanges.ngOnChanges -``` - -*** - -### ngOnDestroy() - -```ts -ngOnDestroy(): void -``` - -Defined in: [tanstack-field.directive.ts:193](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L193) - -A callback method that performs custom clean-up, invoked immediately -before a directive, pipe, or service instance is destroyed. - -#### Returns - -`void` - -#### Implementation of - -```ts -OnDestroy.ngOnDestroy -``` - -*** - -### ngOnInit() - -```ts -ngOnInit(): void -``` - -Defined in: [tanstack-field.directive.ts:187](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L187) - -A callback method that is invoked immediately after the -default change detector has checked the directive's -data-bound properties for the first time, -and before any of the view or content children have been checked. -It is invoked only once when the directive is instantiated. - -#### Returns - -`void` - -#### Implementation of - -```ts -OnInit.ngOnInit -``` diff --git a/docs/framework/angular/reference/functions/injectform.md b/docs/framework/angular/reference/functions/injectform.md deleted file mode 100644 index 08bdeed3c..000000000 --- a/docs/framework/angular/reference/functions/injectform.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -id: injectForm -title: injectForm ---- - - - -# Function: injectForm() - -```ts -function injectForm(opts?): FormApi -``` - -Defined in: [inject-form.ts:9](https://github.com/TanStack/form/blob/main/packages/angular-form/src/inject-form.ts#L9) - -## Type Parameters - -• **TFormData** - -• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TSubmitMeta** - -## Parameters - -### opts? - -`FormOptions`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> - -## Returns - -`FormApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> diff --git a/docs/framework/angular/reference/functions/injectstore.md b/docs/framework/angular/reference/functions/injectstore.md deleted file mode 100644 index fad9e10ed..000000000 --- a/docs/framework/angular/reference/functions/injectstore.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: injectStore -title: injectStore ---- - - - -# Function: injectStore() - -```ts -function injectStore(form, selector?): Signal -``` - -Defined in: [inject-store.ts:9](https://github.com/TanStack/form/blob/main/packages/angular-form/src/inject-store.ts#L9) - -## Type Parameters - -• **TFormData** - -• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> - -• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> - -• **TSubmitMeta** - -• **TSelected** = `NoInfer`\<`FormState`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\>\> - -## Parameters - -### form - -`FormApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> - -### selector? - -(`state`) => `TSelected` - -## Returns - -`Signal`\<`TSelected`\> diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md deleted file mode 100644 index 3110ff697..000000000 --- a/docs/framework/angular/reference/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: "@tanstack/angular-form" -title: "@tanstack/angular-form" ---- - - - -# @tanstack/angular-form - -## Classes - -- [TanStackField](classes/tanstackfield.md) - -## Functions - -- [injectForm](functions/injectform.md) -- [injectStore](functions/injectstore.md) diff --git a/docs/framework/react/reference/functions/field.md b/docs/framework/react/reference/functions/field.md index 2b9147924..f71f1a954 100644 --- a/docs/framework/react/reference/functions/field.md +++ b/docs/framework/react/reference/functions/field.md @@ -11,7 +11,7 @@ title: Field function Field(__namedParameters): ReactNode ``` -Defined in: [packages/react-form/src/useField.tsx:375](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L375) +Defined in: [packages/react-form/src/useField.tsx:437](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L437) A function component that takes field options and a render function as children and returns a React component. diff --git a/docs/framework/react/reference/type-aliases/fieldcomponent.md b/docs/framework/react/reference/type-aliases/fieldcomponent.md index 940f32542..4d39461e3 100644 --- a/docs/framework/react/reference/type-aliases/fieldcomponent.md +++ b/docs/framework/react/reference/type-aliases/fieldcomponent.md @@ -14,7 +14,7 @@ type FieldComponent ReactNode; ``` -Defined in: [packages/react-form/src/useField.tsx:307](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L307) +Defined in: [packages/react-form/src/useField.tsx:372](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L372) A type alias representing a field component for a specific form data type. @@ -69,7 +69,7 @@ A type alias representing a field component for a specific form data type. ...fieldOptions \} -`Omit`\<`FieldComponentProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TPatentSubmitMeta`, `ExtendedApi`\>, `"form"`\> +`FieldComponentBoundProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TPatentSubmitMeta`, `ExtendedApi`\> ## Returns diff --git a/docs/reference/index.md b/docs/reference/index.md index 170d879bf..a7bd3551f 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -33,13 +33,15 @@ title: "@tanstack/form-core" - [AnyFieldMetaDerived](type-aliases/anyfieldmetaderived.md) - [AnyFormApi](type-aliases/anyformapi.md) - [AnyFormState](type-aliases/anyformstate.md) +- [ArrayAccessor](type-aliases/arrayaccessor.md) - [BaseFormState](type-aliases/baseformstate.md) - [ConstrainLiteral](type-aliases/constrainliteral.md) - [DeepKeys](type-aliases/deepkeys.md) - [DeepKeysAndValues](type-aliases/deepkeysandvalues.md) -- [DeepKeysAndValuesArray](type-aliases/deepkeysandvaluesarray.md) -- [DeepKeysAndValuesObject](type-aliases/deepkeysandvaluesobject.md) -- [DeepKeysAndValuesTuple](type-aliases/deepkeysandvaluestuple.md) +- [DeepKeysAndValuesArrayUnion](type-aliases/deepkeysandvaluesarrayunion.md) +- [DeepKeysAndValuesObjectUnion](type-aliases/deepkeysandvaluesobjectunion.md) +- [DeepKeysAndValuesTupleUnion](type-aliases/deepkeysandvaluestupleunion.md) +- [DeepKeysAndValuesUnion](type-aliases/deepkeysandvaluesunion.md) - [DeepValue](type-aliases/deepvalue.md) - [DerivedFormState](type-aliases/derivedformstate.md) - [FieldInfo](type-aliases/fieldinfo.md) @@ -47,18 +49,14 @@ title: "@tanstack/form-core" - [FieldMetaBase](type-aliases/fieldmetabase.md) - [FieldMetaDerived](type-aliases/fieldmetaderived.md) - [FieldState](type-aliases/fieldstate.md) -- [FlattenObjectKeys](type-aliases/flattenobjectkeys.md) -- [FlattenObjectValues](type-aliases/flattenobjectvalues.md) -- [FlattenTupleKeys](type-aliases/flattentuplekeys.md) -- [FlattenTupleValues](type-aliases/flattentuplevalues.md) - [FormValidateFn](type-aliases/formvalidatefn.md) - [FormValidationError](type-aliases/formvalidationerror.md) - [FormValidator](type-aliases/formvalidator.md) -- [GetValue](type-aliases/getvalue.md) - [ObjectAccessor](type-aliases/objectaccessor.md) - [StandardSchemaV1](type-aliases/standardschemav1.md) - [TStandardSchemaValidatorValue](type-aliases/tstandardschemavalidatorvalue.md) - [TupleAccessor](type-aliases/tupleaccessor.md) +- [UnionToIntersection](type-aliases/uniontointersection.md) - [UnwrapFieldAsyncValidateOrFn](type-aliases/unwrapfieldasyncvalidateorfn.md) - [UnwrapFieldValidateOrFn](type-aliases/unwrapfieldvalidateorfn.md) - [UnwrapFormAsyncValidateOrFn](type-aliases/unwrapformasyncvalidateorfn.md) diff --git a/docs/reference/type-aliases/allobjectkeys.md b/docs/reference/type-aliases/allobjectkeys.md index 715981eee..fa8ba86a1 100644 --- a/docs/reference/type-aliases/allobjectkeys.md +++ b/docs/reference/type-aliases/allobjectkeys.md @@ -11,7 +11,7 @@ title: AllObjectKeys type AllObjectKeys = T extends any ? keyof T & string | number : never; ``` -Defined in: [packages/form-core/src/util-types.ts:87](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L87) +Defined in: [packages/form-core/src/util-types.ts:58](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L58) ## Type Parameters diff --git a/docs/reference/type-aliases/alltuplekeys.md b/docs/reference/type-aliases/alltuplekeys.md index b05354e08..5420d9fbf 100644 --- a/docs/reference/type-aliases/alltuplekeys.md +++ b/docs/reference/type-aliases/alltuplekeys.md @@ -11,7 +11,7 @@ title: AllTupleKeys type AllTupleKeys = T extends any ? keyof T & `${number}` : never; ``` -Defined in: [packages/form-core/src/util-types.ts:38](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L38) +Defined in: [packages/form-core/src/util-types.ts:43](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L43) ## Type Parameters diff --git a/docs/reference/type-aliases/arrayaccessor.md b/docs/reference/type-aliases/arrayaccessor.md new file mode 100644 index 000000000..9258d7209 --- /dev/null +++ b/docs/reference/type-aliases/arrayaccessor.md @@ -0,0 +1,18 @@ +--- +id: ArrayAccessor +title: ArrayAccessor +--- + + + +# Type Alias: ArrayAccessor\ + +```ts +type ArrayAccessor = `${TPrefix}[${number}]` | `${TPrefix}[number]`; +``` + +Defined in: [packages/form-core/src/util-types.ts:24](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L24) + +## Type Parameters + +• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/constrainliteral.md b/docs/reference/type-aliases/constrainliteral.md index a24df8375..ccc700f03 100644 --- a/docs/reference/type-aliases/constrainliteral.md +++ b/docs/reference/type-aliases/constrainliteral.md @@ -11,7 +11,7 @@ title: ConstrainLiteral type ConstrainLiteral = T & TConstraint | TDefault; ``` -Defined in: [packages/form-core/src/util-types.ts:150](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L150) +Defined in: [packages/form-core/src/util-types.ts:119](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L119) ## Type Parameters diff --git a/docs/reference/type-aliases/deepkeys.md b/docs/reference/type-aliases/deepkeys.md index 468e7ce51..fd15d86d5 100644 --- a/docs/reference/type-aliases/deepkeys.md +++ b/docs/reference/type-aliases/deepkeys.md @@ -11,7 +11,7 @@ title: DeepKeys type DeepKeys = unknown extends T ? string : keyof DeepKeysAndValues & string; ``` -Defined in: [packages/form-core/src/util-types.ts:141](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L141) +Defined in: [packages/form-core/src/util-types.ts:110](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L110) The keys of an object or array, deeply nested. diff --git a/docs/reference/type-aliases/deepkeysandvalues.md b/docs/reference/type-aliases/deepkeysandvalues.md index 3bca4810f..495cff86d 100644 --- a/docs/reference/type-aliases/deepkeysandvalues.md +++ b/docs/reference/type-aliases/deepkeysandvalues.md @@ -5,16 +5,14 @@ title: DeepKeysAndValues -# Type Alias: DeepKeysAndValues\ +# Type Alias: DeepKeysAndValues\ ```ts -type DeepKeysAndValues = IsAny extends true ? T : T extends string | number | boolean | bigint ? Record : T extends ReadonlyArray ? number extends T["length"] ? DeepKeysAndValuesArray : DeepKeysAndValuesTuple : T extends object ? DeepKeysAndValuesObject : Record; +type DeepKeysAndValues = UnionToIntersection>; ``` -Defined in: [packages/form-core/src/util-types.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L125) +Defined in: [packages/form-core/src/util-types.ts:103](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L103) ## Type Parameters • **T** - -• **TPrefix** *extends* `string` = `""` diff --git a/docs/reference/type-aliases/deepkeysandvaluesarray.md b/docs/reference/type-aliases/deepkeysandvaluesarray.md deleted file mode 100644 index 72fd1c3cb..000000000 --- a/docs/reference/type-aliases/deepkeysandvaluesarray.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: DeepKeysAndValuesArray -title: DeepKeysAndValuesArray ---- - - - -# Type Alias: DeepKeysAndValuesArray\ - -```ts -type DeepKeysAndValuesArray = { [TKey in TNextPrefix]: T[number] } & DeepKeysAndValues; -``` - -Defined in: [packages/form-core/src/util-types.ts:24](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L24) - -## Type Parameters - -• **T** *extends* `ReadonlyArray`\<`any`\> - -• **TPrefix** *extends* `string` - -• **TNextPrefix** *extends* `string` = `` `${TPrefix}[${number}]` `` \| `` `${TPrefix}[number]` `` diff --git a/docs/reference/type-aliases/deepkeysandvaluesarrayunion.md b/docs/reference/type-aliases/deepkeysandvaluesarrayunion.md new file mode 100644 index 000000000..55f6968f5 --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluesarrayunion.md @@ -0,0 +1,24 @@ +--- +id: DeepKeysAndValuesArrayUnion +title: DeepKeysAndValuesArrayUnion +--- + + + +# Type Alias: DeepKeysAndValuesArrayUnion\ + +```ts +type DeepKeysAndValuesArrayUnion = DeepKeysAndValuesUnion, + | TAcc +| Record, T[number]>>; +``` + +Defined in: [packages/form-core/src/util-types.ts:28](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L28) + +## Type Parameters + +• **T** *extends* `ReadonlyArray`\<`any`\> + +• **TPrefix** *extends* `string` + +• **TAcc** diff --git a/docs/reference/type-aliases/deepkeysandvaluesobject.md b/docs/reference/type-aliases/deepkeysandvaluesobject.md deleted file mode 100644 index 43c711dcb..000000000 --- a/docs/reference/type-aliases/deepkeysandvaluesobject.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: DeepKeysAndValuesObject -title: DeepKeysAndValuesObject ---- - - - -# Type Alias: DeepKeysAndValuesObject\ - -```ts -type DeepKeysAndValuesObject = { [TKey in AllObjectKeys as ObjectAccessor]: GetValue } & { [TKey in FlattenObjectKeys]: FlattenObjectValues }; -``` - -Defined in: [packages/form-core/src/util-types.ts:119](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L119) - -## Type Parameters - -• **T** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/deepkeysandvaluesobjectunion.md b/docs/reference/type-aliases/deepkeysandvaluesobjectunion.md new file mode 100644 index 000000000..f541e57ec --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluesobjectunion.md @@ -0,0 +1,26 @@ +--- +id: DeepKeysAndValuesObjectUnion +title: DeepKeysAndValuesObjectUnion +--- + + + +# Type Alias: DeepKeysAndValuesObjectUnion\ + +```ts +type DeepKeysAndValuesObjectUnion = TAllKeys extends any ? DeepKeysAndValuesUnion, + | TAcc + | Record, T[TAllKeys]>> : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:67](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L67) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` + +• **TAcc** + +• **TAllKeys** *extends* [`AllObjectKeys`](allobjectkeys.md)\<`T`\> = [`AllObjectKeys`](allobjectkeys.md)\<`T`\> diff --git a/docs/reference/type-aliases/deepkeysandvaluestuple.md b/docs/reference/type-aliases/deepkeysandvaluestuple.md deleted file mode 100644 index e1aa8b501..000000000 --- a/docs/reference/type-aliases/deepkeysandvaluestuple.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: DeepKeysAndValuesTuple -title: DeepKeysAndValuesTuple ---- - - - -# Type Alias: DeepKeysAndValuesTuple\ - -```ts -type DeepKeysAndValuesTuple = { [TKey in AllTupleKeys as TupleAccessor]: GetValue } & { [TKey in FlattenTupleKeys]: FlattenTupleValues }; -``` - -Defined in: [packages/form-core/src/util-types.ts:76](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L76) - -## Type Parameters - -• **T** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/deepkeysandvaluestupleunion.md b/docs/reference/type-aliases/deepkeysandvaluestupleunion.md new file mode 100644 index 000000000..328c1d022 --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluestupleunion.md @@ -0,0 +1,26 @@ +--- +id: DeepKeysAndValuesTupleUnion +title: DeepKeysAndValuesTupleUnion +--- + + + +# Type Alias: DeepKeysAndValuesTupleUnion\ + +```ts +type DeepKeysAndValuesTupleUnion = TAllKeys extends any ? DeepKeysAndValuesUnion, + | TAcc + | Record, T[TAllKeys]>> : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:45](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L45) + +## Type Parameters + +• **T** *extends* `ReadonlyArray`\<`any`\> + +• **TPrefix** *extends* `string` + +• **TAcc** + +• **TAllKeys** *extends* [`AllTupleKeys`](alltuplekeys.md)\<`T`\> = [`AllTupleKeys`](alltuplekeys.md)\<`T`\> diff --git a/docs/reference/type-aliases/deepkeysandvaluesunion.md b/docs/reference/type-aliases/deepkeysandvaluesunion.md new file mode 100644 index 000000000..4b13af303 --- /dev/null +++ b/docs/reference/type-aliases/deepkeysandvaluesunion.md @@ -0,0 +1,22 @@ +--- +id: DeepKeysAndValuesUnion +title: DeepKeysAndValuesUnion +--- + + + +# Type Alias: DeepKeysAndValuesUnion\ + +```ts +type DeepKeysAndValuesUnion = IsAny extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray ? number extends T["length"] ? DeepKeysAndValuesArrayUnion : DeepKeysAndValuesTupleUnion : T extends object ? DeepKeysAndValuesObjectUnion : TAcc; +``` + +Defined in: [packages/form-core/src/util-types.ts:80](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L80) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` = `""` + +• **TAcc** = `never` diff --git a/docs/reference/type-aliases/deepvalue.md b/docs/reference/type-aliases/deepvalue.md index 09bc229b7..a64989ffb 100644 --- a/docs/reference/type-aliases/deepvalue.md +++ b/docs/reference/type-aliases/deepvalue.md @@ -11,7 +11,7 @@ title: DeepValue type DeepValue = DeepKeysAndValues[TAccessor & keyof DeepKeysAndValues]; ``` -Defined in: [packages/form-core/src/util-types.ts:157](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L157) +Defined in: [packages/form-core/src/util-types.ts:126](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L126) Infer the type of a deeply nested property within an object or an array. diff --git a/docs/reference/type-aliases/flattenobjectkeys.md b/docs/reference/type-aliases/flattenobjectkeys.md deleted file mode 100644 index d2293d93b..000000000 --- a/docs/reference/type-aliases/flattenobjectkeys.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: FlattenObjectKeys -title: FlattenObjectKeys ---- - - - -# Type Alias: FlattenObjectKeys\ - -```ts -type FlattenObjectKeys = T extends any ? AllObjectKeys extends infer TKey ? TKey extends any ? T[TKey] extends infer TValue ? TValue extends any ? keyof DeepKeysAndValues> : never : never : never : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:91](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L91) - -## Type Parameters - -• **T** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattenobjectvalues.md b/docs/reference/type-aliases/flattenobjectvalues.md deleted file mode 100644 index cb2ecbb20..000000000 --- a/docs/reference/type-aliases/flattenobjectvalues.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: FlattenObjectValues -title: FlattenObjectValues ---- - - - -# Type Alias: FlattenObjectValues\ - -```ts -type FlattenObjectValues = T extends any ? AllObjectKeys extends infer TAllKeys ? TAllKeys extends any ? ObjectAccessor extends infer TAccessor ? T[TAllKeys] extends infer TValue ? TValue extends any ? TKey extends keyof DeepKeysAndValues ? DeepKeysAndValues[TKey] : never : never : never : never : never : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:103](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L103) - -## Type Parameters - -• **T** - -• **TKey** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattentuplekeys.md b/docs/reference/type-aliases/flattentuplekeys.md deleted file mode 100644 index ed96aade0..000000000 --- a/docs/reference/type-aliases/flattentuplekeys.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: FlattenTupleKeys -title: FlattenTupleKeys ---- - - - -# Type Alias: FlattenTupleKeys\ - -```ts -type FlattenTupleKeys = T extends any ? AllTupleKeys extends infer TKey ? TKey extends any ? TupleAccessor extends infer TAccessor ? T[TKey] extends infer TValue ? TValue extends any ? keyof DeepKeysAndValues : never : never : never : never : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:46](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L46) - -## Type Parameters - -• **T** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/flattentuplevalues.md b/docs/reference/type-aliases/flattentuplevalues.md deleted file mode 100644 index b26a70d45..000000000 --- a/docs/reference/type-aliases/flattentuplevalues.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: FlattenTupleValues -title: FlattenTupleValues ---- - - - -# Type Alias: FlattenTupleValues\ - -```ts -type FlattenTupleValues = T extends any ? AllObjectKeys extends infer TAllKeys ? TAllKeys extends any ? TupleAccessor extends infer TAccessor ? T[TAllKeys] extends infer TValue ? TValue extends any ? TKey extends keyof DeepKeysAndValues ? DeepKeysAndValues[TKey] : never : never : never : never : never : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:60](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L60) - -## Type Parameters - -• **T** - -• **TKey** - -• **TPrefix** *extends* `string` diff --git a/docs/reference/type-aliases/getvalue.md b/docs/reference/type-aliases/getvalue.md deleted file mode 100644 index 3605a3ec8..000000000 --- a/docs/reference/type-aliases/getvalue.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: GetValue -title: GetValue ---- - - - -# Type Alias: GetValue\ - -```ts -type GetValue = T extends any ? TKey extends keyof T ? T[TKey] : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:40](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L40) - -## Type Parameters - -• **T** - -• **TKey** diff --git a/docs/reference/type-aliases/objectaccessor.md b/docs/reference/type-aliases/objectaccessor.md index bb84e23f4..1bea3a712 100644 --- a/docs/reference/type-aliases/objectaccessor.md +++ b/docs/reference/type-aliases/objectaccessor.md @@ -11,7 +11,7 @@ title: ObjectAccessor type ObjectAccessor = TPrefix extends "" ? `${TKey}` : `${TPrefix}.${TKey}`; ``` -Defined in: [packages/form-core/src/util-types.ts:82](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L82) +Defined in: [packages/form-core/src/util-types.ts:62](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L62) ## Type Parameters diff --git a/docs/reference/type-aliases/tupleaccessor.md b/docs/reference/type-aliases/tupleaccessor.md index b1c5ec3d4..3c81c2f36 100644 --- a/docs/reference/type-aliases/tupleaccessor.md +++ b/docs/reference/type-aliases/tupleaccessor.md @@ -11,7 +11,7 @@ title: TupleAccessor type TupleAccessor = `${TPrefix}[${TKey & string}]`; ``` -Defined in: [packages/form-core/src/util-types.ts:33](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L33) +Defined in: [packages/form-core/src/util-types.ts:38](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L38) ## Type Parameters diff --git a/docs/reference/type-aliases/uniontointersection.md b/docs/reference/type-aliases/uniontointersection.md new file mode 100644 index 000000000..06393c5fa --- /dev/null +++ b/docs/reference/type-aliases/uniontointersection.md @@ -0,0 +1,18 @@ +--- +id: UnionToIntersection +title: UnionToIntersection +--- + + + +# Type Alias: UnionToIntersection\ + +```ts +type UnionToIntersection = T extends any ? (param) => any : never extends (param) => any ? TI : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:97](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L97) + +## Type Parameters + +• **T** diff --git a/docs/reference/type-aliases/validatename.md b/docs/reference/type-aliases/validatename.md index 20868c81d..81836fee5 100644 --- a/docs/reference/type-aliases/validatename.md +++ b/docs/reference/type-aliases/validatename.md @@ -11,7 +11,7 @@ title: ValidateName type ValidateName = ConstrainLiteral>; ``` -Defined in: [packages/form-core/src/util-types.ts:145](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L145) +Defined in: [packages/form-core/src/util-types.ts:114](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L114) ## Type Parameters From 4e62a3bba2c2151788025e13c95e3be19ea7b9c6 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 22:56:46 +0100 Subject: [PATCH 06/25] fix: revert some variance annotations for later --- packages/form-core/src/types.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/form-core/src/types.ts b/packages/form-core/src/types.ts index 340af5ae9..7dacf8b42 100644 --- a/packages/form-core/src/types.ts +++ b/packages/form-core/src/types.ts @@ -19,14 +19,14 @@ export type ValidationErrorMapKeys = `on${Capitalize}` * @private */ export type ValidationErrorMap< - in out TOnMountReturn = unknown, - in out TOnChangeReturn = unknown, - in out TOnChangeAsyncReturn = unknown, - in out TOnBlurReturn = unknown, - in out TOnBlurAsyncReturn = unknown, - in out TOnSubmitReturn = unknown, - in out TOnSubmitAsyncReturn = unknown, - in out TOnServerReturn = unknown, + TOnMountReturn = unknown, + TOnChangeReturn = unknown, + TOnChangeAsyncReturn = unknown, + TOnBlurReturn = unknown, + TOnBlurAsyncReturn = unknown, + TOnSubmitReturn = unknown, + TOnSubmitAsyncReturn = unknown, + TOnServerReturn = unknown, > = { onMount?: TOnMountReturn onChange?: TOnChangeReturn | TOnChangeAsyncReturn From ee2afcc4500fd4ae8236797f48bac2732e22acc4 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 21:59:12 +0000 Subject: [PATCH 07/25] ci: apply automated fixes and generate docs --- .../reference/classes/tanstackfield.md | 321 ++++++++++++++++++ .../angular/reference/functions/injectform.md | 46 +++ .../reference/functions/injectstore.md | 52 +++ docs/framework/angular/reference/index.md | 17 + 4 files changed, 436 insertions(+) create mode 100644 docs/framework/angular/reference/classes/tanstackfield.md create mode 100644 docs/framework/angular/reference/functions/injectform.md create mode 100644 docs/framework/angular/reference/functions/injectstore.md create mode 100644 docs/framework/angular/reference/index.md diff --git a/docs/framework/angular/reference/classes/tanstackfield.md b/docs/framework/angular/reference/classes/tanstackfield.md new file mode 100644 index 000000000..c15d5b235 --- /dev/null +++ b/docs/framework/angular/reference/classes/tanstackfield.md @@ -0,0 +1,321 @@ +--- +id: TanStackField +title: TanStackField +--- + + + +# Class: TanStackField\ + +Defined in: [tanstack-field.directive.ts:31](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L31) + +## Type Parameters + +• **TParentData** + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> + +• **TOnMount** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnChange** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnChangeAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnBlur** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnBlurAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnSubmit** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnSubmitAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TFormOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +• **TFormOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +• **TFormOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +• **TFormOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +• **TFormOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +• **TFormOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TParentData`\> + +• **TFormOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +• **TFormOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TParentData`\> + +• **TSubmitMeta** + +## Implements + +- `OnInit` +- `OnChanges` +- `OnDestroy` +- `FieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> + +## Constructors + +### new TanStackField() + +```ts +new TanStackField(): TanStackField +``` + +#### Returns + +[`TanStackField`](tanstackfield.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TSubmitMeta`\> + +## Properties + +### api + +```ts +api: FieldApi; +``` + +Defined in: [tanstack-field.directive.ts:129](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L129) + +*** + +### asyncAlways? + +```ts +optional asyncAlways: boolean; +``` + +Defined in: [tanstack-field.directive.ts:78](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L78) + +If `true`, always run async validation, even if there are errors emitted during synchronous validation. + +#### Implementation of + +```ts +FieldOptions.asyncAlways +``` + +*** + +### asyncDebounceMs? + +```ts +optional asyncDebounceMs: number; +``` + +Defined in: [tanstack-field.directive.ts:77](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L77) + +The default time to debounce async validation if there is not a more specific debounce time passed. + +#### Implementation of + +```ts +FieldOptions.asyncDebounceMs +``` + +*** + +### defaultMeta? + +```ts +optional defaultMeta: Partial>; +``` + +Defined in: [tanstack-field.directive.ts:106](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L106) + +An optional object with default metadata for the field. + +#### Implementation of + +```ts +FieldOptions.defaultMeta +``` + +*** + +### defaultValue? + +```ts +optional defaultValue: NoInfer; +``` + +Defined in: [tanstack-field.directive.ts:76](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L76) + +An optional default value for the field. + +#### Implementation of + +```ts +FieldOptions.defaultValue +``` + +*** + +### disableErrorFlat? + +```ts +optional disableErrorFlat: boolean; +``` + +Defined in: [tanstack-field.directive.ts:127](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L127) + +Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. + +#### Implementation of + +```ts +FieldOptions.disableErrorFlat +``` + +*** + +### listeners? + +```ts +optional listeners: NoInfer>; +``` + +Defined in: [tanstack-field.directive.ts:105](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L105) + +A list of listeners which attach to the corresponding events + +#### Implementation of + +```ts +FieldOptions.listeners +``` + +*** + +### name + +```ts +name: TName; +``` + +Defined in: [tanstack-field.directive.ts:75](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L75) + +The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. + +#### Implementation of + +```ts +FieldOptions.name +``` + +*** + +### tanstackField + +```ts +tanstackField: FormApi; +``` + +Defined in: [tanstack-field.directive.ts:79](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L79) + +*** + +### unmount()? + +```ts +optional unmount: () => void; +``` + +Defined in: [tanstack-field.directive.ts:185](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L185) + +#### Returns + +`void` + +*** + +### validators? + +```ts +optional validators: NoInfer>; +``` + +Defined in: [tanstack-field.directive.ts:91](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L91) + +A list of validators to pass to the field + +#### Implementation of + +```ts +FieldOptions.validators +``` + +## Methods + +### ngOnChanges() + +```ts +ngOnChanges(): void +``` + +Defined in: [tanstack-field.directive.ts:197](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L197) + +A callback method that is invoked immediately after the +default change detector has checked data-bound properties +if at least one has changed, and before the view and content +children are checked. + +#### Returns + +`void` + +#### Implementation of + +```ts +OnChanges.ngOnChanges +``` + +*** + +### ngOnDestroy() + +```ts +ngOnDestroy(): void +``` + +Defined in: [tanstack-field.directive.ts:193](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L193) + +A callback method that performs custom clean-up, invoked immediately +before a directive, pipe, or service instance is destroyed. + +#### Returns + +`void` + +#### Implementation of + +```ts +OnDestroy.ngOnDestroy +``` + +*** + +### ngOnInit() + +```ts +ngOnInit(): void +``` + +Defined in: [tanstack-field.directive.ts:187](https://github.com/TanStack/form/blob/main/packages/angular-form/src/tanstack-field.directive.ts#L187) + +A callback method that is invoked immediately after the +default change detector has checked the directive's +data-bound properties for the first time, +and before any of the view or content children have been checked. +It is invoked only once when the directive is instantiated. + +#### Returns + +`void` + +#### Implementation of + +```ts +OnInit.ngOnInit +``` diff --git a/docs/framework/angular/reference/functions/injectform.md b/docs/framework/angular/reference/functions/injectform.md new file mode 100644 index 000000000..08bdeed3c --- /dev/null +++ b/docs/framework/angular/reference/functions/injectform.md @@ -0,0 +1,46 @@ +--- +id: injectForm +title: injectForm +--- + + + +# Function: injectForm() + +```ts +function injectForm(opts?): FormApi +``` + +Defined in: [inject-form.ts:9](https://github.com/TanStack/form/blob/main/packages/angular-form/src/inject-form.ts#L9) + +## Type Parameters + +• **TFormData** + +• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TSubmitMeta** + +## Parameters + +### opts? + +`FormOptions`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> + +## Returns + +`FormApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> diff --git a/docs/framework/angular/reference/functions/injectstore.md b/docs/framework/angular/reference/functions/injectstore.md new file mode 100644 index 000000000..fad9e10ed --- /dev/null +++ b/docs/framework/angular/reference/functions/injectstore.md @@ -0,0 +1,52 @@ +--- +id: injectStore +title: injectStore +--- + + + +# Function: injectStore() + +```ts +function injectStore(form, selector?): Signal +``` + +Defined in: [inject-store.ts:9](https://github.com/TanStack/form/blob/main/packages/angular-form/src/inject-store.ts#L9) + +## Type Parameters + +• **TFormData** + +• **TOnMount** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChange** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnChangeAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnBlur** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnBlurAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnSubmit** *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\> + +• **TOnSubmitAsync** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TOnServer** *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\> + +• **TSubmitMeta** + +• **TSelected** = `NoInfer`\<`FormState`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`\>\> + +## Parameters + +### form + +`FormApi`\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnServer`, `TSubmitMeta`\> + +### selector? + +(`state`) => `TSelected` + +## Returns + +`Signal`\<`TSelected`\> diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md new file mode 100644 index 000000000..3110ff697 --- /dev/null +++ b/docs/framework/angular/reference/index.md @@ -0,0 +1,17 @@ +--- +id: "@tanstack/angular-form" +title: "@tanstack/angular-form" +--- + + + +# @tanstack/angular-form + +## Classes + +- [TanStackField](classes/tanstackfield.md) + +## Functions + +- [injectForm](functions/injectform.md) +- [injectStore](functions/injectstore.md) From f3eddfe29a545900b350203a3d25bf5c0fb87f50 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 23:07:19 +0100 Subject: [PATCH 08/25] chore: fix knip --- packages/react-form/src/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-form/src/types.ts b/packages/react-form/src/types.ts index ad596ed31..1bb935946 100644 --- a/packages/react-form/src/types.ts +++ b/packages/react-form/src/types.ts @@ -9,7 +9,7 @@ import type { FormValidateOrFn, } from '@tanstack/form-core' -export interface FieldOptionsMode { +interface FieldOptionsMode { mode?: 'value' | 'array' } From dab305e366fdb1ae1274d0c308db2a1f3b9cdc71 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 23:19:46 +0100 Subject: [PATCH 09/25] chore: remove omit --- packages/react-form/src/useField.tsx | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 9fdb87e80..67af607ca 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -75,8 +75,8 @@ export type UseField< | undefined | FieldAsyncValidateOrFn, >( - opts: Omit< - UseFieldOptions< + opts: + UseFieldOptionsBound< TParentData, TName, TData, @@ -86,19 +86,8 @@ export type UseField< TOnBlur, TOnBlurAsync, TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TPatentSubmitMeta - >, - 'form' - >, + TOnSubmitAsync + > ) => FieldApi< TParentData, TName, From 928b04c099d137ba3d3cee0e60ddcace1794cfc4 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:21:18 +0000 Subject: [PATCH 10/25] ci: apply automated fixes and generate docs --- .../react/reference/functions/field.md | 2 +- .../react/reference/functions/usefield.md | 2 +- .../reference/type-aliases/fieldcomponent.md | 2 +- .../react/reference/type-aliases/usefield.md | 2 +- packages/react-form/src/useField.tsx | 25 +++++++++---------- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/framework/react/reference/functions/field.md b/docs/framework/react/reference/functions/field.md index f71f1a954..10f67f55a 100644 --- a/docs/framework/react/reference/functions/field.md +++ b/docs/framework/react/reference/functions/field.md @@ -11,7 +11,7 @@ title: Field function Field(__namedParameters): ReactNode ``` -Defined in: [packages/react-form/src/useField.tsx:437](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L437) +Defined in: [packages/react-form/src/useField.tsx:425](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L425) A function component that takes field options and a render function as children and returns a React component. diff --git a/docs/framework/react/reference/functions/usefield.md b/docs/framework/react/reference/functions/usefield.md index b7aaf8469..7d26acf7d 100644 --- a/docs/framework/react/reference/functions/usefield.md +++ b/docs/framework/react/reference/functions/usefield.md @@ -11,7 +11,7 @@ title: useField function useField(opts): FieldApi & ReactFieldApi ``` -Defined in: [packages/react-form/src/useField.tsx:130](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L130) +Defined in: [packages/react-form/src/useField.tsx:118](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L118) A hook for managing a field in a form. diff --git a/docs/framework/react/reference/type-aliases/fieldcomponent.md b/docs/framework/react/reference/type-aliases/fieldcomponent.md index 4d39461e3..9e29a8f55 100644 --- a/docs/framework/react/reference/type-aliases/fieldcomponent.md +++ b/docs/framework/react/reference/type-aliases/fieldcomponent.md @@ -14,7 +14,7 @@ type FieldComponent ReactNode; ``` -Defined in: [packages/react-form/src/useField.tsx:372](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L372) +Defined in: [packages/react-form/src/useField.tsx:360](https://github.com/TanStack/form/blob/main/packages/react-form/src/useField.tsx#L360) A type alias representing a field component for a specific form data type. diff --git a/docs/framework/react/reference/type-aliases/usefield.md b/docs/framework/react/reference/type-aliases/usefield.md index 3d3226bab..aaebb1fe2 100644 --- a/docs/framework/react/reference/type-aliases/usefield.md +++ b/docs/framework/react/reference/type-aliases/usefield.md @@ -63,7 +63,7 @@ A function that takes an optional object with a `name` property and field option ### opts -`Omit`\<`UseFieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TPatentSubmitMeta`\>, `"form"`\> +`UseFieldOptionsBound`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> ## Returns diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 67af607ca..e3e35e977 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -75,19 +75,18 @@ export type UseField< | undefined | FieldAsyncValidateOrFn, >( - opts: - UseFieldOptionsBound< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync - > + opts: UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + >, ) => FieldApi< TParentData, TName, From f04a5b6a692be999035432640f9aadcae8b3449d Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 23:37:12 +0100 Subject: [PATCH 11/25] perf(solid-form): apply interface performance improvments to solid --- packages/react-form/src/useField.tsx | 25 ++-- packages/solid-form/src/createField.tsx | 181 +++++++++++++----------- packages/solid-form/src/types.ts | 81 ++++++++--- 3 files changed, 171 insertions(+), 116 deletions(-) diff --git a/packages/react-form/src/useField.tsx b/packages/react-form/src/useField.tsx index 67af607ca..e3e35e977 100644 --- a/packages/react-form/src/useField.tsx +++ b/packages/react-form/src/useField.tsx @@ -75,19 +75,18 @@ export type UseField< | undefined | FieldAsyncValidateOrFn, >( - opts: - UseFieldOptionsBound< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync - > + opts: UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + >, ) => FieldApi< TParentData, TName, diff --git a/packages/solid-form/src/createField.tsx b/packages/solid-form/src/createField.tsx index 7c57e2738..665f72510 100644 --- a/packages/solid-form/src/createField.tsx +++ b/packages/solid-form/src/createField.tsx @@ -18,7 +18,7 @@ import type { } from '@tanstack/form-core' import type { JSXElement } from 'solid-js' -import type { CreateFieldOptions } from './types' +import type { CreateFieldOptions, CreateFieldOptionsBound } from './types' interface SolidFieldApi< TParentData, @@ -73,31 +73,18 @@ export type CreateField< TOnSubmitAsync extends | undefined | FieldAsyncValidateOrFn, - TSubmitMeta, >( - opts: () => { name: Narrow } & Omit< - CreateFieldOptions< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TSubmitMeta - >, - 'form' + opts: () => { name: Narrow } & CreateFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync >, ) => () => FieldApi< TParentData, @@ -347,7 +334,7 @@ export function createField< >(extendedApi as never) } -type FieldComponentProps< +interface FieldComponentBoundProps< TParentData, TName extends DeepKeys, TData extends DeepValue, @@ -373,7 +360,18 @@ type FieldComponentProps< TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, TFormOnServer extends undefined | FormAsyncValidateOrFn, TParentSubmitMeta, -> = { +> extends CreateFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + > { children: ( fieldApi: () => FieldApi< TParentData, @@ -397,30 +395,7 @@ type FieldComponentProps< TParentSubmitMeta >, ) => JSXElement -} & Omit< - CreateFieldOptions< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TParentSubmitMeta - >, - 'form' -> +} export type FieldComponent< TParentData, @@ -452,8 +427,8 @@ export type FieldComponent< >({ children, ...fieldOptions -}: Omit< - FieldComponentProps< +}: + FieldComponentBoundProps< TParentData, TName, TData, @@ -473,10 +448,80 @@ export type FieldComponent< TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta - >, - 'form' >) => JSXElement +interface FieldComponentProps< +TParentData, +TName extends DeepKeys, +TData extends DeepValue, +TOnMount extends undefined | FieldValidateOrFn, +TOnChange extends undefined | FieldValidateOrFn, +TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, +TOnBlur extends undefined | FieldValidateOrFn, +TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, +TOnSubmit extends undefined | FieldValidateOrFn, +TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, +TFormOnMount extends undefined | FormValidateOrFn, +TFormOnChange extends undefined | FormValidateOrFn, +TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, +TFormOnBlur extends undefined | FormValidateOrFn, +TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, +TFormOnSubmit extends undefined | FormValidateOrFn, +TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, +TFormOnServer extends undefined | FormAsyncValidateOrFn, +TParentSubmitMeta, +> extends CreateFieldOptions< +TParentData, +TName, +TData, +TOnMount, +TOnChange, +TOnChangeAsync, +TOnBlur, +TOnBlurAsync, +TOnSubmit, +TOnSubmitAsync, +TFormOnMount, +TFormOnChange, +TFormOnChangeAsync, +TFormOnBlur, +TFormOnBlurAsync, +TFormOnSubmit, +TFormOnSubmitAsync, +TFormOnServer, +TParentSubmitMeta +> { + children: ( + fieldApi: () => FieldApi< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TParentSubmitMeta + >, + ) => JSXElement +} + export function Field< TParentData, TName extends DeepKeys, @@ -504,31 +549,7 @@ export function Field< TFormOnServer extends undefined | FormAsyncValidateOrFn, TParentSubmitMeta, >( - props: { - children: ( - fieldApi: () => FieldApi< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TParentSubmitMeta - >, - ) => JSXElement - } & CreateFieldOptions< + props: FieldComponentProps< TParentData, TName, TData, diff --git a/packages/solid-form/src/types.ts b/packages/solid-form/src/types.ts index 3ca6b70f8..e5dd2126a 100644 --- a/packages/solid-form/src/types.ts +++ b/packages/solid-form/src/types.ts @@ -3,12 +3,17 @@ import type { DeepValue, FieldApiOptions, FieldAsyncValidateOrFn, + FieldOptions, FieldValidateOrFn, FormAsyncValidateOrFn, FormValidateOrFn, } from '@tanstack/form-core' -export type CreateFieldOptions< +interface FieldOptionsMode { + mode?: 'value' | 'array' +} + +export interface CreateFieldOptions< TParentData, TName extends DeepKeys, TData extends DeepValue, @@ -34,26 +39,56 @@ export type CreateFieldOptions< TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, TFormOnServer extends undefined | FormAsyncValidateOrFn, TSubmitMeta, -> = FieldApiOptions< +> extends FieldApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TSubmitMeta + >, + FieldOptionsMode {} + +export interface CreateFieldOptionsBound< TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TSubmitMeta -> & { - mode?: 'value' | 'array' -} + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, +> extends FieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + >, + FieldOptionsMode {} From f29089b2184e3d097f3d052926183d7573b28f5e Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:39:46 +0000 Subject: [PATCH 12/25] ci: apply automated fixes and generate docs --- .../solid/reference/functions/createfield.md | 2 +- .../solid/reference/functions/field.md | 4 +- .../reference/type-aliases/createfield.md | 6 +- .../reference/type-aliases/fieldcomponent.md | 4 +- packages/solid-form/src/createField.tsx | 101 +++++++++--------- 5 files changed, 57 insertions(+), 60 deletions(-) diff --git a/docs/framework/solid/reference/functions/createfield.md b/docs/framework/solid/reference/functions/createfield.md index 68c740bf0..55ad9bca4 100644 --- a/docs/framework/solid/reference/functions/createfield.md +++ b/docs/framework/solid/reference/functions/createfield.md @@ -11,7 +11,7 @@ title: createField function createField(opts): () => FieldApi & SolidFieldApi ``` -Defined in: [packages/solid-form/src/createField.tsx:236](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L236) +Defined in: [packages/solid-form/src/createField.tsx:223](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L223) ## Type Parameters diff --git a/docs/framework/solid/reference/functions/field.md b/docs/framework/solid/reference/functions/field.md index 4c456febf..35ccb37a1 100644 --- a/docs/framework/solid/reference/functions/field.md +++ b/docs/framework/solid/reference/functions/field.md @@ -11,7 +11,7 @@ title: Field function Field(props): Element ``` -Defined in: [packages/solid-form/src/createField.tsx:480](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L480) +Defined in: [packages/solid-form/src/createField.tsx:524](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L524) ## Type Parameters @@ -57,7 +57,7 @@ Defined in: [packages/solid-form/src/createField.tsx:480](https://github.com/Tan ### props -`object` & `FieldApiOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\> & `object` +`FieldComponentProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\> ## Returns diff --git a/docs/framework/solid/reference/type-aliases/createfield.md b/docs/framework/solid/reference/type-aliases/createfield.md index bacbe6a84..c45efcc8e 100644 --- a/docs/framework/solid/reference/type-aliases/createfield.md +++ b/docs/framework/solid/reference/type-aliases/createfield.md @@ -8,7 +8,7 @@ title: CreateField # Type Alias: CreateField()\ ```ts -type CreateField = (opts) => () => FieldApi & SolidFieldApi; +type CreateField = (opts) => () => FieldApi & SolidFieldApi; ``` Defined in: [packages/solid-form/src/createField.tsx:49](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L49) @@ -55,13 +55,11 @@ Defined in: [packages/solid-form/src/createField.tsx:49](https://github.com/TanS • **TOnSubmitAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> -• **TSubmitMeta** - ## Parameters ### opts -() => `object` & `Omit`\<`CreateFieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TSubmitMeta`\>, `"form"`\> +() => `object` & `CreateFieldOptionsBound`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> ## Returns diff --git a/docs/framework/solid/reference/type-aliases/fieldcomponent.md b/docs/framework/solid/reference/type-aliases/fieldcomponent.md index 84aefbf0a..f61dc4803 100644 --- a/docs/framework/solid/reference/type-aliases/fieldcomponent.md +++ b/docs/framework/solid/reference/type-aliases/fieldcomponent.md @@ -14,7 +14,7 @@ type FieldComponent JSXElement; ``` -Defined in: [packages/solid-form/src/createField.tsx:425](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L425) +Defined in: [packages/solid-form/src/createField.tsx:400](https://github.com/TanStack/form/blob/main/packages/solid-form/src/createField.tsx#L400) ## Type Parameters @@ -65,7 +65,7 @@ Defined in: [packages/solid-form/src/createField.tsx:425](https://github.com/Tan ...fieldOptions \} -`Omit`\<`FieldComponentProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>, `"form"`\> +`FieldComponentBoundProps`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\> ## Returns diff --git a/packages/solid-form/src/createField.tsx b/packages/solid-form/src/createField.tsx index 665f72510..9113720de 100644 --- a/packages/solid-form/src/createField.tsx +++ b/packages/solid-form/src/createField.tsx @@ -427,8 +427,55 @@ export type FieldComponent< >({ children, ...fieldOptions -}: - FieldComponentBoundProps< +}: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TParentSubmitMeta +>) => JSXElement + +interface FieldComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +> extends CreateFieldOptions< TParentData, TName, TData, @@ -448,55 +495,7 @@ export type FieldComponent< TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta ->) => JSXElement - -interface FieldComponentProps< -TParentData, -TName extends DeepKeys, -TData extends DeepValue, -TOnMount extends undefined | FieldValidateOrFn, -TOnChange extends undefined | FieldValidateOrFn, -TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, -TOnBlur extends undefined | FieldValidateOrFn, -TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, -TOnSubmit extends undefined | FieldValidateOrFn, -TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, -TFormOnMount extends undefined | FormValidateOrFn, -TFormOnChange extends undefined | FormValidateOrFn, -TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, -TFormOnBlur extends undefined | FormValidateOrFn, -TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, -TFormOnSubmit extends undefined | FormValidateOrFn, -TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, -TFormOnServer extends undefined | FormAsyncValidateOrFn, -TParentSubmitMeta, -> extends CreateFieldOptions< -TParentData, -TName, -TData, -TOnMount, -TOnChange, -TOnChangeAsync, -TOnBlur, -TOnBlurAsync, -TOnSubmit, -TOnSubmitAsync, -TFormOnMount, -TFormOnChange, -TFormOnChangeAsync, -TFormOnBlur, -TFormOnBlurAsync, -TFormOnSubmit, -TFormOnSubmitAsync, -TFormOnServer, -TParentSubmitMeta -> { + > { children: ( fieldApi: () => FieldApi< TParentData, From 5dbab3aa7162e0540264a1a13b2fba754ae5b529 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 10 Mar 2025 23:56:46 +0100 Subject: [PATCH 13/25] perf(vue-form): add interface changes to vue --- packages/solid-form/src/createField.tsx | 101 +++++++++--------- packages/vue-form/src/types.ts | 81 ++++++++++---- packages/vue-form/src/useField.tsx | 134 +++++++++++------------- 3 files changed, 172 insertions(+), 144 deletions(-) diff --git a/packages/solid-form/src/createField.tsx b/packages/solid-form/src/createField.tsx index 665f72510..9113720de 100644 --- a/packages/solid-form/src/createField.tsx +++ b/packages/solid-form/src/createField.tsx @@ -427,8 +427,55 @@ export type FieldComponent< >({ children, ...fieldOptions -}: - FieldComponentBoundProps< +}: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TParentSubmitMeta +>) => JSXElement + +interface FieldComponentProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, + TFormOnMount extends undefined | FormValidateOrFn, + TFormOnChange extends undefined | FormValidateOrFn, + TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TFormOnBlur extends undefined | FormValidateOrFn, + TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TFormOnSubmit extends undefined | FormValidateOrFn, + TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TFormOnServer extends undefined | FormAsyncValidateOrFn, + TParentSubmitMeta, +> extends CreateFieldOptions< TParentData, TName, TData, @@ -448,55 +495,7 @@ export type FieldComponent< TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta ->) => JSXElement - -interface FieldComponentProps< -TParentData, -TName extends DeepKeys, -TData extends DeepValue, -TOnMount extends undefined | FieldValidateOrFn, -TOnChange extends undefined | FieldValidateOrFn, -TOnChangeAsync extends - | undefined - | FieldAsyncValidateOrFn, -TOnBlur extends undefined | FieldValidateOrFn, -TOnBlurAsync extends - | undefined - | FieldAsyncValidateOrFn, -TOnSubmit extends undefined | FieldValidateOrFn, -TOnSubmitAsync extends - | undefined - | FieldAsyncValidateOrFn, -TFormOnMount extends undefined | FormValidateOrFn, -TFormOnChange extends undefined | FormValidateOrFn, -TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn, -TFormOnBlur extends undefined | FormValidateOrFn, -TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn, -TFormOnSubmit extends undefined | FormValidateOrFn, -TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, -TFormOnServer extends undefined | FormAsyncValidateOrFn, -TParentSubmitMeta, -> extends CreateFieldOptions< -TParentData, -TName, -TData, -TOnMount, -TOnChange, -TOnChangeAsync, -TOnBlur, -TOnBlurAsync, -TOnSubmit, -TOnSubmitAsync, -TFormOnMount, -TFormOnChange, -TFormOnChangeAsync, -TFormOnBlur, -TFormOnBlurAsync, -TFormOnSubmit, -TFormOnSubmitAsync, -TFormOnServer, -TParentSubmitMeta -> { + > { children: ( fieldApi: () => FieldApi< TParentData, diff --git a/packages/vue-form/src/types.ts b/packages/vue-form/src/types.ts index 199c807da..c4eb1a62d 100644 --- a/packages/vue-form/src/types.ts +++ b/packages/vue-form/src/types.ts @@ -3,12 +3,17 @@ import type { DeepValue, FieldApiOptions, FieldAsyncValidateOrFn, + FieldOptions, FieldValidateOrFn, FormAsyncValidateOrFn, FormValidateOrFn, } from '@tanstack/form-core' -export type UseFieldOptions< +interface FieldOptionsMode { + mode?: 'value' | 'array' +} + +export interface UseFieldOptions< TParentData, TName extends DeepKeys, TData extends DeepValue, @@ -34,26 +39,56 @@ export type UseFieldOptions< TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn, TFormOnServer extends undefined | FormAsyncValidateOrFn, TSubmitMeta, -> = FieldApiOptions< +> extends FieldApiOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TFormOnMount, + TFormOnChange, + TFormOnChangeAsync, + TFormOnBlur, + TFormOnBlurAsync, + TFormOnSubmit, + TFormOnSubmitAsync, + TFormOnServer, + TSubmitMeta + >, + FieldOptionsMode {} + +export interface UseFieldOptionsBound< TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TSubmitMeta -> & { - mode?: 'value' | 'array' -} + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, +> extends FieldOptions< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync + >, + FieldOptionsMode {} diff --git a/packages/vue-form/src/useField.tsx b/packages/vue-form/src/useField.tsx index e778fa0b7..c63631431 100644 --- a/packages/vue-form/src/useField.tsx +++ b/packages/vue-form/src/useField.tsx @@ -19,7 +19,7 @@ import type { SetupContext, SlotsType, } from 'vue' -import type { UseFieldOptions } from './types' +import type { UseFieldOptions, UseFieldOptionsBound } from './types' export type FieldComponent< TParentData, @@ -51,56 +51,32 @@ export type FieldComponent< | undefined | FieldAsyncValidateOrFn, >( - props: Omit< - FieldComponentProps< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TParentSubmitMeta - >, - 'form' + props: FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync > & EmitsToProps & PublicProps, ) => CreateComponentPublicInstanceWithMixins< - Omit< - FieldComponentProps< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TParentSubmitMeta - >, - 'form' + FieldComponentBoundProps< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync >, {}, {}, @@ -215,29 +191,17 @@ export type UseField< | undefined | FieldAsyncValidateOrFn, >( - opts: Omit< - UseFieldOptions< - TParentData, - TName, - TData, - TOnMount, - TOnChange, - TOnChangeAsync, - TOnBlur, - TOnBlurAsync, - TOnSubmit, - TOnSubmitAsync, - TFormOnMount, - TFormOnChange, - TFormOnChangeAsync, - TFormOnBlur, - TFormOnBlurAsync, - TFormOnSubmit, - TFormOnSubmitAsync, - TFormOnServer, - TParentSubmitMeta - >, - 'form' + opts: UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync >, ) => { api: FieldApi< @@ -445,6 +409,36 @@ export type FieldComponentProps< TParentSubmitMeta > +export type FieldComponentBoundProps< + TParentData, + TName extends DeepKeys, + TData extends DeepValue, + TOnMount extends undefined | FieldValidateOrFn, + TOnChange extends undefined | FieldValidateOrFn, + TOnChangeAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnBlur extends undefined | FieldValidateOrFn, + TOnBlurAsync extends + | undefined + | FieldAsyncValidateOrFn, + TOnSubmit extends undefined | FieldValidateOrFn, + TOnSubmitAsync extends + | undefined + | FieldAsyncValidateOrFn, +> = UseFieldOptionsBound< + TParentData, + TName, + TData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync +> + export const Field = defineComponent( < TParentData, From 270a50f94a4ac3a9b234cc25bffd00070a9de247 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:58:43 +0000 Subject: [PATCH 14/25] ci: apply automated fixes and generate docs --- .../vue/reference/functions/usefield.md | 2 +- docs/framework/vue/reference/index.md | 1 + .../vue/reference/interfaces/vuefieldapi.md | 4 +-- .../reference/type-aliases/fieldcomponent.md | 6 ++-- .../type-aliases/fieldcomponentboundprops.md | 36 +++++++++++++++++++ .../type-aliases/fieldcomponentprops.md | 2 +- .../vue/reference/type-aliases/usefield.md | 4 +-- .../vue/reference/variables/field.md | 8 ++--- 8 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 docs/framework/vue/reference/type-aliases/fieldcomponentboundprops.md diff --git a/docs/framework/vue/reference/functions/usefield.md b/docs/framework/vue/reference/functions/usefield.md index 4067fd126..f2ddae3d1 100644 --- a/docs/framework/vue/reference/functions/usefield.md +++ b/docs/framework/vue/reference/functions/usefield.md @@ -11,7 +11,7 @@ title: useField function useField(opts): object ``` -Defined in: [packages/vue-form/src/useField.tsx:303](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L303) +Defined in: [packages/vue-form/src/useField.tsx:267](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L267) ## Type Parameters diff --git a/docs/framework/vue/reference/index.md b/docs/framework/vue/reference/index.md index 0ff69a5aa..ea7b8ad38 100644 --- a/docs/framework/vue/reference/index.md +++ b/docs/framework/vue/reference/index.md @@ -15,6 +15,7 @@ title: "@tanstack/vue-form" ## Type Aliases - [FieldComponent](type-aliases/fieldcomponent.md) +- [FieldComponentBoundProps](type-aliases/fieldcomponentboundprops.md) - [FieldComponentProps](type-aliases/fieldcomponentprops.md) - [UseField](type-aliases/usefield.md) diff --git a/docs/framework/vue/reference/interfaces/vuefieldapi.md b/docs/framework/vue/reference/interfaces/vuefieldapi.md index 7ac8a49fd..6359b1c13 100644 --- a/docs/framework/vue/reference/interfaces/vuefieldapi.md +++ b/docs/framework/vue/reference/interfaces/vuefieldapi.md @@ -7,7 +7,7 @@ title: VueFieldApi # Interface: VueFieldApi\ -Defined in: [packages/vue-form/src/useField.tsx:164](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L164) +Defined in: [packages/vue-form/src/useField.tsx:140](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L140) ## Type Parameters @@ -39,4 +39,4 @@ Defined in: [packages/vue-form/src/useField.tsx:164](https://github.com/TanStack Field: FieldComponent; ``` -Defined in: [packages/vue-form/src/useField.tsx:176](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L176) +Defined in: [packages/vue-form/src/useField.tsx:152](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L152) diff --git a/docs/framework/vue/reference/type-aliases/fieldcomponent.md b/docs/framework/vue/reference/type-aliases/fieldcomponent.md index 9ec7ede80..b2e6c559a 100644 --- a/docs/framework/vue/reference/type-aliases/fieldcomponent.md +++ b/docs/framework/vue/reference/type-aliases/fieldcomponent.md @@ -8,7 +8,7 @@ title: FieldComponent # Type Alias: FieldComponent()\ ```ts -type FieldComponent = (props) => CreateComponentPublicInstanceWithMixins, "form">, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, PublicProps, {}, false, {}, SlotsType<{ +type FieldComponent = (props) => CreateComponentPublicInstanceWithMixins, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, PublicProps, {}, false, {}, SlotsType<{ default: { field: FieldApi; state: FieldApi["state"]; @@ -44,11 +44,11 @@ Defined in: [packages/vue-form/src/useField.tsx:24](https://github.com/TanStack/ ### props -`Omit`\<[`FieldComponentProps`](fieldcomponentprops.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>, `"form"`\> & `EmitsToProps`\<`EmitsOptions`\> & `PublicProps` +[`FieldComponentBoundProps`](fieldcomponentboundprops.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> & `EmitsToProps`\<`EmitsOptions`\> & `PublicProps` ## Returns -`CreateComponentPublicInstanceWithMixins`\<`Omit`\<[`FieldComponentProps`](fieldcomponentprops.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>, `"form"`\>, \{\}, \{\}, \{\}, \{\}, `ComponentOptionsMixin`, `ComponentOptionsMixin`, `EmitsOptions`, `PublicProps`, \{\}, `false`, \{\}, `SlotsType`\<\{ +`CreateComponentPublicInstanceWithMixins`\<[`FieldComponentBoundProps`](fieldcomponentboundprops.md)\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\>, \{\}, \{\}, \{\}, \{\}, `ComponentOptionsMixin`, `ComponentOptionsMixin`, `EmitsOptions`, `PublicProps`, \{\}, `false`, \{\}, `SlotsType`\<\{ `default`: \{ `field`: `FieldApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>; `state`: `FieldApi`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>\[`"state"`\]; diff --git a/docs/framework/vue/reference/type-aliases/fieldcomponentboundprops.md b/docs/framework/vue/reference/type-aliases/fieldcomponentboundprops.md new file mode 100644 index 000000000..2a01e5c68 --- /dev/null +++ b/docs/framework/vue/reference/type-aliases/fieldcomponentboundprops.md @@ -0,0 +1,36 @@ +--- +id: FieldComponentBoundProps +title: FieldComponentBoundProps +--- + + + +# Type Alias: FieldComponentBoundProps\ + +```ts +type FieldComponentBoundProps = UseFieldOptionsBound; +``` + +Defined in: [packages/vue-form/src/useField.tsx:412](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L412) + +## Type Parameters + +• **TParentData** + +• **TName** *extends* `DeepKeys`\<`TParentData`\> + +• **TData** *extends* `DeepValue`\<`TParentData`, `TName`\> + +• **TOnMount** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnChange** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnChangeAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnBlur** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnBlurAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnSubmit** *extends* `undefined` \| `FieldValidateOrFn`\<`TParentData`, `TName`, `TData`\> + +• **TOnSubmitAsync** *extends* `undefined` \| `FieldAsyncValidateOrFn`\<`TParentData`, `TName`, `TData`\> diff --git a/docs/framework/vue/reference/type-aliases/fieldcomponentprops.md b/docs/framework/vue/reference/type-aliases/fieldcomponentprops.md index 60eac66d1..890321467 100644 --- a/docs/framework/vue/reference/type-aliases/fieldcomponentprops.md +++ b/docs/framework/vue/reference/type-aliases/fieldcomponentprops.md @@ -11,7 +11,7 @@ title: FieldComponentProps type FieldComponentProps = UseFieldOptions; ``` -Defined in: [packages/vue-form/src/useField.tsx:400](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L400) +Defined in: [packages/vue-form/src/useField.tsx:364](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L364) ## Type Parameters diff --git a/docs/framework/vue/reference/type-aliases/usefield.md b/docs/framework/vue/reference/type-aliases/usefield.md index 980cd7b48..6a8e8ba5e 100644 --- a/docs/framework/vue/reference/type-aliases/usefield.md +++ b/docs/framework/vue/reference/type-aliases/usefield.md @@ -11,7 +11,7 @@ title: UseField type UseField = (opts) => object; ``` -Defined in: [packages/vue-form/src/useField.tsx:190](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L190) +Defined in: [packages/vue-form/src/useField.tsx:166](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L166) ## Type Parameters @@ -59,7 +59,7 @@ Defined in: [packages/vue-form/src/useField.tsx:190](https://github.com/TanStack ### opts -`Omit`\<`UseFieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\>, `"form"`\> +`UseFieldOptionsBound`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`\> ## Returns diff --git a/docs/framework/vue/reference/variables/field.md b/docs/framework/vue/reference/variables/field.md index f2fca429d..fef910c9d 100644 --- a/docs/framework/vue/reference/variables/field.md +++ b/docs/framework/vue/reference/variables/field.md @@ -8,17 +8,17 @@ title: Field # Variable: Field() ```ts -const Field: (props) => CreateComponentPublicInstanceWithMixins & object & {} | {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, PublicProps, {}, false, {}, {}>; +const Field: (props) => CreateComponentPublicInstanceWithMixins & {} | {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, EmitsOptions, PublicProps, {}, false, {}, {}>; ``` -Defined in: [packages/vue-form/src/useField.tsx:448](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L448) +Defined in: [packages/vue-form/src/useField.tsx:442](https://github.com/TanStack/form/blob/main/packages/vue-form/src/useField.tsx#L442) ## Parameters ### props -FieldApiOptions\ & \{ ...; \} & (\{ ...; \} \| \{ ...; \}) & `VNodeProps` & `AllowedComponentProps` & `ComponentCustomProps` +UseFieldOptions\ & (\{ ...; \} \| \{ ...; \}) & `VNodeProps` & `AllowedComponentProps` & `ComponentCustomProps` ## Returns -`CreateComponentPublicInstanceWithMixins`\<`FieldApiOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\> & `object` & \{\} \| \{\}, \{\}, \{\}, \{\}, \{\}, `ComponentOptionsMixin`, `ComponentOptionsMixin`, `EmitsOptions`, `PublicProps`, \{\}, `false`, \{\}, \{\}\> +`CreateComponentPublicInstanceWithMixins`\<`UseFieldOptions`\<`TParentData`, `TName`, `TData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TFormOnMount`, `TFormOnChange`, `TFormOnChangeAsync`, `TFormOnBlur`, `TFormOnBlurAsync`, `TFormOnSubmit`, `TFormOnSubmitAsync`, `TFormOnServer`, `TParentSubmitMeta`\> & \{\} \| \{\}, \{\}, \{\}, \{\}, \{\}, `ComponentOptionsMixin`, `ComponentOptionsMixin`, `EmitsOptions`, `PublicProps`, \{\}, `false`, \{\}, \{\}\> From 3f82265ac7c0c119ae15831c61fd6e697ab0e495 Mon Sep 17 00:00:00 2001 From: chorobin Date: Tue, 11 Mar 2025 00:15:49 +0100 Subject: [PATCH 15/25] chore: cleanup --- packages/form-core/src/FieldApi.ts | 33 ++++++++++---------- packages/form-core/src/FormApi.ts | 46 ++++++++++++++-------------- packages/form-core/src/util-types.ts | 4 --- 3 files changed, 39 insertions(+), 44 deletions(-) diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 73e8327a8..c67c7889b 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -8,7 +8,6 @@ import type { DeepKeys, DeepValue, UnwrapOneLevelOfArray, - ValidateName, } from './util-types' import type { StandardSchemaV1, @@ -37,7 +36,7 @@ import type { AsyncValidator, SyncValidator, Updater } from './utils' // TODO: Add the `Unwrap` type to the errors type FieldErrorMapFromValidator< TFormData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -72,7 +71,7 @@ type FieldErrorMapFromValidator< */ export type FieldValidateFn< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > = (props: { value: TData @@ -106,7 +105,7 @@ export type FieldValidateFn< */ export type FieldValidateOrFn< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > = | FieldValidateFn @@ -155,7 +154,7 @@ export type UnwrapFieldValidateOrFn< */ export type FieldValidateAsyncFn< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > = (options: { value: TData @@ -190,7 +189,7 @@ export type FieldValidateAsyncFn< */ export type FieldAsyncValidateOrFn< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > = | FieldValidateAsyncFn @@ -237,7 +236,7 @@ export type UnwrapFieldAsyncValidateOrFn< */ export type FieldListenerFn< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > = (props: { value: TData @@ -268,7 +267,7 @@ export type FieldListenerFn< export interface FieldValidators< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -349,7 +348,7 @@ export interface FieldValidators< export interface FieldListeners< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue = DeepValue, > { onChange?: FieldListenerFn @@ -363,7 +362,7 @@ export interface FieldListeners< */ export interface FieldOptions< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -382,7 +381,7 @@ export interface FieldOptions< /** * The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. */ - name: ValidateName + name: TName /** * An optional default value for the field. */ @@ -449,7 +448,7 @@ export interface FieldOptions< */ export interface FieldApiOptions< in out TParentData, - in out TName extends string, + in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends | undefined @@ -515,7 +514,7 @@ export interface FieldApiOptions< export type FieldMetaBase< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -590,7 +589,7 @@ export type AnyFieldMetaBase = FieldMetaBase< export type FieldMetaDerived< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -670,7 +669,7 @@ export type AnyFieldMetaDerived = FieldMetaDerived< */ export type FieldMeta< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -756,7 +755,7 @@ export type AnyFieldMeta = FieldMeta< */ export type FieldState< TParentData, - TName extends string, + TName extends DeepKeys, TData extends DeepValue, TOnMount extends undefined | FieldValidateOrFn, TOnChange extends undefined | FieldValidateOrFn, @@ -845,7 +844,7 @@ export type AnyFieldApi = FieldApi< */ export class FieldApi< in out TParentData, - in out TName extends string, + in out TName extends DeepKeys, in out TData extends DeepValue, in out TOnMount extends | undefined diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 05c4e8061..fcba6b385 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -30,7 +30,7 @@ import type { ValidationErrorMap, ValidationErrorMapKeys, } from './types' -import type { DeepKeys, DeepValue, ValidateName } from './util-types' +import type { DeepKeys, DeepValue } from './util-types' import type { Updater } from './utils' /** @@ -1226,8 +1226,8 @@ export class FormApi< /** * Validates a specified field in the form using the correct handlers for a given validation type. */ - validateField = ( - field: ValidateName, + validateField = >( + field: TField, cause: ValidationCause, ) => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition @@ -1669,8 +1669,8 @@ export class FormApi< /** * Gets the metadata of the specified field. */ - getFieldMeta = ( - field: ValidateName, + getFieldMeta = >( + field: TField, ): AnyFieldMeta | undefined => { return this.state.fieldMeta[field] } @@ -1678,8 +1678,8 @@ export class FormApi< /** * Gets the field info of the specified field. */ - getFieldInfo = ( - field: ValidateName, + getFieldInfo = >( + field: TField, ): FieldInfo => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition return (this.fieldInfo[field] ||= { @@ -1697,8 +1697,8 @@ export class FormApi< /** * Updates the metadata of the specified field. */ - setFieldMeta = ( - field: ValidateName, + setFieldMeta = >( + field: TField, updater: Updater, ) => { this.baseStore.setState((prev) => { @@ -1739,8 +1739,8 @@ export class FormApi< /** * Sets the value of the specified field and optionally updates the touched state. */ - setFieldValue = ( - field: ValidateName, + setFieldValue = >( + field: TField, updater: Updater>, opts?: UpdateMetaOptions, ) => { @@ -1793,8 +1793,8 @@ export class FormApi< /** * Pushes a value into an array field. */ - pushFieldValue = ( - field: ValidateName, + pushFieldValue = >( + field: TField, value: DeepValue extends any[] ? DeepValue[number] : never, @@ -1808,8 +1808,8 @@ export class FormApi< this.validateField(field, 'change') } - insertFieldValue = async ( - field: ValidateName, + insertFieldValue = async >( + field:TField, index: number, value: DeepValue extends any[] ? DeepValue[number] @@ -1840,8 +1840,8 @@ export class FormApi< /** * Replaces a value into an array field at the specified index. */ - replaceFieldValue = async ( - field: ValidateName, + replaceFieldValue = async >( + field: TField, index: number, value: DeepValue extends any[] ? DeepValue[number] @@ -1866,8 +1866,8 @@ export class FormApi< /** * Removes a value from an array field at the specified index. */ - removeFieldValue = async ( - field: ValidateName, + removeFieldValue = async >( + field: TField, index: number, opts?: UpdateMetaOptions, ) => { @@ -1903,8 +1903,8 @@ export class FormApi< /** * Swaps the values at the specified indices within an array field. */ - swapFieldValues = ( - field: ValidateName, + swapFieldValues = >( + field: TField, index1: number, index2: number, opts?: UpdateMetaOptions, @@ -1932,8 +1932,8 @@ export class FormApi< /** * Moves the value at the first specified index to the second specified index within an array field. */ - moveFieldValues = ( - field: ValidateName, + moveFieldValues = >( + field: TField, index1: number, index2: number, opts?: UpdateMetaOptions, diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index 8b890e499..bcbed9cc5 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -111,10 +111,6 @@ export type DeepKeys = unknown extends T ? string : keyof DeepKeysAndValues & string -export type ValidateName = ConstrainLiteral< - TName, - DeepKeys -> export type ConstrainLiteral = | (T & TConstraint) From dd4c3630ce1e8fd11e1b8f3a938ba803db0b0473 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 23:17:37 +0000 Subject: [PATCH 16/25] ci: apply automated fixes and generate docs --- docs/reference/classes/fieldapi.md | 52 +++++++++---------- docs/reference/classes/formapi.md | 22 ++++---- docs/reference/index.md | 1 - docs/reference/interfaces/fieldapioptions.md | 24 ++++----- docs/reference/interfaces/fieldlisteners.md | 12 ++--- docs/reference/interfaces/fieldoptions.md | 22 ++++---- docs/reference/interfaces/fieldvalidators.md | 26 +++++----- docs/reference/type-aliases/anyfieldapi.md | 2 +- docs/reference/type-aliases/anyfieldmeta.md | 2 +- .../type-aliases/anyfieldmetabase.md | 2 +- .../type-aliases/anyfieldmetaderived.md | 2 +- .../type-aliases/constrainliteral.md | 2 +- docs/reference/type-aliases/deepvalue.md | 2 +- docs/reference/type-aliases/fieldmeta.md | 4 +- docs/reference/type-aliases/fieldmetabase.md | 4 +- .../type-aliases/fieldmetaderived.md | 4 +- docs/reference/type-aliases/fieldstate.md | 4 +- .../unwrapfieldasyncvalidateorfn.md | 2 +- .../type-aliases/unwrapfieldvalidateorfn.md | 2 +- docs/reference/type-aliases/validatename.md | 20 ------- packages/form-core/src/FieldApi.ts | 6 +-- packages/form-core/src/FormApi.ts | 2 +- packages/form-core/src/util-types.ts | 1 - 23 files changed, 97 insertions(+), 123 deletions(-) delete mode 100644 docs/reference/type-aliases/validatename.md diff --git a/docs/reference/classes/fieldapi.md b/docs/reference/classes/fieldapi.md index 8a7e074a3..f9d4c154b 100644 --- a/docs/reference/classes/fieldapi.md +++ b/docs/reference/classes/fieldapi.md @@ -7,7 +7,7 @@ title: FieldApi # Class: FieldApi\ -Defined in: [packages/form-core/src/FieldApi.ts:846](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L846) +Defined in: [packages/form-core/src/FieldApi.ts:841](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L841) A class representing the API for managing a form field. @@ -21,7 +21,7 @@ the `new FieldApi` constructor. • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -65,7 +65,7 @@ the `new FieldApi` constructor. new FieldApi(opts): FieldApi ``` -Defined in: [packages/form-core/src/FieldApi.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L974) +Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L969) Initializes a new `FieldApi` instance. @@ -87,7 +87,7 @@ Initializes a new `FieldApi` instance. form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:890](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L890) +Defined in: [packages/form-core/src/FieldApi.ts:885](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L885) A reference to the form API instance. @@ -99,7 +99,7 @@ A reference to the form API instance. name: DeepKeys; ``` -Defined in: [packages/form-core/src/FieldApi.ts:914](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L914) +Defined in: [packages/form-core/src/FieldApi.ts:909](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L909) The field name. @@ -111,7 +111,7 @@ The field name. options: FieldApiOptions; ``` -Defined in: [packages/form-core/src/FieldApi.ts:918](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L918) +Defined in: [packages/form-core/src/FieldApi.ts:913](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L913) The field options. @@ -123,7 +123,7 @@ The field options. store: Derived>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:942](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L942) +Defined in: [packages/form-core/src/FieldApi.ts:937](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L937) The field state store. @@ -135,7 +135,7 @@ The field state store. timeoutIds: Record; ``` -Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L969) +Defined in: [packages/form-core/src/FieldApi.ts:964](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L964) ## Accessors @@ -147,7 +147,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack get state(): FieldState ``` -Defined in: [packages/form-core/src/FieldApi.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L966) +Defined in: [packages/form-core/src/FieldApi.ts:961](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L961) The current field state. @@ -163,7 +163,7 @@ The current field state. getInfo(): FieldInfo ``` -Defined in: [packages/form-core/src/FieldApi.ts:1222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1222) +Defined in: [packages/form-core/src/FieldApi.ts:1217](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1217) Gets the field information object. @@ -179,7 +179,7 @@ Gets the field information object. getMeta(): FieldMeta ``` -Defined in: [packages/form-core/src/FieldApi.ts:1190](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1190) +Defined in: [packages/form-core/src/FieldApi.ts:1185](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1185) #### Returns @@ -193,7 +193,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:1190](https://github.com/TanStac getValue(): TData ``` -Defined in: [packages/form-core/src/FieldApi.ts:1172](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1172) +Defined in: [packages/form-core/src/FieldApi.ts:1167](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1167) Gets the current field value. @@ -213,7 +213,7 @@ Use `field.state.value` instead. handleBlur(): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1633](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1633) +Defined in: [packages/form-core/src/FieldApi.ts:1628](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1628) Handles the blur event. @@ -229,7 +229,7 @@ Handles the blur event. handleChange(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1626](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1626) +Defined in: [packages/form-core/src/FieldApi.ts:1621](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1621) Handles the change event. @@ -254,7 +254,7 @@ insertValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1242](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1242) +Defined in: [packages/form-core/src/FieldApi.ts:1237](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1237) Inserts a value at the specified index, shifting the subsequent values to the right. @@ -284,7 +284,7 @@ Inserts a value at the specified index, shifting the subsequent values to the ri mount(): () => void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1078](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1078) +Defined in: [packages/form-core/src/FieldApi.ts:1073](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1073) Mounts the field instance to the form. @@ -307,7 +307,7 @@ moveValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1298) +Defined in: [packages/form-core/src/FieldApi.ts:1293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1293) Moves the value at the first specified index to the second specified index. @@ -337,7 +337,7 @@ Moves the value at the first specified index to the second specified index. pushValue(value, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1227](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1227) +Defined in: [packages/form-core/src/FieldApi.ts:1222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1222) Pushes a new value to the field. @@ -363,7 +363,7 @@ Pushes a new value to the field. removeValue(index, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1274](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1274) +Defined in: [packages/form-core/src/FieldApi.ts:1269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1269) Removes a value at the specified index. @@ -392,7 +392,7 @@ replaceValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1258](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1258) +Defined in: [packages/form-core/src/FieldApi.ts:1253](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1253) Replaces a value at the specified index. @@ -422,7 +422,7 @@ Replaces a value at the specified index. setErrorMap(errorMap): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1653](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1653) +Defined in: [packages/form-core/src/FieldApi.ts:1648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1648) Updates the field's errorMap @@ -444,7 +444,7 @@ Updates the field's errorMap setMeta(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1195](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1195) +Defined in: [packages/form-core/src/FieldApi.ts:1190](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1190) Sets the field metadata. @@ -466,7 +466,7 @@ Sets the field metadata. setValue(updater, options?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1179](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1179) +Defined in: [packages/form-core/src/FieldApi.ts:1174](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1174) Sets the field value and run the `change` validator. @@ -495,7 +495,7 @@ swapValues( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1286](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1286) +Defined in: [packages/form-core/src/FieldApi.ts:1281](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1281) Swaps the values at the specified indices. @@ -525,7 +525,7 @@ Swaps the values at the specified indices. update(opts): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1120](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1120) +Defined in: [packages/form-core/src/FieldApi.ts:1115](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1115) Updates the field instance with new options. @@ -547,7 +547,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise ``` -Defined in: [packages/form-core/src/FieldApi.ts:1593](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1593) +Defined in: [packages/form-core/src/FieldApi.ts:1588](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1588) Validates the field value. diff --git a/docs/reference/classes/formapi.md b/docs/reference/classes/formapi.md index 7c7f5973b..518e56c17 100644 --- a/docs/reference/classes/formapi.md +++ b/docs/reference/classes/formapi.md @@ -224,7 +224,7 @@ Gets the field info of the specified field. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` #### Returns @@ -250,7 +250,7 @@ Gets the metadata of the specified field. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` #### Returns @@ -342,7 +342,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1811](https://github.com/TanStack ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### index @@ -402,7 +402,7 @@ Moves the value at the first specified index to the second specified index withi ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### index1 @@ -443,7 +443,7 @@ Pushes a value into an array field. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### value @@ -480,7 +480,7 @@ Removes a value from an array field at the specified index. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### index @@ -518,7 +518,7 @@ Replaces a value into an array field at the specified index. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### index @@ -635,7 +635,7 @@ Updates the metadata of the specified field. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### updater @@ -668,7 +668,7 @@ Sets the value of the specified field and optionally updates the touched state. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### updater @@ -706,7 +706,7 @@ Swaps the values at the specified indices within an array field. ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### index1 @@ -825,7 +825,7 @@ Validates a specified field in the form using the correct handlers for a given v ##### field -[`ValidateName`](../type-aliases/validatename.md)\<`TFormData`, `TField`\> +`TField` ##### cause diff --git a/docs/reference/index.md b/docs/reference/index.md index a7bd3551f..e6e64dc0e 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -63,7 +63,6 @@ title: "@tanstack/form-core" - [UnwrapFormValidateOrFn](type-aliases/unwrapformvalidateorfn.md) - [Updater](type-aliases/updater.md) - [UpdaterFn](type-aliases/updaterfn.md) -- [ValidateName](type-aliases/validatename.md) - [ValidationError](type-aliases/validationerror.md) - [ValidationMeta](type-aliases/validationmeta.md) - [ValidationSource](type-aliases/validationsource.md) diff --git a/docs/reference/interfaces/fieldapioptions.md b/docs/reference/interfaces/fieldapioptions.md index 7bae9d204..354a235fb 100644 --- a/docs/reference/interfaces/fieldapioptions.md +++ b/docs/reference/interfaces/fieldapioptions.md @@ -7,7 +7,7 @@ title: FieldApiOptions # Interface: FieldApiOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:450](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L450) +Defined in: [packages/form-core/src/FieldApi.ts:445](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L445) An object type representing the required options for the FieldApi class. @@ -19,7 +19,7 @@ An object type representing the required options for the FieldApi class. • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -63,7 +63,7 @@ An object type representing the required options for the FieldApi class. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) +Defined in: [packages/form-core/src/FieldApi.ts:392](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L392) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -79,7 +79,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) +Defined in: [packages/form-core/src/FieldApi.ts:388](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L388) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -95,7 +95,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L416) +Defined in: [packages/form-core/src/FieldApi.ts:411](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L411) An optional object with default metadata for the field. @@ -111,7 +111,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) +Defined in: [packages/form-core/src/FieldApi.ts:384](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L384) An optional default value for the field. @@ -127,7 +127,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L444) +Defined in: [packages/form-core/src/FieldApi.ts:439](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L439) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -143,7 +143,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:502](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L502) +Defined in: [packages/form-core/src/FieldApi.ts:497](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L497) *** @@ -153,7 +153,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:502](https://github.com/TanStack optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) +Defined in: [packages/form-core/src/FieldApi.ts:435](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L435) A list of listeners which attach to the corresponding events @@ -166,10 +166,10 @@ A list of listeners which attach to the corresponding events ### name ```ts -name: ValidateName; +name: TName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) +Defined in: [packages/form-core/src/FieldApi.ts:380](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L380) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -185,7 +185,7 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:401](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L401) +Defined in: [packages/form-core/src/FieldApi.ts:396](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L396) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldlisteners.md b/docs/reference/interfaces/fieldlisteners.md index 25989ffaf..673285508 100644 --- a/docs/reference/interfaces/fieldlisteners.md +++ b/docs/reference/interfaces/fieldlisteners.md @@ -7,13 +7,13 @@ title: FieldListeners # Interface: FieldListeners\ -Defined in: [packages/form-core/src/FieldApi.ts:350](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L350) +Defined in: [packages/form-core/src/FieldApi.ts:345](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L345) ## Type Parameters • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> = [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -25,7 +25,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:350](https://github.com/TanStack optional onBlur: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:356](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L356) +Defined in: [packages/form-core/src/FieldApi.ts:351](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L351) *** @@ -35,7 +35,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:356](https://github.com/TanStack optional onChange: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L355) +Defined in: [packages/form-core/src/FieldApi.ts:350](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L350) *** @@ -45,7 +45,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack optional onMount: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:357](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L357) +Defined in: [packages/form-core/src/FieldApi.ts:352](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L352) *** @@ -55,4 +55,4 @@ Defined in: [packages/form-core/src/FieldApi.ts:357](https://github.com/TanStack optional onSubmit: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:358](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L358) +Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L353) diff --git a/docs/reference/interfaces/fieldoptions.md b/docs/reference/interfaces/fieldoptions.md index c84168d40..bda9cd3cd 100644 --- a/docs/reference/interfaces/fieldoptions.md +++ b/docs/reference/interfaces/fieldoptions.md @@ -7,7 +7,7 @@ title: FieldOptions # Interface: FieldOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:364](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L364) +Defined in: [packages/form-core/src/FieldApi.ts:359](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L359) An object type representing the options for a field in a form. @@ -19,7 +19,7 @@ An object type representing the options for a field in a form. • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -45,7 +45,7 @@ An object type representing the options for a field in a form. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) +Defined in: [packages/form-core/src/FieldApi.ts:392](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L392) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -57,7 +57,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) +Defined in: [packages/form-core/src/FieldApi.ts:388](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L388) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -69,7 +69,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:416](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L416) +Defined in: [packages/form-core/src/FieldApi.ts:411](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L411) An optional object with default metadata for the field. @@ -81,7 +81,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) +Defined in: [packages/form-core/src/FieldApi.ts:384](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L384) An optional default value for the field. @@ -93,7 +93,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:444](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L444) +Defined in: [packages/form-core/src/FieldApi.ts:439](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L439) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -105,7 +105,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) +Defined in: [packages/form-core/src/FieldApi.ts:435](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L435) A list of listeners which attach to the corresponding events @@ -114,10 +114,10 @@ A list of listeners which attach to the corresponding events ### name ```ts -name: ValidateName; +name: TName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) +Defined in: [packages/form-core/src/FieldApi.ts:380](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L380) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -129,6 +129,6 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:401](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L401) +Defined in: [packages/form-core/src/FieldApi.ts:396](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L396) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldvalidators.md b/docs/reference/interfaces/fieldvalidators.md index 29d938bad..c9977e05a 100644 --- a/docs/reference/interfaces/fieldvalidators.md +++ b/docs/reference/interfaces/fieldvalidators.md @@ -7,13 +7,13 @@ title: FieldValidators # Interface: FieldValidators\ -Defined in: [packages/form-core/src/FieldApi.ts:269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L269) +Defined in: [packages/form-core/src/FieldApi.ts:264](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L264) ## Type Parameters • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](../type-aliases/deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](../type-aliases/deepvalue.md)\<`TParentData`, `TName`\> @@ -39,7 +39,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:269](https://github.com/TanStack optional onBlur: TOnBlur; ``` -Defined in: [packages/form-core/src/FieldApi.ts:318](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L318) +Defined in: [packages/form-core/src/FieldApi.ts:313](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L313) An optional function, that runs on the blur event of input. @@ -57,7 +57,7 @@ z.string().min(1) optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:324](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L324) +Defined in: [packages/form-core/src/FieldApi.ts:319](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L319) An optional property similar to `onBlur` but async validation. @@ -75,7 +75,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:331](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L331) +Defined in: [packages/form-core/src/FieldApi.ts:326](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L326) An optional number to represent how long the `onBlurAsync` should wait before running @@ -89,7 +89,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onBlurListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:335](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L335) +Defined in: [packages/form-core/src/FieldApi.ts:330](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L330) An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes @@ -101,7 +101,7 @@ An optional list of field names that should trigger this field's `onBlur` and `o optional onChange: TOnChange; ``` -Defined in: [packages/form-core/src/FieldApi.ts:296](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L296) +Defined in: [packages/form-core/src/FieldApi.ts:291](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L291) An optional function, that runs on the change event of input. @@ -119,7 +119,7 @@ z.string().min(1) optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:302](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L302) +Defined in: [packages/form-core/src/FieldApi.ts:297](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L297) An optional property similar to `onChange` but async validation @@ -137,7 +137,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:308](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L308) +Defined in: [packages/form-core/src/FieldApi.ts:303](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L303) An optional number to represent how long the `onChangeAsync` should wait before running @@ -151,7 +151,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onChangeListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:312](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L312) +Defined in: [packages/form-core/src/FieldApi.ts:307](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L307) An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes @@ -163,7 +163,7 @@ An optional list of field names that should trigger this field's `onChange` and optional onMount: TOnMount; ``` -Defined in: [packages/form-core/src/FieldApi.ts:290](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L290) +Defined in: [packages/form-core/src/FieldApi.ts:285](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L285) An optional function, that runs on the mount event of input. @@ -175,7 +175,7 @@ An optional function, that runs on the mount event of input. optional onSubmit: TOnSubmit; ``` -Defined in: [packages/form-core/src/FieldApi.ts:341](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L341) +Defined in: [packages/form-core/src/FieldApi.ts:336](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L336) An optional function, that runs on the submit event of form. @@ -193,7 +193,7 @@ z.string().min(1) optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:347](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L347) +Defined in: [packages/form-core/src/FieldApi.ts:342](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L342) An optional property similar to `onSubmit` but async validation. diff --git a/docs/reference/type-aliases/anyfieldapi.md b/docs/reference/type-aliases/anyfieldapi.md index 08853cb89..0e7517c21 100644 --- a/docs/reference/type-aliases/anyfieldapi.md +++ b/docs/reference/type-aliases/anyfieldapi.md @@ -11,6 +11,6 @@ title: AnyFieldApi type AnyFieldApi = FieldApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:815](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L815) +Defined in: [packages/form-core/src/FieldApi.ts:810](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L810) A type representing the Field API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/anyfieldmeta.md b/docs/reference/type-aliases/anyfieldmeta.md index 7eb934eca..c56d5697c 100644 --- a/docs/reference/type-aliases/anyfieldmeta.md +++ b/docs/reference/type-aliases/anyfieldmeta.md @@ -11,4 +11,4 @@ title: AnyFieldMeta type AnyFieldMeta = FieldMeta; ``` -Defined in: [packages/form-core/src/FieldApi.ts:734](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L734) +Defined in: [packages/form-core/src/FieldApi.ts:729](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L729) diff --git a/docs/reference/type-aliases/anyfieldmetabase.md b/docs/reference/type-aliases/anyfieldmetabase.md index 4a008df18..3eff60bb3 100644 --- a/docs/reference/type-aliases/anyfieldmetabase.md +++ b/docs/reference/type-aliases/anyfieldmetabase.md @@ -11,4 +11,4 @@ title: AnyFieldMetaBase type AnyFieldMetaBase = FieldMetaBase; ``` -Defined in: [packages/form-core/src/FieldApi.ts:571](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L571) +Defined in: [packages/form-core/src/FieldApi.ts:566](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L566) diff --git a/docs/reference/type-aliases/anyfieldmetaderived.md b/docs/reference/type-aliases/anyfieldmetaderived.md index b5af3f970..3c4820b09 100644 --- a/docs/reference/type-aliases/anyfieldmetaderived.md +++ b/docs/reference/type-aliases/anyfieldmetaderived.md @@ -11,4 +11,4 @@ title: AnyFieldMetaDerived type AnyFieldMetaDerived = FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L648) +Defined in: [packages/form-core/src/FieldApi.ts:643](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L643) diff --git a/docs/reference/type-aliases/constrainliteral.md b/docs/reference/type-aliases/constrainliteral.md index ccc700f03..c58ab19ff 100644 --- a/docs/reference/type-aliases/constrainliteral.md +++ b/docs/reference/type-aliases/constrainliteral.md @@ -11,7 +11,7 @@ title: ConstrainLiteral type ConstrainLiteral = T & TConstraint | TDefault; ``` -Defined in: [packages/form-core/src/util-types.ts:119](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L119) +Defined in: [packages/form-core/src/util-types.ts:114](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L114) ## Type Parameters diff --git a/docs/reference/type-aliases/deepvalue.md b/docs/reference/type-aliases/deepvalue.md index a64989ffb..8da691825 100644 --- a/docs/reference/type-aliases/deepvalue.md +++ b/docs/reference/type-aliases/deepvalue.md @@ -11,7 +11,7 @@ title: DeepValue type DeepValue = DeepKeysAndValues[TAccessor & keyof DeepKeysAndValues]; ``` -Defined in: [packages/form-core/src/util-types.ts:126](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L126) +Defined in: [packages/form-core/src/util-types.ts:121](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L121) Infer the type of a deeply nested property within an object or an array. diff --git a/docs/reference/type-aliases/fieldmeta.md b/docs/reference/type-aliases/fieldmeta.md index 03601d172..e705bc65e 100644 --- a/docs/reference/type-aliases/fieldmeta.md +++ b/docs/reference/type-aliases/fieldmeta.md @@ -11,7 +11,7 @@ title: FieldMeta type FieldMeta = FieldMetaBase & FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:671](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L671) +Defined in: [packages/form-core/src/FieldApi.ts:666](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L666) An object type representing the metadata of a field in a form. @@ -19,7 +19,7 @@ An object type representing the metadata of a field in a form. • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/fieldmetabase.md b/docs/reference/type-aliases/fieldmetabase.md index c0b8434de..e101a2e0c 100644 --- a/docs/reference/type-aliases/fieldmetabase.md +++ b/docs/reference/type-aliases/fieldmetabase.md @@ -11,13 +11,13 @@ title: FieldMetaBase type FieldMetaBase = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:516](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L516) +Defined in: [packages/form-core/src/FieldApi.ts:511](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L511) ## Type Parameters • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/fieldmetaderived.md b/docs/reference/type-aliases/fieldmetaderived.md index 3346e35dd..99db3d24d 100644 --- a/docs/reference/type-aliases/fieldmetaderived.md +++ b/docs/reference/type-aliases/fieldmetaderived.md @@ -11,13 +11,13 @@ title: FieldMetaDerived type FieldMetaDerived = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:591](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L591) +Defined in: [packages/form-core/src/FieldApi.ts:586](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L586) ## Type Parameters • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/fieldstate.md b/docs/reference/type-aliases/fieldstate.md index 41bbcb2a5..b886a1e8c 100644 --- a/docs/reference/type-aliases/fieldstate.md +++ b/docs/reference/type-aliases/fieldstate.md @@ -11,7 +11,7 @@ title: FieldState type FieldState = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:757](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L757) +Defined in: [packages/form-core/src/FieldApi.ts:752](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L752) An object type representing the state of a field. @@ -19,7 +19,7 @@ An object type representing the state of a field. • **TParentData** -• **TName** *extends* `string` +• **TName** *extends* [`DeepKeys`](deepkeys.md)\<`TParentData`\> • **TData** *extends* [`DeepValue`](deepvalue.md)\<`TParentData`, `TName`\> diff --git a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md index f03216626..3d70767c0 100644 --- a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md +++ b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md @@ -14,7 +14,7 @@ type UnwrapFieldAsyncValidateOrFn = | [TValidateOrFn] extends [FieldValidateAsyncFn] ? Awaited> : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:207](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L207) +Defined in: [packages/form-core/src/FieldApi.ts:202](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L202) ## Type Parameters diff --git a/docs/reference/type-aliases/unwrapfieldvalidateorfn.md b/docs/reference/type-aliases/unwrapfieldvalidateorfn.md index 6c58f8eb3..d212cc216 100644 --- a/docs/reference/type-aliases/unwrapfieldvalidateorfn.md +++ b/docs/reference/type-aliases/unwrapfieldvalidateorfn.md @@ -14,7 +14,7 @@ type UnwrapFieldValidateOrFn = | [TValidateOrFn] extends [FieldValidateFn] ? ReturnType : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L125) +Defined in: [packages/form-core/src/FieldApi.ts:120](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L120) ## Type Parameters diff --git a/docs/reference/type-aliases/validatename.md b/docs/reference/type-aliases/validatename.md deleted file mode 100644 index 81836fee5..000000000 --- a/docs/reference/type-aliases/validatename.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: ValidateName -title: ValidateName ---- - - - -# Type Alias: ValidateName\ - -```ts -type ValidateName = ConstrainLiteral>; -``` - -Defined in: [packages/form-core/src/util-types.ts:114](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L114) - -## Type Parameters - -• **T** - -• **TName** *extends* `string` diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index c67c7889b..64afb32e1 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -4,11 +4,7 @@ import { standardSchemaValidators, } from './standardSchemaValidator' import { getAsyncValidatorArray, getBy, getSyncValidatorArray } from './utils' -import type { - DeepKeys, - DeepValue, - UnwrapOneLevelOfArray, -} from './util-types' +import type { DeepKeys, DeepValue, UnwrapOneLevelOfArray } from './util-types' import type { StandardSchemaV1, StandardSchemaV1Issue, diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index fcba6b385..ecf624e77 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -1809,7 +1809,7 @@ export class FormApi< } insertFieldValue = async >( - field:TField, + field: TField, index: number, value: DeepValue extends any[] ? DeepValue[number] diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index bcbed9cc5..bdb8da5a1 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -111,7 +111,6 @@ export type DeepKeys = unknown extends T ? string : keyof DeepKeysAndValues & string - export type ConstrainLiteral = | (T & TConstraint) | TDefault From ad978f0d703d1a3957ef0a64b1af90cd5f3b6d2a Mon Sep 17 00:00:00 2001 From: chorobin Date: Tue, 11 Mar 2025 00:22:46 +0100 Subject: [PATCH 17/25] chore: cleanup --- packages/form-core/src/FieldApi.ts | 10 +++++----- packages/form-core/src/FormApi.ts | 10 +++++----- packages/form-core/src/metaHelper.ts | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index c67c7889b..f6917039c 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -53,7 +53,7 @@ type FieldErrorMapFromValidator< | FieldAsyncValidateOrFn, > = Partial< Record< - DeepKeys & string, + DeepKeys, ValidationErrorMap< TOnMount, TOnChange, @@ -1005,7 +1005,7 @@ export class FieldApi< this.store = new Derived({ deps: [this.form.store], fn: () => { - const value = this.form.getFieldValue(this.name as string) + const value = this.form.getFieldValue(this.name) const meta = this.form.getFieldMeta(this.name) ?? { isValidating: false, isTouched: false, @@ -1169,7 +1169,7 @@ export class FieldApi< * @deprecated Use `field.state.value` instead. */ getValue = (): TData => { - return this.form.getFieldValue(this.name as string) as TData + return this.form.getFieldValue(this.name) as TData } /** @@ -1316,7 +1316,7 @@ export class FieldApi< field.instance.options.validators || {} if ( cause === 'change' && - onChangeListenTo?.includes(this.name as string) + onChangeListenTo?.includes(this.name) ) { linkedFields.push(field.instance) } @@ -1602,7 +1602,7 @@ export class FieldApi< : this.form.validateSync(cause) const { hasErrored } = this.validateSync( cause, - (fieldsErrorMap[this.name] ?? {}) as ValidationErrorMap, + fieldsErrorMap[this.name] ?? {}, ) if (hasErrored && !this.options.asyncAlways) { diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index fcba6b385..ced4b9d08 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -48,7 +48,7 @@ type FormErrorMapFromValidator< TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, > = Partial< Record< - DeepKeys & string, + DeepKeys, ValidationErrorMap< TOnMount, TOnChange, @@ -1187,7 +1187,7 @@ export class FormApi< /** * Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type. */ - validateArrayFieldsStartingFrom = async ( + validateArrayFieldsStartingFrom = async >( field: TField, index: number, cause: ValidationCause, @@ -1662,7 +1662,7 @@ export class FormApi< /** * Gets the value of the specified field. */ - getFieldValue = ( + getFieldValue = >( field: TField, ): DeepValue => getBy(this.state.values, field) @@ -1715,7 +1715,7 @@ export class FormApi< }) } - resetFieldMeta = ( + resetFieldMeta = >( fieldMeta: Record, ): Record => { return Object.keys(fieldMeta).reduce( @@ -1769,7 +1769,7 @@ export class FormApi< }) } - deleteField = (field: TField) => { + deleteField = >(field: TField) => { const subFieldsToDelete = Object.keys(this.fieldInfo).filter((f) => { const fieldStr = field.toString() return f !== fieldStr && f.startsWith(fieldStr) diff --git a/packages/form-core/src/metaHelper.ts b/packages/form-core/src/metaHelper.ts index 84a14bd76..bf955640f 100644 --- a/packages/form-core/src/metaHelper.ts +++ b/packages/form-core/src/metaHelper.ts @@ -107,7 +107,7 @@ export function metaHelper< sortedFields.forEach((fieldKey) => { const nextFieldKey = updateIndex( - (fieldKey as string).toString(), + fieldKey.toString(), direction, ) const nextFieldMeta = formApi.getFieldMeta(nextFieldKey) From 9122d4ebd842cfc376a407bd509a180c19669bc7 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 23:24:29 +0000 Subject: [PATCH 18/25] ci: apply automated fixes and generate docs --- docs/reference/classes/fieldapi.md | 8 ++++---- packages/form-core/src/FieldApi.ts | 5 +---- packages/form-core/src/metaHelper.ts | 5 +---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/docs/reference/classes/fieldapi.md b/docs/reference/classes/fieldapi.md index f9d4c154b..d8c937151 100644 --- a/docs/reference/classes/fieldapi.md +++ b/docs/reference/classes/fieldapi.md @@ -213,7 +213,7 @@ Use `field.state.value` instead. handleBlur(): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1628](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1628) +Defined in: [packages/form-core/src/FieldApi.ts:1625](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1625) Handles the blur event. @@ -229,7 +229,7 @@ Handles the blur event. handleChange(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1621](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1621) +Defined in: [packages/form-core/src/FieldApi.ts:1618](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1618) Handles the change event. @@ -422,7 +422,7 @@ Replaces a value at the specified index. setErrorMap(errorMap): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1648](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1648) +Defined in: [packages/form-core/src/FieldApi.ts:1645](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1645) Updates the field's errorMap @@ -547,7 +547,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise ``` -Defined in: [packages/form-core/src/FieldApi.ts:1588](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1588) +Defined in: [packages/form-core/src/FieldApi.ts:1585](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1585) Validates the field value. diff --git a/packages/form-core/src/FieldApi.ts b/packages/form-core/src/FieldApi.ts index 3df7ccdad..5488908c5 100644 --- a/packages/form-core/src/FieldApi.ts +++ b/packages/form-core/src/FieldApi.ts @@ -1310,10 +1310,7 @@ export class FieldApi< if (!field.instance) continue const { onChangeListenTo, onBlurListenTo } = field.instance.options.validators || {} - if ( - cause === 'change' && - onChangeListenTo?.includes(this.name) - ) { + if (cause === 'change' && onChangeListenTo?.includes(this.name)) { linkedFields.push(field.instance) } if (cause === 'blur' && onBlurListenTo?.includes(this.name as string)) { diff --git a/packages/form-core/src/metaHelper.ts b/packages/form-core/src/metaHelper.ts index bf955640f..7860c195d 100644 --- a/packages/form-core/src/metaHelper.ts +++ b/packages/form-core/src/metaHelper.ts @@ -106,10 +106,7 @@ export function metaHelper< const sortedFields = direction === 'up' ? fields : [...fields].reverse() sortedFields.forEach((fieldKey) => { - const nextFieldKey = updateIndex( - fieldKey.toString(), - direction, - ) + const nextFieldKey = updateIndex(fieldKey.toString(), direction) const nextFieldMeta = formApi.getFieldMeta(nextFieldKey) if (nextFieldMeta) { formApi.setFieldMeta(fieldKey, nextFieldMeta) From 80f78590e2458b96201f0e8cdce6441623708d48 Mon Sep 17 00:00:00 2001 From: chorobin Date: Wed, 12 Mar 2025 01:01:47 +0100 Subject: [PATCH 19/25] refactor: use mapped type instead of union to intersection --- packages/form-core/src/util-types.ts | 60 +++++++++++++++------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index bdb8da5a1..4e6488126 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -25,11 +25,11 @@ export type ArrayAccessor = | `${TPrefix}[${number}]` | `${TPrefix}[number]` -export type DeepKeysAndValuesArrayUnion< +export type DeepRecordArrayUnion< T extends ReadonlyArray, TPrefix extends string, TAcc, -> = DeepKeysAndValuesUnion< +> = DeepRecordUnion< T[number], ArrayAccessor, TAcc | Record, T[number]> @@ -42,13 +42,13 @@ export type TupleAccessor< export type AllTupleKeys = T extends any ? keyof T & `${number}` : never -export type DeepKeysAndValuesTupleUnion< +export type DeepRecordTupleUnion< T extends ReadonlyArray, TPrefix extends string, TAcc, TAllKeys extends AllTupleKeys = AllTupleKeys, > = TAllKeys extends any - ? DeepKeysAndValuesUnion< + ? DeepRecordUnion< T[TAllKeys], TupleAccessor, TAcc | Record, T[TAllKeys]> @@ -64,59 +64,63 @@ export type ObjectAccessor< TKey extends string | number, > = TPrefix extends '' ? `${TKey}` : `${TPrefix}.${TKey}` -export type DeepKeysAndValuesObjectUnion< +export type DeepRecordObjectUnion< T, TPrefix extends string, TAcc, TAllKeys extends AllObjectKeys = AllObjectKeys, > = TAllKeys extends any - ? DeepKeysAndValuesUnion< + ? DeepRecordUnion< T[TAllKeys], ObjectAccessor, TAcc | Record, T[TAllKeys]> > : never -export type DeepKeysAndValuesUnion< - T, - TPrefix extends string = '', - TAcc = never, -> = +export type DeepRecordUnion = IsAny extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray ? number extends T['length'] - ? DeepKeysAndValuesArrayUnion - : DeepKeysAndValuesTupleUnion + ? DeepRecordArrayUnion + : DeepRecordTupleUnion : T extends object - ? DeepKeysAndValuesObjectUnion + ? DeepRecordObjectUnion : TAcc -export type UnionToIntersection = ( - T extends any ? (param: T) => any : never -) extends (param: infer TI) => any - ? TI +export type DeepRecordKeys< + T, + TRecord = DeepRecordUnion, +> = TRecord extends any ? keyof TRecord : never + +export type DeepRecordValues< + T, + TKey, + TRecord = DeepRecordUnion, +> = TRecord extends any + ? TKey extends keyof TRecord + ? TRecord[TKey & keyof TRecord] + : never : never -export type DeepKeysAndValues = UnionToIntersection< - DeepKeysAndValuesUnion -> +export type DeepRecord = + IsAny extends true + ? T + : { + [TKey in DeepRecordKeys]: DeepRecordValues + } /** * The keys of an object or array, deeply nested. */ export type DeepKeys = unknown extends T ? string - : keyof DeepKeysAndValues & string - -export type ConstrainLiteral = - | (T & TConstraint) - | TDefault + : keyof DeepRecord & string /** * Infer the type of a deeply nested property within an object or an array. */ -export type DeepValue = DeepKeysAndValues[TAccessor & - keyof DeepKeysAndValues] +export type DeepValue = DeepRecord[TAccessor & + keyof DeepRecord] From 58f5d7394fdb503f432f1e27a0ebd41751711331 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 12 Mar 2025 00:04:27 +0000 Subject: [PATCH 20/25] ci: apply automated fixes and generate docs --- docs/reference/index.md | 14 ++++++------ .../type-aliases/constrainliteral.md | 22 ------------------- docs/reference/type-aliases/deepkeys.md | 4 ++-- .../type-aliases/deepkeysandvalues.md | 18 --------------- .../type-aliases/deepkeysandvaluesunion.md | 22 ------------------- docs/reference/type-aliases/deeprecord.md | 18 +++++++++++++++ ...sarrayunion.md => deeprecordarrayunion.md} | 8 +++---- docs/reference/type-aliases/deeprecordkeys.md | 20 +++++++++++++++++ ...bjectunion.md => deeprecordobjectunion.md} | 8 +++---- ...stupleunion.md => deeprecordtupleunion.md} | 8 +++---- .../reference/type-aliases/deeprecordunion.md | 22 +++++++++++++++++++ .../type-aliases/deeprecordvalues.md | 22 +++++++++++++++++++ docs/reference/type-aliases/deepvalue.md | 4 ++-- .../type-aliases/uniontointersection.md | 18 --------------- 14 files changed, 105 insertions(+), 103 deletions(-) delete mode 100644 docs/reference/type-aliases/constrainliteral.md delete mode 100644 docs/reference/type-aliases/deepkeysandvalues.md delete mode 100644 docs/reference/type-aliases/deepkeysandvaluesunion.md create mode 100644 docs/reference/type-aliases/deeprecord.md rename docs/reference/type-aliases/{deepkeysandvaluesarrayunion.md => deeprecordarrayunion.md} (62%) create mode 100644 docs/reference/type-aliases/deeprecordkeys.md rename docs/reference/type-aliases/{deepkeysandvaluesobjectunion.md => deeprecordobjectunion.md} (62%) rename docs/reference/type-aliases/{deepkeysandvaluestupleunion.md => deeprecordtupleunion.md} (64%) create mode 100644 docs/reference/type-aliases/deeprecordunion.md create mode 100644 docs/reference/type-aliases/deeprecordvalues.md delete mode 100644 docs/reference/type-aliases/uniontointersection.md diff --git a/docs/reference/index.md b/docs/reference/index.md index e6e64dc0e..84fae5d75 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -35,13 +35,14 @@ title: "@tanstack/form-core" - [AnyFormState](type-aliases/anyformstate.md) - [ArrayAccessor](type-aliases/arrayaccessor.md) - [BaseFormState](type-aliases/baseformstate.md) -- [ConstrainLiteral](type-aliases/constrainliteral.md) - [DeepKeys](type-aliases/deepkeys.md) -- [DeepKeysAndValues](type-aliases/deepkeysandvalues.md) -- [DeepKeysAndValuesArrayUnion](type-aliases/deepkeysandvaluesarrayunion.md) -- [DeepKeysAndValuesObjectUnion](type-aliases/deepkeysandvaluesobjectunion.md) -- [DeepKeysAndValuesTupleUnion](type-aliases/deepkeysandvaluestupleunion.md) -- [DeepKeysAndValuesUnion](type-aliases/deepkeysandvaluesunion.md) +- [DeepRecord](type-aliases/deeprecord.md) +- [DeepRecordArrayUnion](type-aliases/deeprecordarrayunion.md) +- [DeepRecordKeys](type-aliases/deeprecordkeys.md) +- [DeepRecordObjectUnion](type-aliases/deeprecordobjectunion.md) +- [DeepRecordTupleUnion](type-aliases/deeprecordtupleunion.md) +- [DeepRecordUnion](type-aliases/deeprecordunion.md) +- [DeepRecordValues](type-aliases/deeprecordvalues.md) - [DeepValue](type-aliases/deepvalue.md) - [DerivedFormState](type-aliases/derivedformstate.md) - [FieldInfo](type-aliases/fieldinfo.md) @@ -56,7 +57,6 @@ title: "@tanstack/form-core" - [StandardSchemaV1](type-aliases/standardschemav1.md) - [TStandardSchemaValidatorValue](type-aliases/tstandardschemavalidatorvalue.md) - [TupleAccessor](type-aliases/tupleaccessor.md) -- [UnionToIntersection](type-aliases/uniontointersection.md) - [UnwrapFieldAsyncValidateOrFn](type-aliases/unwrapfieldasyncvalidateorfn.md) - [UnwrapFieldValidateOrFn](type-aliases/unwrapfieldvalidateorfn.md) - [UnwrapFormAsyncValidateOrFn](type-aliases/unwrapformasyncvalidateorfn.md) diff --git a/docs/reference/type-aliases/constrainliteral.md b/docs/reference/type-aliases/constrainliteral.md deleted file mode 100644 index c58ab19ff..000000000 --- a/docs/reference/type-aliases/constrainliteral.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: ConstrainLiteral -title: ConstrainLiteral ---- - - - -# Type Alias: ConstrainLiteral\ - -```ts -type ConstrainLiteral = T & TConstraint | TDefault; -``` - -Defined in: [packages/form-core/src/util-types.ts:114](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L114) - -## Type Parameters - -• **T** - -• **TConstraint** - -• **TDefault** = `TConstraint` diff --git a/docs/reference/type-aliases/deepkeys.md b/docs/reference/type-aliases/deepkeys.md index fd15d86d5..14961de74 100644 --- a/docs/reference/type-aliases/deepkeys.md +++ b/docs/reference/type-aliases/deepkeys.md @@ -8,10 +8,10 @@ title: DeepKeys # Type Alias: DeepKeys\ ```ts -type DeepKeys = unknown extends T ? string : keyof DeepKeysAndValues & string; +type DeepKeys = unknown extends T ? string : keyof DeepRecord & string; ``` -Defined in: [packages/form-core/src/util-types.ts:110](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L110) +Defined in: [packages/form-core/src/util-types.ts:118](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L118) The keys of an object or array, deeply nested. diff --git a/docs/reference/type-aliases/deepkeysandvalues.md b/docs/reference/type-aliases/deepkeysandvalues.md deleted file mode 100644 index 495cff86d..000000000 --- a/docs/reference/type-aliases/deepkeysandvalues.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: DeepKeysAndValues -title: DeepKeysAndValues ---- - - - -# Type Alias: DeepKeysAndValues\ - -```ts -type DeepKeysAndValues = UnionToIntersection>; -``` - -Defined in: [packages/form-core/src/util-types.ts:103](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L103) - -## Type Parameters - -• **T** diff --git a/docs/reference/type-aliases/deepkeysandvaluesunion.md b/docs/reference/type-aliases/deepkeysandvaluesunion.md deleted file mode 100644 index 4b13af303..000000000 --- a/docs/reference/type-aliases/deepkeysandvaluesunion.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: DeepKeysAndValuesUnion -title: DeepKeysAndValuesUnion ---- - - - -# Type Alias: DeepKeysAndValuesUnion\ - -```ts -type DeepKeysAndValuesUnion = IsAny extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray ? number extends T["length"] ? DeepKeysAndValuesArrayUnion : DeepKeysAndValuesTupleUnion : T extends object ? DeepKeysAndValuesObjectUnion : TAcc; -``` - -Defined in: [packages/form-core/src/util-types.ts:80](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L80) - -## Type Parameters - -• **T** - -• **TPrefix** *extends* `string` = `""` - -• **TAcc** = `never` diff --git a/docs/reference/type-aliases/deeprecord.md b/docs/reference/type-aliases/deeprecord.md new file mode 100644 index 000000000..523fd4c5c --- /dev/null +++ b/docs/reference/type-aliases/deeprecord.md @@ -0,0 +1,18 @@ +--- +id: DeepRecord +title: DeepRecord +--- + + + +# Type Alias: DeepRecord\ + +```ts +type DeepRecord = IsAny extends true ? T : { [TKey in DeepRecordKeys]: DeepRecordValues }; +``` + +Defined in: [packages/form-core/src/util-types.ts:108](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L108) + +## Type Parameters + +• **T** diff --git a/docs/reference/type-aliases/deepkeysandvaluesarrayunion.md b/docs/reference/type-aliases/deeprecordarrayunion.md similarity index 62% rename from docs/reference/type-aliases/deepkeysandvaluesarrayunion.md rename to docs/reference/type-aliases/deeprecordarrayunion.md index 55f6968f5..d50e376f5 100644 --- a/docs/reference/type-aliases/deepkeysandvaluesarrayunion.md +++ b/docs/reference/type-aliases/deeprecordarrayunion.md @@ -1,14 +1,14 @@ --- -id: DeepKeysAndValuesArrayUnion -title: DeepKeysAndValuesArrayUnion +id: DeepRecordArrayUnion +title: DeepRecordArrayUnion --- -# Type Alias: DeepKeysAndValuesArrayUnion\ +# Type Alias: DeepRecordArrayUnion\ ```ts -type DeepKeysAndValuesArrayUnion = DeepKeysAndValuesUnion, +type DeepRecordArrayUnion = DeepRecordUnion, | TAcc | Record, T[number]>>; ``` diff --git a/docs/reference/type-aliases/deeprecordkeys.md b/docs/reference/type-aliases/deeprecordkeys.md new file mode 100644 index 000000000..b1b457bd7 --- /dev/null +++ b/docs/reference/type-aliases/deeprecordkeys.md @@ -0,0 +1,20 @@ +--- +id: DeepRecordKeys +title: DeepRecordKeys +--- + + + +# Type Alias: DeepRecordKeys\ + +```ts +type DeepRecordKeys = TRecord extends any ? keyof TRecord : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:93](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L93) + +## Type Parameters + +• **T** + +• **TRecord** = [`DeepRecordUnion`](deeprecordunion.md)\<`T`\> diff --git a/docs/reference/type-aliases/deepkeysandvaluesobjectunion.md b/docs/reference/type-aliases/deeprecordobjectunion.md similarity index 62% rename from docs/reference/type-aliases/deepkeysandvaluesobjectunion.md rename to docs/reference/type-aliases/deeprecordobjectunion.md index f541e57ec..122dbac9f 100644 --- a/docs/reference/type-aliases/deepkeysandvaluesobjectunion.md +++ b/docs/reference/type-aliases/deeprecordobjectunion.md @@ -1,14 +1,14 @@ --- -id: DeepKeysAndValuesObjectUnion -title: DeepKeysAndValuesObjectUnion +id: DeepRecordObjectUnion +title: DeepRecordObjectUnion --- -# Type Alias: DeepKeysAndValuesObjectUnion\ +# Type Alias: DeepRecordObjectUnion\ ```ts -type DeepKeysAndValuesObjectUnion = TAllKeys extends any ? DeepKeysAndValuesUnion, +type DeepRecordObjectUnion = TAllKeys extends any ? DeepRecordUnion, | TAcc | Record, T[TAllKeys]>> : never; ``` diff --git a/docs/reference/type-aliases/deepkeysandvaluestupleunion.md b/docs/reference/type-aliases/deeprecordtupleunion.md similarity index 64% rename from docs/reference/type-aliases/deepkeysandvaluestupleunion.md rename to docs/reference/type-aliases/deeprecordtupleunion.md index 328c1d022..129e12c75 100644 --- a/docs/reference/type-aliases/deepkeysandvaluestupleunion.md +++ b/docs/reference/type-aliases/deeprecordtupleunion.md @@ -1,14 +1,14 @@ --- -id: DeepKeysAndValuesTupleUnion -title: DeepKeysAndValuesTupleUnion +id: DeepRecordTupleUnion +title: DeepRecordTupleUnion --- -# Type Alias: DeepKeysAndValuesTupleUnion\ +# Type Alias: DeepRecordTupleUnion\ ```ts -type DeepKeysAndValuesTupleUnion = TAllKeys extends any ? DeepKeysAndValuesUnion, +type DeepRecordTupleUnion = TAllKeys extends any ? DeepRecordUnion, | TAcc | Record, T[TAllKeys]>> : never; ``` diff --git a/docs/reference/type-aliases/deeprecordunion.md b/docs/reference/type-aliases/deeprecordunion.md new file mode 100644 index 000000000..62ae53987 --- /dev/null +++ b/docs/reference/type-aliases/deeprecordunion.md @@ -0,0 +1,22 @@ +--- +id: DeepRecordUnion +title: DeepRecordUnion +--- + + + +# Type Alias: DeepRecordUnion\ + +```ts +type DeepRecordUnion = IsAny extends true ? T : T extends string | number | boolean | bigint | Date ? TAcc : T extends ReadonlyArray ? number extends T["length"] ? DeepRecordArrayUnion : DeepRecordTupleUnion : T extends object ? DeepRecordObjectUnion : TAcc; +``` + +Defined in: [packages/form-core/src/util-types.ts:80](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L80) + +## Type Parameters + +• **T** + +• **TPrefix** *extends* `string` = `""` + +• **TAcc** = `never` diff --git a/docs/reference/type-aliases/deeprecordvalues.md b/docs/reference/type-aliases/deeprecordvalues.md new file mode 100644 index 000000000..9cfaaa97a --- /dev/null +++ b/docs/reference/type-aliases/deeprecordvalues.md @@ -0,0 +1,22 @@ +--- +id: DeepRecordValues +title: DeepRecordValues +--- + + + +# Type Alias: DeepRecordValues\ + +```ts +type DeepRecordValues = TRecord extends any ? TKey extends keyof TRecord ? TRecord[TKey & keyof TRecord] : never : never; +``` + +Defined in: [packages/form-core/src/util-types.ts:98](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L98) + +## Type Parameters + +• **T** + +• **TKey** + +• **TRecord** = [`DeepRecordUnion`](deeprecordunion.md)\<`T`\> diff --git a/docs/reference/type-aliases/deepvalue.md b/docs/reference/type-aliases/deepvalue.md index 8da691825..0a8caa8c0 100644 --- a/docs/reference/type-aliases/deepvalue.md +++ b/docs/reference/type-aliases/deepvalue.md @@ -8,10 +8,10 @@ title: DeepValue # Type Alias: DeepValue\ ```ts -type DeepValue = DeepKeysAndValues[TAccessor & keyof DeepKeysAndValues]; +type DeepValue = DeepRecord[TAccessor & keyof DeepRecord]; ``` -Defined in: [packages/form-core/src/util-types.ts:121](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L121) +Defined in: [packages/form-core/src/util-types.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L125) Infer the type of a deeply nested property within an object or an array. diff --git a/docs/reference/type-aliases/uniontointersection.md b/docs/reference/type-aliases/uniontointersection.md deleted file mode 100644 index 06393c5fa..000000000 --- a/docs/reference/type-aliases/uniontointersection.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: UnionToIntersection -title: UnionToIntersection ---- - - - -# Type Alias: UnionToIntersection\ - -```ts -type UnionToIntersection = T extends any ? (param) => any : never extends (param) => any ? TI : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:97](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L97) - -## Type Parameters - -• **T** From 82473c18918d7139da52e476b0cdb1624014d1f3 Mon Sep 17 00:00:00 2001 From: chorobin Date: Wed, 12 Mar 2025 01:27:50 +0100 Subject: [PATCH 21/25] chore: fix build --- packages/form-core/src/util-types.ts | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index 4e6488126..70a4983c1 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -90,27 +90,13 @@ export type DeepRecordUnion = ? DeepRecordObjectUnion : TAcc -export type DeepRecordKeys< - T, - TRecord = DeepRecordUnion, -> = TRecord extends any ? keyof TRecord : never - -export type DeepRecordValues< - T, - TKey, - TRecord = DeepRecordUnion, -> = TRecord extends any - ? TKey extends keyof TRecord - ? TRecord[TKey & keyof TRecord] - : never +export type UnionToIntersection = ( + T extends any ? (param: T) => any : never +) extends (param: infer TI) => any + ? TI : never -export type DeepRecord = - IsAny extends true - ? T - : { - [TKey in DeepRecordKeys]: DeepRecordValues - } +export type DeepRecord = UnionToIntersection> /** * The keys of an object or array, deeply nested. From 22bf0d2a845ebbe908574830f5db65e2723884c0 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 12 Mar 2025 00:28:58 +0000 Subject: [PATCH 22/25] ci: apply automated fixes and generate docs --- docs/reference/index.md | 3 +-- docs/reference/type-aliases/deepkeys.md | 2 +- docs/reference/type-aliases/deeprecord.md | 4 ++-- .../type-aliases/deeprecordvalues.md | 22 ------------------- docs/reference/type-aliases/deepvalue.md | 2 +- ...eprecordkeys.md => uniontointersection.md} | 10 ++++----- 6 files changed, 9 insertions(+), 34 deletions(-) delete mode 100644 docs/reference/type-aliases/deeprecordvalues.md rename docs/reference/type-aliases/{deeprecordkeys.md => uniontointersection.md} (53%) diff --git a/docs/reference/index.md b/docs/reference/index.md index 84fae5d75..8a5914f41 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -38,11 +38,9 @@ title: "@tanstack/form-core" - [DeepKeys](type-aliases/deepkeys.md) - [DeepRecord](type-aliases/deeprecord.md) - [DeepRecordArrayUnion](type-aliases/deeprecordarrayunion.md) -- [DeepRecordKeys](type-aliases/deeprecordkeys.md) - [DeepRecordObjectUnion](type-aliases/deeprecordobjectunion.md) - [DeepRecordTupleUnion](type-aliases/deeprecordtupleunion.md) - [DeepRecordUnion](type-aliases/deeprecordunion.md) -- [DeepRecordValues](type-aliases/deeprecordvalues.md) - [DeepValue](type-aliases/deepvalue.md) - [DerivedFormState](type-aliases/derivedformstate.md) - [FieldInfo](type-aliases/fieldinfo.md) @@ -57,6 +55,7 @@ title: "@tanstack/form-core" - [StandardSchemaV1](type-aliases/standardschemav1.md) - [TStandardSchemaValidatorValue](type-aliases/tstandardschemavalidatorvalue.md) - [TupleAccessor](type-aliases/tupleaccessor.md) +- [UnionToIntersection](type-aliases/uniontointersection.md) - [UnwrapFieldAsyncValidateOrFn](type-aliases/unwrapfieldasyncvalidateorfn.md) - [UnwrapFieldValidateOrFn](type-aliases/unwrapfieldvalidateorfn.md) - [UnwrapFormAsyncValidateOrFn](type-aliases/unwrapformasyncvalidateorfn.md) diff --git a/docs/reference/type-aliases/deepkeys.md b/docs/reference/type-aliases/deepkeys.md index 14961de74..e3d04152a 100644 --- a/docs/reference/type-aliases/deepkeys.md +++ b/docs/reference/type-aliases/deepkeys.md @@ -11,7 +11,7 @@ title: DeepKeys type DeepKeys = unknown extends T ? string : keyof DeepRecord & string; ``` -Defined in: [packages/form-core/src/util-types.ts:118](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L118) +Defined in: [packages/form-core/src/util-types.ts:104](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L104) The keys of an object or array, deeply nested. diff --git a/docs/reference/type-aliases/deeprecord.md b/docs/reference/type-aliases/deeprecord.md index 523fd4c5c..d612accb4 100644 --- a/docs/reference/type-aliases/deeprecord.md +++ b/docs/reference/type-aliases/deeprecord.md @@ -8,10 +8,10 @@ title: DeepRecord # Type Alias: DeepRecord\ ```ts -type DeepRecord = IsAny extends true ? T : { [TKey in DeepRecordKeys]: DeepRecordValues }; +type DeepRecord = UnionToIntersection>; ``` -Defined in: [packages/form-core/src/util-types.ts:108](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L108) +Defined in: [packages/form-core/src/util-types.ts:99](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L99) ## Type Parameters diff --git a/docs/reference/type-aliases/deeprecordvalues.md b/docs/reference/type-aliases/deeprecordvalues.md deleted file mode 100644 index 9cfaaa97a..000000000 --- a/docs/reference/type-aliases/deeprecordvalues.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -id: DeepRecordValues -title: DeepRecordValues ---- - - - -# Type Alias: DeepRecordValues\ - -```ts -type DeepRecordValues = TRecord extends any ? TKey extends keyof TRecord ? TRecord[TKey & keyof TRecord] : never : never; -``` - -Defined in: [packages/form-core/src/util-types.ts:98](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L98) - -## Type Parameters - -• **T** - -• **TKey** - -• **TRecord** = [`DeepRecordUnion`](deeprecordunion.md)\<`T`\> diff --git a/docs/reference/type-aliases/deepvalue.md b/docs/reference/type-aliases/deepvalue.md index 0a8caa8c0..75d5e88da 100644 --- a/docs/reference/type-aliases/deepvalue.md +++ b/docs/reference/type-aliases/deepvalue.md @@ -11,7 +11,7 @@ title: DeepValue type DeepValue = DeepRecord[TAccessor & keyof DeepRecord]; ``` -Defined in: [packages/form-core/src/util-types.ts:125](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L125) +Defined in: [packages/form-core/src/util-types.ts:111](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L111) Infer the type of a deeply nested property within an object or an array. diff --git a/docs/reference/type-aliases/deeprecordkeys.md b/docs/reference/type-aliases/uniontointersection.md similarity index 53% rename from docs/reference/type-aliases/deeprecordkeys.md rename to docs/reference/type-aliases/uniontointersection.md index b1b457bd7..f00b10217 100644 --- a/docs/reference/type-aliases/deeprecordkeys.md +++ b/docs/reference/type-aliases/uniontointersection.md @@ -1,14 +1,14 @@ --- -id: DeepRecordKeys -title: DeepRecordKeys +id: UnionToIntersection +title: UnionToIntersection --- -# Type Alias: DeepRecordKeys\ +# Type Alias: UnionToIntersection\ ```ts -type DeepRecordKeys = TRecord extends any ? keyof TRecord : never; +type UnionToIntersection = T extends any ? (param) => any : never extends (param) => any ? TI : never; ``` Defined in: [packages/form-core/src/util-types.ts:93](https://github.com/TanStack/form/blob/main/packages/form-core/src/util-types.ts#L93) @@ -16,5 +16,3 @@ Defined in: [packages/form-core/src/util-types.ts:93](https://github.com/TanStac ## Type Parameters • **T** - -• **TRecord** = [`DeepRecordUnion`](deeprecordunion.md)\<`T`\> From 326084b5e897afb9a25ebd1a3c8198cec776c7f5 Mon Sep 17 00:00:00 2001 From: chorobin Date: Sun, 30 Mar 2025 22:46:05 +0200 Subject: [PATCH 23/25] chore: change back to 'name' --- packages/form-core/tests/FieldApi.test-d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/form-core/tests/FieldApi.test-d.ts b/packages/form-core/tests/FieldApi.test-d.ts index c2d08bf22..fcbbc1f60 100644 --- a/packages/form-core/tests/FieldApi.test-d.ts +++ b/packages/form-core/tests/FieldApi.test-d.ts @@ -32,7 +32,7 @@ it('should type value when nothing is passed into constructor', () => { }) assertType(field.state.value) - assertType<'name' | 'age'>(field.options.name) + assertType<'name'>(field.options.name) assertType(field.getValue()) }) From 9ff50f7c406d714baded627c7f0e026284758a1f Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 30 Mar 2025 20:50:11 +0000 Subject: [PATCH 24/25] ci: apply automated fixes and generate docs --- docs/reference/classes/fieldapi.md | 50 +++++++++--------- docs/reference/classes/formapi.md | 2 +- docs/reference/interfaces/fieldapioptions.md | 20 +++---- docs/reference/interfaces/fieldlisteners.md | 10 ++-- docs/reference/interfaces/fieldoptions.md | 18 +++---- docs/reference/interfaces/fieldvalidators.md | 24 ++++----- docs/reference/interfaces/formstate.md | 52 ++++++++++--------- docs/reference/type-aliases/anyfieldapi.md | 2 +- docs/reference/type-aliases/anyfieldmeta.md | 2 +- .../type-aliases/anyfieldmetabase.md | 2 +- .../type-aliases/anyfieldmetaderived.md | 2 +- docs/reference/type-aliases/fieldmeta.md | 2 +- docs/reference/type-aliases/fieldmetabase.md | 2 +- .../type-aliases/fieldmetaderived.md | 2 +- docs/reference/type-aliases/fieldstate.md | 2 +- .../unwrapfieldasyncvalidateorfn.md | 2 +- 16 files changed, 99 insertions(+), 95 deletions(-) diff --git a/docs/reference/classes/fieldapi.md b/docs/reference/classes/fieldapi.md index 19388f7f1..a57689ba3 100644 --- a/docs/reference/classes/fieldapi.md +++ b/docs/reference/classes/fieldapi.md @@ -7,7 +7,7 @@ title: FieldApi # Class: FieldApi\ -Defined in: [packages/form-core/src/FieldApi.ts:860](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L860) +Defined in: [packages/form-core/src/FieldApi.ts:842](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L842) A class representing the API for managing a form field. @@ -65,7 +65,7 @@ the `new FieldApi` constructor. new FieldApi(opts): FieldApi ``` -Defined in: [packages/form-core/src/FieldApi.ts:974](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L974) +Defined in: [packages/form-core/src/FieldApi.ts:970](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L970) Initializes a new `FieldApi` instance. @@ -87,7 +87,7 @@ Initializes a new `FieldApi` instance. form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:890](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L890) +Defined in: [packages/form-core/src/FieldApi.ts:886](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L886) A reference to the form API instance. @@ -99,7 +99,7 @@ A reference to the form API instance. name: DeepKeys; ``` -Defined in: [packages/form-core/src/FieldApi.ts:914](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L914) +Defined in: [packages/form-core/src/FieldApi.ts:910](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L910) The field name. @@ -111,7 +111,7 @@ The field name. options: FieldApiOptions; ``` -Defined in: [packages/form-core/src/FieldApi.ts:918](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L918) +Defined in: [packages/form-core/src/FieldApi.ts:914](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L914) The field options. @@ -123,7 +123,7 @@ The field options. store: Derived>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:942](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L942) +Defined in: [packages/form-core/src/FieldApi.ts:938](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L938) The field state store. @@ -135,7 +135,7 @@ The field state store. timeoutIds: Record; ``` -Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L969) +Defined in: [packages/form-core/src/FieldApi.ts:965](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L965) ## Accessors @@ -147,7 +147,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:969](https://github.com/TanStack get state(): FieldState ``` -Defined in: [packages/form-core/src/FieldApi.ts:966](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L966) +Defined in: [packages/form-core/src/FieldApi.ts:962](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L962) The current field state. @@ -163,7 +163,7 @@ The current field state. getInfo(): FieldInfo ``` -Defined in: [packages/form-core/src/FieldApi.ts:1217](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1217) +Defined in: [packages/form-core/src/FieldApi.ts:1213](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1213) Gets the field information object. @@ -179,7 +179,7 @@ Gets the field information object. getMeta(): FieldMeta ``` -Defined in: [packages/form-core/src/FieldApi.ts:1185](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1185) +Defined in: [packages/form-core/src/FieldApi.ts:1181](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1181) #### Returns @@ -193,7 +193,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:1185](https://github.com/TanStac getValue(): TData ``` -Defined in: [packages/form-core/src/FieldApi.ts:1167](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1167) +Defined in: [packages/form-core/src/FieldApi.ts:1163](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1163) Gets the current field value. @@ -213,7 +213,7 @@ Use `field.state.value` instead. handleBlur(): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1627](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1627) +Defined in: [packages/form-core/src/FieldApi.ts:1620](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1620) Handles the blur event. @@ -229,7 +229,7 @@ Handles the blur event. handleChange(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1620](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1620) +Defined in: [packages/form-core/src/FieldApi.ts:1613](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1613) Handles the change event. @@ -254,7 +254,7 @@ insertValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1237](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1237) +Defined in: [packages/form-core/src/FieldApi.ts:1233](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1233) Inserts a value at the specified index, shifting the subsequent values to the right. @@ -284,7 +284,7 @@ Inserts a value at the specified index, shifting the subsequent values to the ri mount(): () => void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1067](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1067) +Defined in: [packages/form-core/src/FieldApi.ts:1063](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1063) Mounts the field instance to the form. @@ -307,7 +307,7 @@ moveValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1293](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1293) +Defined in: [packages/form-core/src/FieldApi.ts:1289](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1289) Moves the value at the first specified index to the second specified index. @@ -337,7 +337,7 @@ Moves the value at the first specified index to the second specified index. pushValue(value, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1222](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1222) +Defined in: [packages/form-core/src/FieldApi.ts:1218](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1218) Pushes a new value to the field. @@ -363,7 +363,7 @@ Pushes a new value to the field. removeValue(index, opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1269) +Defined in: [packages/form-core/src/FieldApi.ts:1265](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1265) Removes a value at the specified index. @@ -392,7 +392,7 @@ replaceValue( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1253](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1253) +Defined in: [packages/form-core/src/FieldApi.ts:1249](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1249) Replaces a value at the specified index. @@ -422,7 +422,7 @@ Replaces a value at the specified index. setErrorMap(errorMap): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1647](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1647) +Defined in: [packages/form-core/src/FieldApi.ts:1640](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1640) Updates the field's errorMap @@ -444,7 +444,7 @@ Updates the field's errorMap setMeta(updater): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1190](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1190) +Defined in: [packages/form-core/src/FieldApi.ts:1186](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1186) Sets the field metadata. @@ -466,7 +466,7 @@ Sets the field metadata. setValue(updater, options?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1174](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1174) +Defined in: [packages/form-core/src/FieldApi.ts:1170](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1170) Sets the field value and run the `change` validator. @@ -495,7 +495,7 @@ swapValues( opts?): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1281](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1281) +Defined in: [packages/form-core/src/FieldApi.ts:1277](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1277) Swaps the values at the specified indices. @@ -525,7 +525,7 @@ Swaps the values at the specified indices. update(opts): void ``` -Defined in: [packages/form-core/src/FieldApi.ts:1115](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1115) +Defined in: [packages/form-core/src/FieldApi.ts:1111](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1111) Updates the field instance with new options. @@ -547,7 +547,7 @@ Updates the field instance with new options. validate(cause, opts?): unknown[] | Promise ``` -Defined in: [packages/form-core/src/FieldApi.ts:1587](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1587) +Defined in: [packages/form-core/src/FieldApi.ts:1580](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L1580) Validates the field value. diff --git a/docs/reference/classes/formapi.md b/docs/reference/classes/formapi.md index 19df07caf..66df9fa42 100644 --- a/docs/reference/classes/formapi.md +++ b/docs/reference/classes/formapi.md @@ -583,7 +583,7 @@ Resets the field value and meta to default state #### Type Parameters -• **TField** *extends* `string` \| `number` +• **TField** *extends* `string` #### Parameters diff --git a/docs/reference/interfaces/fieldapioptions.md b/docs/reference/interfaces/fieldapioptions.md index c73810aa1..ced5f164b 100644 --- a/docs/reference/interfaces/fieldapioptions.md +++ b/docs/reference/interfaces/fieldapioptions.md @@ -7,7 +7,7 @@ title: FieldApiOptions # Interface: FieldApiOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:448](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L448) +Defined in: [packages/form-core/src/FieldApi.ts:446](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L446) An object type representing the required options for the FieldApi class. @@ -63,7 +63,7 @@ An object type representing the required options for the FieldApi class. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:395](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L395) +Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -79,7 +79,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:391](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L391) +Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -95,7 +95,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:414](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L414) +Defined in: [packages/form-core/src/FieldApi.ts:412](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L412) An optional object with default metadata for the field. @@ -111,7 +111,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:387](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L387) +Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) An optional default value for the field. @@ -127,7 +127,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L442) +Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -143,7 +143,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to form: FormApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:486](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L486) +Defined in: [packages/form-core/src/FieldApi.ts:498](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L498) *** @@ -153,7 +153,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:486](https://github.com/TanStack optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:438](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L438) +Defined in: [packages/form-core/src/FieldApi.ts:436](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L436) A list of listeners which attach to the corresponding events @@ -169,7 +169,7 @@ A list of listeners which attach to the corresponding events name: TName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:383](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L383) +Defined in: [packages/form-core/src/FieldApi.ts:381](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L381) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -185,7 +185,7 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:399](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L399) +Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldlisteners.md b/docs/reference/interfaces/fieldlisteners.md index 330a39c14..7c64c8e01 100644 --- a/docs/reference/interfaces/fieldlisteners.md +++ b/docs/reference/interfaces/fieldlisteners.md @@ -7,7 +7,7 @@ title: FieldListeners # Interface: FieldListeners\ -Defined in: [packages/form-core/src/FieldApi.ts:348](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L348) +Defined in: [packages/form-core/src/FieldApi.ts:346](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L346) ## Type Parameters @@ -25,7 +25,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:348](https://github.com/TanStack optional onBlur: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:354](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L354) +Defined in: [packages/form-core/src/FieldApi.ts:352](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L352) *** @@ -35,7 +35,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:354](https://github.com/TanStack optional onChange: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L353) +Defined in: [packages/form-core/src/FieldApi.ts:351](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L351) *** @@ -45,7 +45,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack optional onMount: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L355) +Defined in: [packages/form-core/src/FieldApi.ts:353](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L353) *** @@ -55,4 +55,4 @@ Defined in: [packages/form-core/src/FieldApi.ts:355](https://github.com/TanStack optional onSubmit: FieldListenerFn; ``` -Defined in: [packages/form-core/src/FieldApi.ts:356](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L356) +Defined in: [packages/form-core/src/FieldApi.ts:354](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L354) diff --git a/docs/reference/interfaces/fieldoptions.md b/docs/reference/interfaces/fieldoptions.md index f2c0e7467..a433202be 100644 --- a/docs/reference/interfaces/fieldoptions.md +++ b/docs/reference/interfaces/fieldoptions.md @@ -7,7 +7,7 @@ title: FieldOptions # Interface: FieldOptions\ -Defined in: [packages/form-core/src/FieldApi.ts:362](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L362) +Defined in: [packages/form-core/src/FieldApi.ts:360](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L360) An object type representing the options for a field in a form. @@ -45,7 +45,7 @@ An object type representing the options for a field in a form. optional asyncAlways: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:395](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L395) +Defined in: [packages/form-core/src/FieldApi.ts:393](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L393) If `true`, always run async validation, even if there are errors emitted during synchronous validation. @@ -57,7 +57,7 @@ If `true`, always run async validation, even if there are errors emitted during optional asyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:391](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L391) +Defined in: [packages/form-core/src/FieldApi.ts:389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L389) The default time to debounce async validation if there is not a more specific debounce time passed. @@ -69,7 +69,7 @@ The default time to debounce async validation if there is not a more specific de optional defaultMeta: Partial>; ``` -Defined in: [packages/form-core/src/FieldApi.ts:414](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L414) +Defined in: [packages/form-core/src/FieldApi.ts:412](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L412) An optional object with default metadata for the field. @@ -81,7 +81,7 @@ An optional object with default metadata for the field. optional defaultValue: NoInfer; ``` -Defined in: [packages/form-core/src/FieldApi.ts:387](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L387) +Defined in: [packages/form-core/src/FieldApi.ts:385](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L385) An optional default value for the field. @@ -93,7 +93,7 @@ An optional default value for the field. optional disableErrorFlat: boolean; ``` -Defined in: [packages/form-core/src/FieldApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L442) +Defined in: [packages/form-core/src/FieldApi.ts:440](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L440) Disable the `flat(1)` operation on `field.errors`. This is useful if you want to keep the error structure as is. Not suggested for most use-cases. @@ -105,7 +105,7 @@ Disable the `flat(1)` operation on `field.errors`. This is useful if you want to optional listeners: FieldListeners; ``` -Defined in: [packages/form-core/src/FieldApi.ts:438](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L438) +Defined in: [packages/form-core/src/FieldApi.ts:436](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L436) A list of listeners which attach to the corresponding events @@ -117,7 +117,7 @@ A list of listeners which attach to the corresponding events name: TName; ``` -Defined in: [packages/form-core/src/FieldApi.ts:383](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L383) +Defined in: [packages/form-core/src/FieldApi.ts:381](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L381) The field name. The type will be `DeepKeys` to ensure your name is a deep key of the parent dataset. @@ -129,6 +129,6 @@ The field name. The type will be `DeepKeys` to ensure your name is optional validators: FieldValidators; ``` -Defined in: [packages/form-core/src/FieldApi.ts:399](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L399) +Defined in: [packages/form-core/src/FieldApi.ts:397](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L397) A list of validators to pass to the field diff --git a/docs/reference/interfaces/fieldvalidators.md b/docs/reference/interfaces/fieldvalidators.md index 15a22aa33..321e28081 100644 --- a/docs/reference/interfaces/fieldvalidators.md +++ b/docs/reference/interfaces/fieldvalidators.md @@ -7,7 +7,7 @@ title: FieldValidators # Interface: FieldValidators\ -Defined in: [packages/form-core/src/FieldApi.ts:267](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L267) +Defined in: [packages/form-core/src/FieldApi.ts:265](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L265) ## Type Parameters @@ -39,7 +39,7 @@ Defined in: [packages/form-core/src/FieldApi.ts:267](https://github.com/TanStack optional onBlur: TOnBlur; ``` -Defined in: [packages/form-core/src/FieldApi.ts:316](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L316) +Defined in: [packages/form-core/src/FieldApi.ts:314](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L314) An optional function, that runs on the blur event of input. @@ -57,7 +57,7 @@ z.string().min(1) optional onBlurAsync: TOnBlurAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:322](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L322) +Defined in: [packages/form-core/src/FieldApi.ts:320](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L320) An optional property similar to `onBlur` but async validation. @@ -75,7 +75,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onBlurAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:329](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L329) +Defined in: [packages/form-core/src/FieldApi.ts:327](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L327) An optional number to represent how long the `onBlurAsync` should wait before running @@ -89,7 +89,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onBlurListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:333](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L333) +Defined in: [packages/form-core/src/FieldApi.ts:331](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L331) An optional list of field names that should trigger this field's `onBlur` and `onBlurAsync` events when its value changes @@ -101,7 +101,7 @@ An optional list of field names that should trigger this field's `onBlur` and `o optional onChange: TOnChange; ``` -Defined in: [packages/form-core/src/FieldApi.ts:294](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L294) +Defined in: [packages/form-core/src/FieldApi.ts:292](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L292) An optional function, that runs on the change event of input. @@ -119,7 +119,7 @@ z.string().min(1) optional onChangeAsync: TOnChangeAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:300](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L300) +Defined in: [packages/form-core/src/FieldApi.ts:298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L298) An optional property similar to `onChange` but async validation @@ -137,7 +137,7 @@ z.string().refine(async (val) => val.length > 3, { message: 'Testing 123' }) optional onChangeAsyncDebounceMs: number; ``` -Defined in: [packages/form-core/src/FieldApi.ts:306](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L306) +Defined in: [packages/form-core/src/FieldApi.ts:304](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L304) An optional number to represent how long the `onChangeAsync` should wait before running @@ -151,7 +151,7 @@ If set to a number larger than 0, will debounce the async validation event by th optional onChangeListenTo: DeepKeys[]; ``` -Defined in: [packages/form-core/src/FieldApi.ts:310](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L310) +Defined in: [packages/form-core/src/FieldApi.ts:308](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L308) An optional list of field names that should trigger this field's `onChange` and `onChangeAsync` events when its value changes @@ -163,7 +163,7 @@ An optional list of field names that should trigger this field's `onChange` and optional onMount: TOnMount; ``` -Defined in: [packages/form-core/src/FieldApi.ts:288](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L288) +Defined in: [packages/form-core/src/FieldApi.ts:286](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L286) An optional function, that runs on the mount event of input. @@ -175,7 +175,7 @@ An optional function, that runs on the mount event of input. optional onSubmit: TOnSubmit; ``` -Defined in: [packages/form-core/src/FieldApi.ts:339](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L339) +Defined in: [packages/form-core/src/FieldApi.ts:337](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L337) An optional function, that runs on the submit event of form. @@ -193,7 +193,7 @@ z.string().min(1) optional onSubmitAsync: TOnSubmitAsync; ``` -Defined in: [packages/form-core/src/FieldApi.ts:345](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L345) +Defined in: [packages/form-core/src/FieldApi.ts:343](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L343) An optional property similar to `onSubmit` but async validation. diff --git a/docs/reference/interfaces/formstate.md b/docs/reference/interfaces/formstate.md index 4f94546c6..3236cc2f0 100644 --- a/docs/reference/interfaces/formstate.md +++ b/docs/reference/interfaces/formstate.md @@ -7,7 +7,7 @@ title: FormState # Interface: FormState\ -Defined in: [packages/form-core/src/FormApi.ts:535](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L535) +Defined in: [packages/form-core/src/FormApi.ts:540](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L540) An object representing the current state of the form. @@ -43,7 +43,7 @@ An object representing the current state of the form. optional _force_re_eval: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:462](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L462) +Defined in: [packages/form-core/src/FormApi.ts:467](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L467) @private, used to force a re-evaluation of the form state when options change @@ -61,7 +61,7 @@ BaseFormState._force_re_eval canSubmit: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:528](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L528) +Defined in: [packages/form-core/src/FormApi.ts:533](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L533) A boolean indicating if the form can be submitted based on its current state. @@ -79,7 +79,7 @@ DerivedFormState.canSubmit errorMap: FormValidationErrorMap, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormValidateOrFn, UnwrapFormAsyncValidateOrFn, UnwrapFormAsyncValidateOrFn>; ``` -Defined in: [packages/form-core/src/FormApi.ts:412](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L412) +Defined in: [packages/form-core/src/FormApi.ts:413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L413) The error map for the form itself. @@ -105,7 +105,7 @@ errors: ( | UnwrapFormAsyncValidateOrFn)[]; ``` -Defined in: [packages/form-core/src/FormApi.ts:487](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L487) +Defined in: [packages/form-core/src/FormApi.ts:492](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L492) The error array for the form itself. @@ -123,7 +123,7 @@ DerivedFormState.errors fieldMeta: Record, AnyFieldMeta>; ``` -Defined in: [packages/form-core/src/FormApi.ts:532](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L532) +Defined in: [packages/form-core/src/FormApi.ts:537](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L537) A record of field metadata for each field in the form. @@ -141,7 +141,7 @@ DerivedFormState.fieldMeta fieldMetaBase: Record, AnyFieldMetaBase>; ``` -Defined in: [packages/form-core/src/FormApi.ts:429](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L429) +Defined in: [packages/form-core/src/FormApi.ts:430](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L430) A record of field metadata for each field in the form, not including the derived properties, like `errors` and such @@ -159,7 +159,7 @@ BaseFormState.fieldMetaBase isBlurred: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:512](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L512) +Defined in: [packages/form-core/src/FormApi.ts:517](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L517) A boolean indicating if any of the form fields have been blurred. @@ -177,7 +177,7 @@ DerivedFormState.isBlurred isDirty: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:516](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L516) +Defined in: [packages/form-core/src/FormApi.ts:521](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L521) A boolean indicating if any of the form's fields' values have been modified by the user. `True` if the user have modified at least one of the fields. Opposite of `isPristine`. @@ -195,7 +195,7 @@ DerivedFormState.isDirty isFieldsValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:504](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L504) +Defined in: [packages/form-core/src/FormApi.ts:509](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L509) A boolean indicating if all the form fields are valid. @@ -213,7 +213,7 @@ DerivedFormState.isFieldsValid isFieldsValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:500](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L500) +Defined in: [packages/form-core/src/FormApi.ts:505](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L505) A boolean indicating if any of the form fields are currently validating. @@ -231,7 +231,7 @@ DerivedFormState.isFieldsValidating isFormValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:483](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L483) +Defined in: [packages/form-core/src/FormApi.ts:488](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L488) A boolean indicating if the form is valid. @@ -249,7 +249,7 @@ DerivedFormState.isFormValid isFormValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:479](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L479) +Defined in: [packages/form-core/src/FormApi.ts:484](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L484) A boolean indicating if the form is currently validating. @@ -267,7 +267,7 @@ DerivedFormState.isFormValidating isPristine: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:520](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L520) +Defined in: [packages/form-core/src/FormApi.ts:525](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L525) A boolean indicating if none of the form's fields' values have been modified by the user. `True` if the user have not modified any of the fields. Opposite of `isDirty`. @@ -285,7 +285,7 @@ DerivedFormState.isPristine isSubmitSuccessful: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:458](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L458) +Defined in: [packages/form-core/src/FormApi.ts:463](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L463) A boolean indicating if the last submission was successful. @@ -303,9 +303,13 @@ BaseFormState.isSubmitSuccessful isSubmitted: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:446](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L446) +Defined in: [packages/form-core/src/FormApi.ts:451](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L451) -A boolean indicating if the form has been submitted. +A boolean indicating if the `onSubmit` function has completed successfully. + +Goes back to `false` at each new submission attempt. + +Note: you can use isSubmitting to check if the form is currently submitting. #### Inherited from @@ -321,7 +325,7 @@ BaseFormState.isSubmitted isSubmitting: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:442](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L442) +Defined in: [packages/form-core/src/FormApi.ts:443](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L443) A boolean indicating if the form is currently in the process of being submitted after `handleSubmit` is called. @@ -347,7 +351,7 @@ BaseFormState.isSubmitting isTouched: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:508](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L508) +Defined in: [packages/form-core/src/FormApi.ts:513](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L513) A boolean indicating if any of the form fields have been touched. @@ -365,7 +369,7 @@ DerivedFormState.isTouched isValid: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:524](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L524) +Defined in: [packages/form-core/src/FormApi.ts:529](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L529) A boolean indicating if the form and all its fields are valid. @@ -383,7 +387,7 @@ DerivedFormState.isValid isValidating: boolean; ``` -Defined in: [packages/form-core/src/FormApi.ts:450](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L450) +Defined in: [packages/form-core/src/FormApi.ts:455](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L455) A boolean indicating if the form or any of its fields are currently validating. @@ -401,7 +405,7 @@ BaseFormState.isValidating submissionAttempts: number; ``` -Defined in: [packages/form-core/src/FormApi.ts:454](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L454) +Defined in: [packages/form-core/src/FormApi.ts:459](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L459) A counter for tracking the number of submission attempts. @@ -419,7 +423,7 @@ BaseFormState.submissionAttempts validationMetaMap: Record<"onChange" | "onBlur" | "onSubmit" | "onMount" | "onServer", undefined | ValidationMeta>; ``` -Defined in: [packages/form-core/src/FormApi.ts:425](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L425) +Defined in: [packages/form-core/src/FormApi.ts:426](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L426) An internal mechanism used for keeping track of validation logic in a form. @@ -437,7 +441,7 @@ BaseFormState.validationMetaMap values: TFormData; ``` -Defined in: [packages/form-core/src/FormApi.ts:408](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L408) +Defined in: [packages/form-core/src/FormApi.ts:409](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L409) The current values of the form fields. diff --git a/docs/reference/type-aliases/anyfieldapi.md b/docs/reference/type-aliases/anyfieldapi.md index 29dca6dd7..3f5b3063c 100644 --- a/docs/reference/type-aliases/anyfieldapi.md +++ b/docs/reference/type-aliases/anyfieldapi.md @@ -11,6 +11,6 @@ title: AnyFieldApi type AnyFieldApi = FieldApi; ``` -Defined in: [packages/form-core/src/FieldApi.ts:829](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L829) +Defined in: [packages/form-core/src/FieldApi.ts:811](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L811) A type representing the Field API with all generics set to `any` for convenience. diff --git a/docs/reference/type-aliases/anyfieldmeta.md b/docs/reference/type-aliases/anyfieldmeta.md index a3e95d97e..8b84f14d6 100644 --- a/docs/reference/type-aliases/anyfieldmeta.md +++ b/docs/reference/type-aliases/anyfieldmeta.md @@ -11,4 +11,4 @@ title: AnyFieldMeta type AnyFieldMeta = FieldMeta; ``` -Defined in: [packages/form-core/src/FieldApi.ts:748](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L748) +Defined in: [packages/form-core/src/FieldApi.ts:730](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L730) diff --git a/docs/reference/type-aliases/anyfieldmetabase.md b/docs/reference/type-aliases/anyfieldmetabase.md index db1e9aba8..61ef8ceee 100644 --- a/docs/reference/type-aliases/anyfieldmetabase.md +++ b/docs/reference/type-aliases/anyfieldmetabase.md @@ -11,4 +11,4 @@ title: AnyFieldMetaBase type AnyFieldMetaBase = FieldMetaBase; ``` -Defined in: [packages/form-core/src/FieldApi.ts:570](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L570) +Defined in: [packages/form-core/src/FieldApi.ts:567](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L567) diff --git a/docs/reference/type-aliases/anyfieldmetaderived.md b/docs/reference/type-aliases/anyfieldmetaderived.md index 8abfa0848..6189f393c 100644 --- a/docs/reference/type-aliases/anyfieldmetaderived.md +++ b/docs/reference/type-aliases/anyfieldmetaderived.md @@ -11,4 +11,4 @@ title: AnyFieldMetaDerived type AnyFieldMetaDerived = FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:662](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L662) +Defined in: [packages/form-core/src/FieldApi.ts:644](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L644) diff --git a/docs/reference/type-aliases/fieldmeta.md b/docs/reference/type-aliases/fieldmeta.md index 3ae2d54f3..c4d16234a 100644 --- a/docs/reference/type-aliases/fieldmeta.md +++ b/docs/reference/type-aliases/fieldmeta.md @@ -11,7 +11,7 @@ title: FieldMeta type FieldMeta = FieldMetaBase & FieldMetaDerived; ``` -Defined in: [packages/form-core/src/FieldApi.ts:685](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L685) +Defined in: [packages/form-core/src/FieldApi.ts:667](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L667) An object type representing the metadata of a field in a form. diff --git a/docs/reference/type-aliases/fieldmetabase.md b/docs/reference/type-aliases/fieldmetabase.md index 4a6901379..5077778f5 100644 --- a/docs/reference/type-aliases/fieldmetabase.md +++ b/docs/reference/type-aliases/fieldmetabase.md @@ -11,7 +11,7 @@ title: FieldMetaBase type FieldMetaBase = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:500](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L500) +Defined in: [packages/form-core/src/FieldApi.ts:512](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L512) ## Type Parameters diff --git a/docs/reference/type-aliases/fieldmetaderived.md b/docs/reference/type-aliases/fieldmetaderived.md index b16b173e3..1d2211802 100644 --- a/docs/reference/type-aliases/fieldmetaderived.md +++ b/docs/reference/type-aliases/fieldmetaderived.md @@ -11,7 +11,7 @@ title: FieldMetaDerived type FieldMetaDerived = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:590](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L590) +Defined in: [packages/form-core/src/FieldApi.ts:587](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L587) ## Type Parameters diff --git a/docs/reference/type-aliases/fieldstate.md b/docs/reference/type-aliases/fieldstate.md index fea711de2..5bd0e3c85 100644 --- a/docs/reference/type-aliases/fieldstate.md +++ b/docs/reference/type-aliases/fieldstate.md @@ -11,7 +11,7 @@ title: FieldState type FieldState = object; ``` -Defined in: [packages/form-core/src/FieldApi.ts:771](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L771) +Defined in: [packages/form-core/src/FieldApi.ts:753](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L753) An object type representing the state of a field. diff --git a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md index f93e3ad69..f775de43d 100644 --- a/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md +++ b/docs/reference/type-aliases/unwrapfieldasyncvalidateorfn.md @@ -14,7 +14,7 @@ type UnwrapFieldAsyncValidateOrFn = | [TValidateOrFn] extends [FieldValidateAsyncFn] ? Awaited> : [TValidateOrFn] extends [StandardSchemaV1] ? StandardSchemaV1Issue[] : undefined; ``` -Defined in: [packages/form-core/src/FieldApi.ts:204](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L204) +Defined in: [packages/form-core/src/FieldApi.ts:203](https://github.com/TanStack/form/blob/main/packages/form-core/src/FieldApi.ts#L203) ## Type Parameters From 6e9e7b5159522dca09cac04480581645ba350267 Mon Sep 17 00:00:00 2001 From: chorobin Date: Mon, 31 Mar 2025 23:42:34 +0200 Subject: [PATCH 25/25] fix: remove [number] --- packages/form-core/src/util-types.ts | 4 +--- packages/form-core/tests/util-types.test-d.ts | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/form-core/src/util-types.ts b/packages/form-core/src/util-types.ts index 70a4983c1..bfd5a368c 100644 --- a/packages/form-core/src/util-types.ts +++ b/packages/form-core/src/util-types.ts @@ -21,9 +21,7 @@ export type Narrow = Try> type IsAny = 0 extends 1 & T ? true : false -export type ArrayAccessor = - | `${TPrefix}[${number}]` - | `${TPrefix}[number]` +export type ArrayAccessor = `${TPrefix}[${number}]` export type DeepRecordArrayUnion< T extends ReadonlyArray, diff --git a/packages/form-core/tests/util-types.test-d.ts b/packages/form-core/tests/util-types.test-d.ts index 3bfb35495..d738033d3 100644 --- a/packages/form-core/tests/util-types.test-d.ts +++ b/packages/form-core/tests/util-types.test-d.ts @@ -24,13 +24,9 @@ assertType< type ArraySupport = DeepKeys<{ users: User[] }> assertType< | 'users' - | `users[number]` | `users[${number}]` - | `users[number].name` | `users[${number}].name` - | `users[number].id` | `users[${number}].id` - | `users[number].age` | `users[${number}].age` >(0 as never as ArraySupport)