UNPKG

@mantine/form

Version:

Mantine form management library

1 lines 1.95 kB
{"version":3,"file":"schema-resolver.cjs","names":["filterErrors"],"sources":["../src/schema-resolver.ts"],"sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { filterErrors } from './hooks/use-form-errors/filter-errors/filter-errors';\nimport type { FormErrors } from './types';\n\nfunction issuesToFormErrors(issues: ReadonlyArray<StandardSchemaV1.Issue>): FormErrors {\n const errors: FormErrors = {};\n for (const issue of issues) {\n const path = issue.path\n ? issue.path.map((segment) => (typeof segment === 'object' ? segment.key : segment)).join('.')\n : '';\n if (!errors[path]) {\n errors[path] = issue.message;\n }\n }\n return filterErrors(errors);\n}\n\nexport function schemaResolver<Sync extends boolean = false>(\n schema: StandardSchemaV1,\n _options?: { sync?: Sync }\n): Sync extends true ? (values: any) => FormErrors : (values: any) => Promise<FormErrors> {\n const sync = _options?.sync ?? false;\n return ((values: any) => {\n const result = schema['~standard'].validate(values);\n if (result instanceof Promise) {\n return result.then((resolved) =>\n resolved.issues ? issuesToFormErrors(resolved.issues) : {}\n );\n }\n const errors = result.issues ? issuesToFormErrors(result.issues) : {};\n return sync ? errors : Promise.resolve(errors);\n }) as any;\n}\n"],"mappings":";;;AAIA,SAAS,mBAAmB,QAA2D;CACrF,MAAM,SAAqB,CAAC;CAC5B,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,OAAO,MAAM,OACf,MAAM,KAAK,KAAK,YAAa,OAAO,YAAY,WAAW,QAAQ,MAAM,OAAQ,EAAE,KAAK,GAAG,IAC3F;EACJ,IAAI,CAAC,OAAO,OACV,OAAO,QAAQ,MAAM;CAEzB;CACA,OAAOA,sBAAAA,aAAa,MAAM;AAC5B;AAEA,SAAgB,eACd,QACA,UACwF;CACxF,MAAM,OAAO,UAAU,QAAQ;CAC/B,SAAS,WAAgB;EACvB,MAAM,SAAS,OAAO,aAAa,SAAS,MAAM;EAClD,IAAI,kBAAkB,SACpB,OAAO,OAAO,MAAM,aAClB,SAAS,SAAS,mBAAmB,SAAS,MAAM,IAAI,CAAC,CAC3D;EAEF,MAAM,SAAS,OAAO,SAAS,mBAAmB,OAAO,MAAM,IAAI,CAAC;EACpE,OAAO,OAAO,SAAS,QAAQ,QAAQ,MAAM;CAC/C;AACF"}