mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-23 20:04:27 +00:00
30 lines
862 B
TypeScript
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;
|
|
}
|