Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function formatBytes(bytes: number, options: FormattingOptions = {}): string {
const { units = BYTES_IN_KIBIBYTE, unitString = KIB_UNIT_STRING, formatter = defaultByteFormatting } = options;
return `${formatter(bytes, units).toLocaleString()} ${unitString}`;
}
export function formatSha(sha: string): string {
return sha.slice(0, 7);
}
function formatPercent(value: number): string {
return `${(value * 100).toFixed(3)}%`;
}
const levelToString = {
[BudgetLevel.WARN]: 'Warning',
[BudgetLevel.ERROR]: 'Error'
};
const levelToEmoji = {
[BudgetLevel.WARN]: '⚠️',
[BudgetLevel.ERROR]: '🚫'
};
export function formatBudgetResult(budgetResult: BudgetResult, itemName: string, useEmoji: boolean = false): string {
const { actual, expected, level, sizeKey, type } = budgetResult;
const actualFormatted = type === BudgetType.PERCENT_DELTA ? formatPercent(actual) : formatBytes(actual);
const expectedFormatted = type === BudgetType.PERCENT_DELTA ? formatPercent(expected) : formatBytes(expected);
const diffFormatted =
type === BudgetType.PERCENT_DELTA ? formatPercent(actual - expected) : formatBytes(actual - expected);
const prefix = `${(useEmoji ? levelToEmoji : levelToString)[level]}: \`${itemName}\``;
const errorBudgets = failingBudgets.filter(budget => budget.level === BudgetLevel.ERROR);
const warningBudgets = failingBudgets.filter(budget => budget.level === BudgetLevel.WARN);
const errorFailingBudgets = cell.failingBudgets.some(result => result.level === BudgetLevel.ERROR);
const warningFailingBudgets = cell.failingBudgets.some(result => result.level === BudgetLevel.WARN);