Files
prowler/ui/lib/attack-paths/format.ts

30 lines
862 B
TypeScript

/**
* Formatting utilities for attack path graph nodes
*/
/**
* Format camelCase labels to space-separated text
* e.g., "ProwlerFinding" -> "Prowler Finding", "AWSAccount" -> "Aws Account"
*/
export function formatNodeLabel(label: string): string {
return label
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2")
.replace(/([a-z\d])([A-Z])/g, "$1 $2")
.trim()
.split(" ")
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
.join(" ");
}
/**
* Format multiple node labels into a readable string
* e.g., ["ProwlerFinding"] -> "Prowler Finding"
*/
export function formatNodeLabels(labels: string[]): string {
return labels.map(formatNodeLabel).join(", ");
}
export function truncateLabel(text: string, maxChars: number): string {
return text.length > maxChars ? `${text.substring(0, maxChars)}...` : text;
}