UNPKG

@primeuix/forms

Version:

Forms utilities for PrimeUI Libraries

1 lines 2.28 kB
{"version":3,"sources":["../../../src/resolvers/joi/index.ts"],"sourcesContent":["import { toValues } from '@primeuix/forms/utils';\nimport { isNotEmpty } from '@primeuix/utils';\nimport type { ResolverOptions, ResolverResult } from '..';\n\nexport const joiResolver =\n <T>(schema: any, schemaOptions?: any, resolverOptions?: ResolverOptions) =>\n async ({ values, name }: any): Promise<ResolverResult<T>> => {\n const { sync = false, raw = false } = resolverOptions || {};\n\n try {\n const result = await schema[sync ? 'validate' : 'validateAsync'](values, { abortEarly: false, ...schemaOptions });\n\n return {\n values: toValues(raw ? values : result, name),\n errors: {}\n };\n } catch (e: any) {\n if (e?.details) {\n return {\n values: toValues(raw ? values : undefined, name),\n errors: e.details.reduce((acc: Record<string, any[]>, error: any) => {\n const pathKey = isNotEmpty(error.path) ? error.path.join('.') : name;\n\n if (pathKey) {\n acc[pathKey] ||= [];\n acc[pathKey].push(error);\n }\n\n return acc;\n }, {})\n };\n }\n\n throw e;\n }\n };\n"],"mappings":"AAAA,OAAS,YAAAA,MAAgB,wBACzB,OAAS,cAAAC,MAAkB,kBAGpB,IAAMC,EACT,CAAIC,EAAaC,EAAqBC,IACtC,MAAO,CAAE,OAAAC,EAAQ,KAAAC,CAAK,IAAuC,CACzD,GAAM,CAAE,KAAAC,EAAO,GAAO,IAAAC,EAAM,EAAM,EAAIJ,GAAmB,CAAC,EAE1D,GAAI,CACA,IAAMK,EAAS,MAAMP,EAAOK,EAAO,WAAa,eAAe,EAAEF,EAAQ,CAAE,WAAY,GAAO,GAAGF,CAAc,CAAC,EAEhH,MAAO,CACH,OAAQJ,EAASS,EAAMH,EAASI,EAAQH,CAAI,EAC5C,OAAQ,CAAC,CACb,CACJ,OAASI,EAAQ,CACb,GAAIA,GAAG,QACH,MAAO,CACH,OAAQX,EAASS,EAAMH,EAAS,OAAWC,CAAI,EAC/C,OAAQI,EAAE,QAAQ,OAAO,CAACC,EAA4BC,IAAe,CACjE,IAAMC,EAAUb,EAAWY,EAAM,IAAI,EAAIA,EAAM,KAAK,KAAK,GAAG,EAAIN,EAEhE,OAAIO,IACAF,EAAIE,CAAO,IAAM,CAAC,EAClBF,EAAIE,CAAO,EAAE,KAAKD,CAAK,GAGpBD,CACX,EAAG,CAAC,CAAC,CACT,EAGJ,MAAMD,CACV,CACJ","names":["toValues","isNotEmpty","joiResolver","schema","schemaOptions","resolverOptions","values","name","sync","raw","result","e","acc","error","pathKey"]}