( content: string, displayWidth: number, targetWidth: number, align: 'left' | 'center' | 'right' | null | undefined, )
| 364 | * stripAnsi'd text, so ANSI codes in `content` don't affect padding). |
| 365 | */ |
| 366 | export function padAligned( |
| 367 | content: string, |
| 368 | displayWidth: number, |
| 369 | targetWidth: number, |
| 370 | align: 'left' | 'center' | 'right' | null | undefined, |
| 371 | ): string { |
| 372 | const padding = Math.max(0, targetWidth - displayWidth) |
| 373 | if (align === 'center') { |
| 374 | const leftPad = Math.floor(padding / 2) |
| 375 | return ' '.repeat(leftPad) + content + ' '.repeat(padding - leftPad) |
| 376 | } |
| 377 | if (align === 'right') { |
| 378 | return ' '.repeat(padding) + content |
| 379 | } |
| 380 | return content + ' '.repeat(padding) |
| 381 | } |
| 382 |
no test coverage detected