1234567891011121314151617181920212223242526272829303132333435 |
- import {formatBytesBase2} from 'sentry/utils/bytes/formatBytesBase2';
- import {formatBytesBase10} from 'sentry/utils/bytes/formatBytesBase10';
- import {
- ABYTE_UNITS,
- DURATION_UNITS,
- SIZE_UNITS,
- } from 'sentry/utils/discover/fieldRenderers';
- import type {RateUnit} from 'sentry/utils/discover/fields';
- import getDuration from 'sentry/utils/duration/getDuration';
- import {formatRate} from 'sentry/utils/formatters';
- import {formatPercentage} from 'sentry/utils/number/formatPercentage';
- export function formatChartValue(value: number, type: string, unit?: string): string {
- switch (type) {
- case 'integer':
- case 'number':
- return value.toLocaleString();
- case 'percentage':
- return formatPercentage(value, 2);
- case 'duration':
- return getDuration((value * (unit ? DURATION_UNITS[unit] : 1)) / 1000, 2, true);
- case 'size':
- const bytes = value * SIZE_UNITS[unit ?? 'byte'];
- const formatter = ABYTE_UNITS.includes(unit ?? 'byte')
- ? formatBytesBase10
- : formatBytesBase2;
- return formatter(bytes);
- case 'rate':
- return formatRate(value, unit as RateUnit);
- default:
- return value.toString();
- }
- }
|