UNPKG

@hookform/resolvers

Version:

React Hook Form validation resolvers: Yup, Joi, Superstruct, Zod, Vest, Class Validator, io-ts, Nope, computed-types, TypeBox, arktype, Typanion, Effect-TS and VineJS

1 lines 3.63 kB
{"version":3,"file":"ata-validator.modern.mjs","sources":["../src/ata-validator.ts"],"sourcesContent":["import { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';\nimport { ValidationError, Validator } from 'ata-validator';\nimport { FieldError, appendErrors } from 'react-hook-form';\nimport { Resolver } from './types';\n\nconst parseErrorSchema = (\n ataErrors: ValidationError[],\n validateAllFieldCriteria: boolean,\n) => {\n const parsedErrors: Record<string, FieldError> = {};\n\n for (let index = 0; index < ataErrors.length; index += 1) {\n const error = ataErrors[index];\n\n const instancePath =\n error.keyword === 'required'\n ? `${error.instancePath}/${error.params.missingProperty}`\n : error.instancePath;\n\n const path = instancePath.substring(1).replace(/\\//g, '.');\n\n if (!parsedErrors[path]) {\n parsedErrors[path] = {\n message: error.message,\n type: error.keyword,\n };\n }\n\n if (validateAllFieldCriteria) {\n const types = parsedErrors[path].types;\n const messages = types && types[error.keyword];\n\n parsedErrors[path] = appendErrors(\n path,\n validateAllFieldCriteria,\n parsedErrors,\n error.keyword,\n messages\n ? ([] as string[]).concat(messages as string[], error.message || '')\n : error.message,\n ) as FieldError;\n }\n }\n\n return parsedErrors;\n};\n\nexport const ataResolver: Resolver = (\n schema,\n schemaOptions,\n resolverOptions = {},\n) => {\n const validator = new Validator(schema, schemaOptions);\n return async (values, _, options) => {\n const result = validator.validate(values);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return result.valid\n ? {\n values: resolverOptions.raw ? Object.assign({}, values) : values,\n errors: {},\n }\n : {\n values: {},\n errors: toNestErrors(\n parseErrorSchema(\n result.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n };\n};\n"],"names":["parseErrorSchema","ataErrors","validateAllFieldCriteria","parsedErrors","index","length","error","path","keyword","instancePath","params","missingProperty","substring","replace","message","type","types","messages","appendErrors","concat","ataResolver","schema","schemaOptions","resolverOptions","validator","Validator","values","_","options","result","validate","shouldUseNativeValidation","validateFieldsNatively","valid","raw","Object","assign","errors","toNestErrors","criteriaMode"],"mappings":"wKAKA,MAAMA,EAAmBA,CACvBC,EACAC,KAEA,MAAMC,EAA2C,CAAE,EAEnD,IAAK,IAAIC,EAAQ,EAAGA,EAAQH,EAAUI,OAAQD,GAAS,EAAG,CACxD,MAAME,EAAQL,EAAUG,GAOlBG,GAJc,aAAlBD,EAAME,QACF,GAAGF,EAAMG,gBAAgBH,EAAMI,OAAOC,kBACtCL,EAAMG,cAEcG,UAAU,GAAGC,QAAQ,MAAO,KAStD,GAPKV,EAAaI,KAChBJ,EAAaI,GAAQ,CACnBO,QAASR,EAAMQ,QACfC,KAAMT,EAAME,UAIZN,EAA0B,CAC5B,MAAMc,EAAQb,EAAaI,GAAMS,MAC3BC,EAAWD,GAASA,EAAMV,EAAME,SAEtCL,EAAaI,GAAQW,EACnBX,EACAL,EACAC,EACAG,EAAME,QACNS,EACK,GAAgBE,OAAOF,EAAsBX,EAAMQ,SAAW,IAC/DR,EAAMQ,QAEd,CACF,CAEA,OAAOX,GAGIiB,EAAwBA,CACnCC,EACAC,EACAC,EAAkB,CAAE,KAEpB,MAAMC,EAAY,IAAIC,EAAUJ,EAAQC,GACxC,OAAcI,MAAAA,EAAQC,EAAGC,KACvB,MAAMC,EAASL,EAAUM,SAASJ,GAIlC,OAFAE,EAAQG,2BAA6BC,EAAuB,CAAE,EAAEJ,GAEzDC,EAAOI,MACV,CACEP,OAAQH,EAAgBW,IAAMC,OAAOC,OAAO,CAAE,EAAEV,GAAUA,EAC1DW,OAAQ,CACT,GACD,CACEX,OAAQ,CAAA,EACRW,OAAQC,EACNtC,EACE6B,EAAOQ,QACNT,EAAQG,2BACkB,QAAzBH,EAAQW,cAEZX,IAGV"}