{"version":3,"file":"formOptions.cjs","sources":["../../src/formOptions.ts"],"sourcesContent":["import type {\n  FormAsyncValidateOrFn,\n  FormOptions,\n  FormValidateOrFn,\n} from './FormApi'\n\n/*\n\nThese types need to do two things:\n\n1. Validator generics need to depend on the TFormData generic\n2. The resulting needs to allow overriding values\n\nThe generics from formOptions almost work, except that it loses information\nabout how to infer TFormData.\nIf you pass a validator function, it tries to resolve the `formApi` or `value`\ninside of it, meaning that TFormData changes to `unknown`.\n\nTo bypass this, the intersection for defaultOpts gives TypeScript that information again,\nwithout losing the benefits from the TOptions generic.\n*/\n\nexport function formOptions<\n  TOptions extends Partial<\n    FormOptions<\n      TFormData,\n      TOnMount,\n      TOnChange,\n      TOnChangeAsync,\n      TOnBlur,\n      TOnBlurAsync,\n      TOnSubmit,\n      TOnSubmitAsync,\n      TOnDynamic,\n      TOnDynamicAsync,\n      TOnServer,\n      TSubmitMeta\n    >\n  >,\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta = never,\n>(\n  defaultOpts: Partial<\n    FormOptions<\n      TFormData,\n      TOnMount,\n      TOnChange,\n      TOnChangeAsync,\n      TOnBlur,\n      TOnBlurAsync,\n      TOnSubmit,\n      TOnSubmitAsync,\n      TOnDynamic,\n      TOnDynamicAsync,\n      TOnServer,\n      TSubmitMeta\n    >\n  > &\n    TOptions,\n): TOptions {\n  return defaultOpts\n}\n"],"names":[],"mappings":";;AAsBO,SAAS,YA8Bd,aAiBU;AACV,SAAO;AACT;;"}