{"version":3,"file":"schema-resolver.mjs","names":[],"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,OAAO,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"}