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  }