github.com/grafana/pyroscope@v1.18.0/public/app/models/utils.ts (about) 1 import type { ZodError, ZodType } from 'zod'; 2 import { Result } from '@pyroscope/util/fp'; 3 4 /** 5 * modelToResult converts a (most likely) zod model into a Result 6 */ 7 // eslint-disable-next-line import/prefer-default-export 8 export function modelToResult<T>( 9 s: ZodType<T>, 10 data: unknown 11 ): Result<T, ZodError> { 12 const result = s.safeParse(data); 13 14 // TODO check why this is failing 15 if (!result.success) { 16 return Result.err((result as ShamefulAny).error); 17 } 18 19 return Result.ok(result.data); 20 }