@hookform/resolvers
Advanced tools
Comparing version 2.8.0 to 2.8.1
@@ -6,4 +6,4 @@ import { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
[_: string]: any; | ||
}>(schema: ClassConstructor<T>, schemaOptions?: ValidatorOptions, resolverOptions?: { | ||
}, TFieldValues extends FieldValues, TContext>(schema: ClassConstructor<T>, schemaOptions?: ValidatorOptions, resolverOptions?: { | ||
mode?: 'async' | 'sync'; | ||
}) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; | ||
}) => (values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; |
@@ -10,7 +10,11 @@ import { | ||
export type Resolver = <T extends { [_: string]: any }>( | ||
export type Resolver = < | ||
T extends { [_: string]: any }, | ||
TFieldValues extends FieldValues, | ||
TContext, | ||
>( | ||
schema: ClassConstructor<T>, | ||
schemaOptions?: ValidatorOptions, | ||
resolverOptions?: { mode?: 'async' | 'sync' }, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
) => ( | ||
values: UnpackNestedValue<TFieldValues>, | ||
@@ -17,0 +21,0 @@ context: TContext | undefined, |
@@ -1,2 +0,2 @@ | ||
import { FieldError, FieldErrors, ResolverOptions } from 'react-hook-form'; | ||
export declare const toNestError: <TFieldValues>(errors: Record<string, FieldError>, options: ResolverOptions<TFieldValues>) => import("react-hook-form").DeepMap<TFieldValues, FieldError>; | ||
import { FieldError, FieldErrors, ResolverOptions, FieldValues } from 'react-hook-form'; | ||
export declare const toNestError: <TFieldValues extends FieldValues>(errors: Record<string, FieldError>, options: ResolverOptions<TFieldValues>) => import("react-hook-form").DeepMap<import("react-hook-form").DeepPartial<TFieldValues>, FieldError>; |
import * as t from 'io-ts'; | ||
import { FieldError, FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
export declare type Resolver = <T, TFieldValues, TContext>(codec: t.Decoder<FieldValues, T>) => (values: UnpackNestedValue<TFieldValues>, _context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
import { FieldError, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
export declare type Resolver = <TFieldValues, TInput extends unknown = unknown, TContext extends object = object>(codec: t.Decoder<TInput, UnpackNestedValue<TFieldValues>>) => (values: TInput, _context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export declare type ErrorObject = Record<string, FieldError>; | ||
@@ -5,0 +5,0 @@ export declare type FieldErrorWithPath = FieldError & { |
@@ -6,2 +6,3 @@ import * as Either from 'fp-ts/lib/Either'; | ||
import { Resolver } from './types'; | ||
import { FieldErrors } from 'react-hook-form'; | ||
@@ -29,3 +30,3 @@ export const ioTsResolver: Resolver = (codec) => (values, _context, options) => | ||
values, | ||
errors: {}, | ||
errors: {} as FieldErrors<any>, | ||
}; | ||
@@ -32,0 +33,0 @@ }, |
@@ -0,5 +1,5 @@ | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
import * as t from 'io-ts'; | ||
import { | ||
FieldError, | ||
FieldValues, | ||
ResolverOptions, | ||
@@ -10,6 +10,10 @@ ResolverResult, | ||
export type Resolver = <T, TFieldValues, TContext>( | ||
codec: t.Decoder<FieldValues, T>, | ||
export type Resolver = < | ||
TFieldValues, | ||
TInput extends unknown = unknown, | ||
TContext extends object = object, | ||
>( | ||
codec: t.Decoder<TInput, UnpackNestedValue<TFieldValues>>, | ||
) => ( | ||
values: UnpackNestedValue<TFieldValues>, | ||
values: TInput, | ||
_context: TContext | undefined, | ||
@@ -16,0 +20,0 @@ options: ResolverOptions<TFieldValues>, |
@@ -1,5 +0,5 @@ | ||
import { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import { ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import type { AsyncValidationOptions, Schema } from 'joi'; | ||
export declare type Resolver = <T extends Schema>(schema: T, schemaOptions?: AsyncValidationOptions, factoryOptions?: { | ||
export declare type Resolver = <T extends Schema, TFieldValues, TContext>(schema: T, schemaOptions?: AsyncValidationOptions, factoryOptions?: { | ||
mode?: 'async' | 'sync'; | ||
}) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; | ||
}) => (values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; |
import { | ||
FieldValues, | ||
ResolverOptions, | ||
@@ -9,7 +8,7 @@ ResolverResult, | ||
export type Resolver = <T extends Schema>( | ||
export type Resolver = <T extends Schema, TFieldValues, TContext>( | ||
schema: T, | ||
schemaOptions?: AsyncValidationOptions, | ||
factoryOptions?: { mode?: 'async' | 'sync' }, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
) => ( | ||
values: UnpackNestedValue<TFieldValues>, | ||
@@ -16,0 +15,0 @@ context: TContext | undefined, |
@@ -1,6 +0,6 @@ | ||
import type { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import type { ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import type { NopeObject } from 'nope-validator/lib/cjs/NopeObject'; | ||
declare type ValidateOptions = Parameters<NopeObject['validate']>[2]; | ||
declare type Context = Parameters<NopeObject['validate']>[1]; | ||
export declare type Resolver = <T extends NopeObject>(schema: T, schemaOptions?: ValidateOptions) => <TFieldValues extends FieldValues, TContext extends Context>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export declare type Resolver = <T extends NopeObject, TFieldValues, TContext extends Context>(schema: T, schemaOptions?: ValidateOptions) => (values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export {}; |
import type { | ||
FieldValues, | ||
ResolverOptions, | ||
@@ -12,6 +11,10 @@ ResolverResult, | ||
export type Resolver = <T extends NopeObject>( | ||
export type Resolver = < | ||
T extends NopeObject, | ||
TFieldValues, | ||
TContext extends Context, | ||
>( | ||
schema: T, | ||
schemaOptions?: ValidateOptions, | ||
) => <TFieldValues extends FieldValues, TContext extends Context>( | ||
) => ( | ||
values: UnpackNestedValue<TFieldValues>, | ||
@@ -18,0 +21,0 @@ context: TContext | undefined, |
{ | ||
"name": "@hookform/resolvers", | ||
"amdName": "hookformResolvers", | ||
"version": "2.8.0", | ||
"version": "2.8.1", | ||
"description": "React Hook Form validation resolvers: Yup, Joi, Superstruct, Zod, Vest, Class Validator, io-ts, Nope, computed-types and Typanion", | ||
@@ -195,3 +195,3 @@ "main": "dist/resolvers.js", | ||
"react-dom": "^17.0.2", | ||
"react-hook-form": "7.12.2", | ||
"react-hook-form": "7.15.0", | ||
"reflect-metadata": "^0.1.13", | ||
@@ -198,0 +198,0 @@ "superstruct": "^0.15.2", |
@@ -1,5 +0,5 @@ | ||
import { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import { FieldValues, ResolverOptions, ResolverResult } from 'react-hook-form'; | ||
import { validate, Struct } from 'superstruct'; | ||
declare type Options = Parameters<typeof validate>[2]; | ||
export declare type Resolver = <T extends Struct<any, any>>(schema: T, factoryOtions?: Options) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export declare type Resolver = <TFieldValues extends FieldValues, TContext extends object = object>(schema: Struct<TFieldValues, any>, factoryOptions?: Options) => (values: unknown, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
import { FieldError } from 'react-hook-form'; | ||
import { FieldError, FieldErrors } from 'react-hook-form'; | ||
import { toNestError, validateFieldsNatively } from '@hookform/resolvers'; | ||
@@ -24,3 +24,6 @@ | ||
values: {}, | ||
errors: toNestError(parseErrorSchema(result[0]), options), | ||
errors: toNestError( | ||
parseErrorSchema(result[0]), | ||
options, | ||
) as FieldErrors<any>, | ||
}; | ||
@@ -33,4 +36,4 @@ } | ||
values: result[1], | ||
errors: {}, | ||
errors: {} as FieldErrors<any>, | ||
}; | ||
}; |
@@ -1,7 +0,3 @@ | ||
import { | ||
FieldValues, | ||
ResolverOptions, | ||
ResolverResult, | ||
UnpackNestedValue, | ||
} from 'react-hook-form'; | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
import { FieldValues, ResolverOptions, ResolverResult } from 'react-hook-form'; | ||
import { validate, Struct } from 'superstruct'; | ||
@@ -11,9 +7,12 @@ | ||
export type Resolver = <T extends Struct<any, any>>( | ||
schema: T, | ||
factoryOtions?: Options, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
values: UnpackNestedValue<TFieldValues>, | ||
export type Resolver = < | ||
TFieldValues extends FieldValues, | ||
TContext extends object = object, | ||
>( | ||
schema: Struct<TFieldValues, any>, | ||
factoryOptions?: Options, | ||
) => ( | ||
values: unknown, | ||
context: TContext | undefined, | ||
options: ResolverOptions<TFieldValues>, | ||
) => ResolverResult<TFieldValues>; |
@@ -1,6 +0,6 @@ | ||
import type { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import { ValidationState, AnyStrictValidator } from 'typanion'; | ||
import type { FieldValues, ResolverOptions, ResolverResult } from 'react-hook-form'; | ||
import { ValidationState, StrictValidator } from 'typanion'; | ||
declare type ValidateOptions = Pick<ValidationState, 'coercions' | 'coercion'>; | ||
declare type RHFResolver = <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export declare type Resolver = <UnknownValidator extends AnyStrictValidator>(validator: UnknownValidator, validatorOptions?: ValidateOptions) => RHFResolver; | ||
declare type RHFResolver<TFieldValues extends FieldValues, TInput = unknown, TContext extends Object = object> = (values: TInput, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>; | ||
export declare type Resolver = <TInput extends FieldValues = FieldValues, TFieldValues extends TInput = TInput, TContext extends object = object>(validator: StrictValidator<TInput, TFieldValues>, validatorOptions?: ValidateOptions) => RHFResolver<TFieldValues, TInput, TContext>; | ||
export {}; |
@@ -37,6 +37,9 @@ import type { FieldErrors } from 'react-hook-form'; | ||
return { values, errors: {} }; | ||
return { values, errors: {} as FieldErrors<any> }; | ||
} | ||
return { values: {}, errors: toNestError(parsedErrors, options) }; | ||
return { | ||
values: {}, | ||
errors: toNestError(parsedErrors, options) as FieldErrors<any>, | ||
}; | ||
}; |
@@ -0,1 +1,2 @@ | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
import type { | ||
@@ -5,10 +6,13 @@ FieldValues, | ||
ResolverResult, | ||
UnpackNestedValue, | ||
} from 'react-hook-form'; | ||
import { ValidationState, AnyStrictValidator} from 'typanion' | ||
import { ValidationState, StrictValidator } from 'typanion'; | ||
type ValidateOptions = Pick<ValidationState, 'coercions' | 'coercion'> | ||
type ValidateOptions = Pick<ValidationState, 'coercions' | 'coercion'>; | ||
type RHFResolver = <TFieldValues extends FieldValues, TContext>( | ||
values: UnpackNestedValue<TFieldValues>, | ||
type RHFResolver< | ||
TFieldValues extends FieldValues, | ||
TInput = unknown, | ||
TContext extends Object = object, | ||
> = ( | ||
values: TInput, | ||
context: TContext | undefined, | ||
@@ -18,5 +22,9 @@ options: ResolverOptions<TFieldValues>, | ||
export type Resolver = <UnknownValidator extends AnyStrictValidator>( | ||
validator: UnknownValidator, | ||
export type Resolver = < | ||
TInput extends FieldValues = FieldValues, | ||
TFieldValues extends TInput = TInput, | ||
TContext extends object = object, | ||
>( | ||
validator: StrictValidator<TInput, TFieldValues>, | ||
validatorOptions?: ValidateOptions, | ||
)=> RHFResolver | ||
) => RHFResolver<TFieldValues, TInput, TContext>; |
import { | ||
FieldValues, | ||
ResolverOptions, | ||
@@ -11,7 +10,7 @@ ResolverResult, | ||
export type Resolver = ( | ||
export type Resolver = <TFieldValues, TContext>( | ||
schema: ICreateResult, | ||
schemaOptions?: never, | ||
factoryOptions?: { mode?: 'async' | 'sync' }, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
) => ( | ||
values: UnpackNestedValue<TFieldValues>, | ||
@@ -18,0 +17,0 @@ context: TContext | undefined, |
@@ -1,8 +0,8 @@ | ||
import { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form'; | ||
import { ResolverOptions, ResolverResult } from 'react-hook-form'; | ||
import * as Yup from 'yup'; | ||
import type Lazy from 'yup/lib/Lazy'; | ||
declare type Options<T extends Yup.AnyObjectSchema | Lazy<any>> = Parameters<T['validate']>[1]; | ||
export declare type Resolver = <T extends Yup.AnyObjectSchema | Lazy<any>>(schema: T, schemaOptions?: Options<T>, factoryOptions?: { | ||
export declare type Resolver = <T extends Yup.AnyObjectSchema | Lazy<any>, TContext extends object = object>(schema: T, schemaOptions?: Options<T>, factoryOptions?: { | ||
mode?: 'async' | 'sync'; | ||
}) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; | ||
}) => (values: unknown, context: TContext | undefined, options: ResolverOptions<Yup.InferType<T>>) => Promise<ResolverResult<Yup.InferType<T>>>; | ||
export {}; |
@@ -1,7 +0,3 @@ | ||
import { | ||
FieldValues, | ||
ResolverOptions, | ||
ResolverResult, | ||
UnpackNestedValue, | ||
} from 'react-hook-form'; | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
import { ResolverOptions, ResolverResult } from 'react-hook-form'; | ||
import * as Yup from 'yup'; | ||
@@ -14,10 +10,13 @@ import type Lazy from 'yup/lib/Lazy'; | ||
export type Resolver = <T extends Yup.AnyObjectSchema | Lazy<any>>( | ||
export type Resolver = < | ||
T extends Yup.AnyObjectSchema | Lazy<any>, | ||
TContext extends object = object, | ||
>( | ||
schema: T, | ||
schemaOptions?: Options<T>, | ||
factoryOptions?: { mode?: 'async' | 'sync' }, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
values: UnpackNestedValue<TFieldValues>, | ||
) => ( | ||
values: unknown, | ||
context: TContext | undefined, | ||
options: ResolverOptions<TFieldValues>, | ||
) => Promise<ResolverResult<TFieldValues>>; | ||
options: ResolverOptions<Yup.InferType<T>>, | ||
) => Promise<ResolverResult<Yup.InferType<T>>>; |
@@ -1,2 +0,2 @@ | ||
import Yup from 'yup'; | ||
import Yup, { ValidationError } from 'yup'; | ||
import { toNestError, validateFieldsNatively } from '@hookform/resolvers'; | ||
@@ -67,3 +67,3 @@ import { appendErrors, FieldError } from 'react-hook-form'; | ||
parseErrorSchema( | ||
e, | ||
e as ValidationError, | ||
!options.shouldUseNativeValidation && | ||
@@ -70,0 +70,0 @@ options.criteriaMode === 'all', |
@@ -1,5 +0,5 @@ | ||
import { FieldValues, ResolverResult, UnpackNestedValue, ResolverOptions } from 'react-hook-form'; | ||
import { ResolverResult, ResolverOptions, FieldValues } from 'react-hook-form'; | ||
import { z } from 'zod'; | ||
export declare type Resolver = <T extends z.Schema<any, any>>(schema: T, schemaOptions?: Partial<z.ParseParamsNoData>, factoryOptions?: { | ||
export declare type Resolver = <TFieldValues extends FieldValues, TContext extends object = object>(schema: z.Schema<TFieldValues, any>, schemaOptions?: Partial<z.ParseParamsNoData>, factoryOptions?: { | ||
mode?: 'async' | 'sync'; | ||
}) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; | ||
}) => (values: unknown, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>; |
@@ -1,17 +0,16 @@ | ||
import { | ||
FieldValues, | ||
ResolverResult, | ||
UnpackNestedValue, | ||
ResolverOptions, | ||
} from 'react-hook-form'; | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
import { ResolverResult, ResolverOptions, FieldValues } from 'react-hook-form'; | ||
import { z } from 'zod'; | ||
export type Resolver = <T extends z.Schema<any, any>>( | ||
schema: T, | ||
export type Resolver = < | ||
TFieldValues extends FieldValues, | ||
TContext extends object = object, | ||
>( | ||
schema: z.Schema<TFieldValues, any>, | ||
schemaOptions?: Partial<z.ParseParamsNoData>, | ||
factoryOptions?: { mode?: 'async' | 'sync' }, | ||
) => <TFieldValues extends FieldValues, TContext>( | ||
values: UnpackNestedValue<TFieldValues>, | ||
) => ( | ||
values: unknown, | ||
context: TContext | undefined, | ||
options: ResolverOptions<TFieldValues>, | ||
) => Promise<ResolverResult<TFieldValues>>; |
@@ -1,3 +0,3 @@ | ||
import { appendErrors, FieldError } from 'react-hook-form'; | ||
import { z } from 'zod'; | ||
import { appendErrors, FieldError, FieldErrors } from 'react-hook-form'; | ||
import { z, ZodError } from 'zod'; | ||
import { toNestError, validateFieldsNatively } from '@hookform/resolvers'; | ||
@@ -67,3 +67,3 @@ import type { Resolver } from './types'; | ||
return { | ||
errors: {}, | ||
errors: {} as FieldErrors<any>, | ||
values: data, | ||
@@ -74,7 +74,7 @@ }; | ||
values: {}, | ||
errors: error.isEmpty | ||
? {} | ||
: toNestError( | ||
errors: (error as ZodError).isEmpty | ||
? ({} as FieldErrors<any>) | ||
: (toNestError( | ||
parseErrorSchema( | ||
error.errors, | ||
(error as ZodError).errors, | ||
!options.shouldUseNativeValidation && | ||
@@ -84,5 +84,5 @@ options.criteriaMode === 'all', | ||
options, | ||
), | ||
) as FieldErrors<any>), | ||
}; | ||
} | ||
}; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
374839
3660