(
defaultOpts: CreateServerValidateOptions<
TFormData,
TOnMount,
TOnChange,
TOnChangeAsync,
TOnBlur,
TOnBlurAsync,
TOnSubmit,
TOnSubmitAsync,
TOnDynamic,
TOnDynamicAsync,
TOnServer,
TSubmitMeta
>,
)
| 46 | |
| 47 | export const createServerValidate = |
| 48 | < |
| 49 | TFormData, |
| 50 | TOnMount extends undefined | FormValidateOrFn<TFormData>, |
| 51 | TOnChange extends undefined | FormValidateOrFn<TFormData>, |
| 52 | TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 53 | TOnBlur extends undefined | FormValidateOrFn<TFormData>, |
| 54 | TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 55 | TOnSubmit extends undefined | FormValidateOrFn<TFormData>, |
| 56 | TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 57 | TOnDynamic extends undefined | FormValidateOrFn<TFormData>, |
| 58 | TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 59 | TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 60 | TSubmitMeta, |
| 61 | >( |
| 62 | defaultOpts: CreateServerValidateOptions< |
| 63 | TFormData, |
| 64 | TOnMount, |
| 65 | TOnChange, |
| 66 | TOnChangeAsync, |
| 67 | TOnBlur, |
| 68 | TOnBlurAsync, |
| 69 | TOnSubmit, |
| 70 | TOnSubmitAsync, |
| 71 | TOnDynamic, |
| 72 | TOnDynamicAsync, |
| 73 | TOnServer, |
| 74 | TSubmitMeta |
| 75 | >, |
| 76 | ) => |
| 77 | async (formData: FormData, info?: Parameters<typeof decode>[1]) => { |
| 78 | const { onServerValidate } = defaultOpts |
| 79 | |
| 80 | const runValidator = async ({ |
| 81 | value, |
| 82 | validationSource, |
| 83 | }: { |
| 84 | value: TFormData |
| 85 | validationSource: 'form' |
| 86 | }) => { |
| 87 | if (isStandardSchemaValidator(onServerValidate)) { |
| 88 | return await standardSchemaValidators.validateAsync( |
| 89 | { value, validationSource }, |
| 90 | onServerValidate, |
| 91 | ) |
| 92 | } |
| 93 | return (onServerValidate as FormValidateAsyncFn<TFormData>)({ |
| 94 | value, |
| 95 | signal: undefined as never, |
| 96 | formApi: undefined as never, |
| 97 | }) |
| 98 | } |
| 99 | |
| 100 | const values = decode(formData, info) as never as TFormData |
| 101 | |
| 102 | const onServerError = (await runValidator({ |
| 103 | value: values, |
| 104 | validationSource: 'form', |
| 105 | })) as UnwrapFormAsyncValidateOrFn<TOnServer> | undefined |
no test coverage detected