{"version":3,"file":"valibot.modern.mjs","sources":["../src/valibot.ts"],"sourcesContent":["import { toNestErrors } from '@hookform/resolvers';\nimport type { Resolver } from './types';\nimport {\n BaseSchema,\n BaseSchemaAsync,\n ValiError,\n parse,\n parseAsync,\n} from 'valibot';\nimport { FieldErrors, FieldError, appendErrors } from 'react-hook-form';\nconst parseErrors = (\n valiErrors: ValiError,\n validateAllFieldCriteria: boolean,\n): FieldErrors => {\n const errors: Record = {};\n for (; valiErrors.issues.length; ) {\n const error = valiErrors.issues[0];\n if (!error.path) {\n continue;\n }\n const _path = error.path.map(({ key }) => key).join('.');\n\n if (!errors[_path]) {\n errors[_path] = { message: error.message, type: error.validation };\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.validation];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n error.validation,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n valiErrors.issues.shift();\n }\n\n return errors;\n};\n\nexport const valibotResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const schemaOpts = Object.assign(\n {},\n {\n abortEarly: false,\n abortPipeEarly: false,\n },\n schemaOptions,\n );\n\n const parsed =\n resolverOptions.mode === 'sync'\n ? parse(schema as BaseSchema, values, schemaOpts)\n : await parseAsync(\n schema as BaseSchema | BaseSchemaAsync,\n values,\n schemaOpts,\n );\n\n return {\n values: resolverOptions.raw ? values : parsed,\n errors: {} as FieldErrors,\n };\n } catch (error) {\n if (error instanceof ValiError) {\n return {\n values: {},\n errors: toNestErrors(\n parseErrors(\n error,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n\n throw error;\n }\n };\n"],"names":["parseErrors","valiErrors","validateAllFieldCriteria","errors","issues","length","error","path","_path","map","key","join","message","type","validation","types","messages","appendErrors","concat","shift","valibotResolver","schema","schemaOptions","resolverOptions","async","values","_","options","schemaOpts","Object","assign","abortEarly","abortPipeEarly","parsed","mode","parse","parseAsync","raw","ValiError","toNestErrors","shouldUseNativeValidation","criteriaMode"],"mappings":"iKAUA,MAAMA,EAAcA,CAClBC,EACAC,KAEA,MAAMC,EAAqC,CAAE,EAC7C,KAAOF,EAAWG,OAAOC,QAAU,CACjC,MAAMC,EAAQL,EAAWG,OAAO,GAChC,IAAKE,EAAMC,KACT,SAEF,MAAMC,EAAQF,EAAMC,KAAKE,IAAI,EAAGC,SAAUA,GAAKC,KAAK,KAMpD,GAJKR,EAAOK,KACVL,EAAOK,GAAS,CAAEI,QAASN,EAAMM,QAASC,KAAMP,EAAMQ,aAGpDZ,EAA0B,CAC5B,MAAMa,EAAQZ,EAAOK,GAAOO,MACtBC,EAAWD,GAASA,EAAMT,EAAMQ,YAEtCX,EAAOK,GAASS,EACdT,EACAN,EACAC,EACAG,EAAMQ,WACNE,EACK,GAAgBE,OAAOF,EAAsBV,EAAMM,SACpDN,EAAMM,QAEb,CAEDX,EAAWG,OAAOe,OACnB,CAED,OAAOhB,GAGIiB,EACXA,CAACC,EAAQC,EAAeC,EAAkB,CAAE,IAC5CC,MAAOC,EAAQC,EAAGC,KAChB,IACE,MAAMC,EAAaC,OAAOC,OACxB,CAAE,EACF,CACEC,YAAY,EACZC,gBAAgB,GAElBV,GAGIW,EACqB,SAAzBV,EAAgBW,KACZC,EAAMd,EAAsBI,EAAQG,SAC9BQ,EACJf,EACAI,EACAG,GAGR,MAAO,CACLH,OAAQF,EAAgBc,IAAMZ,EAASQ,EACvC9B,OAAQ,GAEX,CAAC,MAAOG,GACP,GAAIA,aAAiBgC,EACnB,MAAO,CACLb,OAAQ,CAAE,EACVtB,OAAQoC,EACNvC,EACEM,GACCqB,EAAQa,2BACkB,QAAzBb,EAAQc,cAEZd,IAKN,MAAMrB,CACP"}