Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const warningFailingBudgets = cell.failingBudgets.some(result => result.level === BudgetLevel.WARN);
return `${errorFailingBudgets ? '🚨 ' : warningFailingBudgets ? '⚠️ ' : ''}${formatBytes(
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}\``;
switch (type) {
case BudgetType.DELTA:
return `${prefix} failed the ${sizeKey} budget delta limit. Expected to increase no more than ${expectedFormatted}, but increased by ${actualFormatted}`;
case BudgetType.PERCENT_DELTA:
const warningBudgets = failingBudgets.filter(budget => budget.level === BudgetLevel.WARN);