import { FieldError } from 'react-hook-form' ; import { toNestError , validateFieldsNatively } from '@hookform/resolvers' ; import { StructError , validate } from 'superstruct' ; import { Resolver } from './types' ; const parseErrorSchema = ( error ) => error . failures ( ) . reduce < Record < string , FieldError > > ( ( previous , error ) => ( previous [ error . path . join ( '.' ) ] = { message : error . message , type : error . type , } ) && previous , { } ) ; export const superstructResolver = ( schema , resolverOptions ) => ( values , _ , options ) => { const result = validate ( values , schema , resolverOptions ) ; if ( result [ 0 ] ) { return { values : { } , errors : toNestError ( parseErrorSchema ( result [ 0 ] ) , options ) , } ; } options . shouldUseNativeValidation && validateFieldsNatively ( { } , options ) ; return { values : result [ 1 ] , errors : { } , } ; } ;