{"version":3,"file":"create-cast-fn.mjs","sources":["../../src/utils/create-cast-fn.mts"],"sourcesContent":["import { Result } from 'ts-data-forge';\nimport { type Type } from '../type.mjs';\nimport { validationErrorsToMessages } from './validation-error.mjs';\n\nexport const createCastFn =\n  <T,>(validate: Type<T>['validate']) =>\n  (a: unknown): T => {\n    const res = validate(a);\n\n    if (Result.isErr(res)) {\n      throw new Error(validationErrorsToMessages(res.value).join('\\n'));\n    }\n\n    // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n    return a as T;\n  };\n"],"names":[],"mappings":";;;AAIO,MAAM,YAAA,GACX,CAAK,QAAA,KACL,CAAC,CAAA,KAAkB;AACjB,EAAA,MAAM,GAAA,GAAM,SAAS,CAAC,CAAA;AAEtB,EAAA,IAAI,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA,EAAG;AACrB,IAAA,MAAM,IAAI,MAAM,0BAAA,CAA2B,GAAA,CAAI,KAAK,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,EAClE;AAGA,EAAA,OAAO,CAAA;AACT;;;;"}