{"version":3,"file":"create-assert-fn.mjs","sources":["../../src/utils/create-assert-fn.mts"],"sourcesContent":["import { Result } from 'ts-data-forge';\nimport { type Type } from '../type.mjs';\nimport {\n  validationErrorsToMessages,\n  type ValidationError,\n} from './validation-error.mjs';\n\nconst validationResultToString = (result: readonly ValidationError[]): string =>\n  `\\n${validationErrorsToMessages(result).join(',\\n')}` as const;\n\nexport const createAssertFn =\n  <T,>(validate: Type<T>['validate']) =>\n  (a: unknown): asserts a is T => {\n    const res = validate(a);\n\n    if (Result.isErr(res)) {\n      throw new Error(validationResultToString(res.value));\n    }\n  };\n"],"names":[],"mappings":";;;AAOA,MAAM,wBAAA,GAA2B,CAAC,MAAA,KAChC;AAAA,EAAK,0BAAA,CAA2B,MAAM,CAAA,CAAE,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA;AAE9C,MAAM,cAAA,GACX,CAAK,QAAA,KACL,CAAC,CAAA,KAA+B;AAC9B,EAAA,MAAM,GAAA,GAAM,SAAS,CAAC,CAAA;AAEtB,EAAA,IAAI,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA,EAAG;AACrB,IAAA,MAAM,IAAI,KAAA,CAAM,wBAAA,CAAyB,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,EACrD;AACF;;;;"}