github.com/pyroscope-io/pyroscope@v0.37.3-0.20230725203016-5f6947968bd0/packages/pyroscope-models/src/units.ts (about) 1 import { z } from 'zod'; 2 3 export const units = [ 4 'samples', 5 'objects', 6 'goroutines', 7 'bytes', 8 'lock_samples', 9 'lock_nanoseconds', 10 'trace_samples', 11 'exceptions', 12 ]; 13 14 export const UnitsSchema = z.preprocess((u) => { 15 if (typeof u === 'string') { 16 if (units.includes(u)) { 17 return u; 18 } 19 } 20 return 'unknown'; 21 }, z.enum(['samples', 'objects', 'goroutines', 'bytes', 'lock_samples', 'lock_nanoseconds', 'trace_samples', 'exceptions', 'unknown'])); 22 23 export type UnitsType = typeof units[number]; 24 export type Units = z.infer<typeof UnitsSchema>;