Padding & Indentation
import { padLeft, padRight, padCenter, indent, dedent } from '@ppabari/strio/str';
padLeft / padRight
padLeft(str: string, length: number, char?: string): string
padRight(str: string, length: number, char?: string): string
Pad to length with char (default ' '). Multi-character pad units are supported (truncated to fit). Returns the string unchanged if already long enough.
padLeft('7', 3, '0'); // โ '007'
padRight('7', 3, '0'); // โ '700'
padLeft('hi', 5); // โ ' hi'
padLeft('x', 5, 'ab'); // โ 'ababx'
padCenter
padCenter(str: string, length: number, char?: string): string
Center within length. When padding is uneven, the extra character goes on the right.
padCenter('hi', 6); // โ ' hi '
padCenter('hi', 7, '*'); // โ '**hi***'
indent
indent(str: string, count?: number, char?: string, indentEmpty?: boolean): string
Indent every line by count repetitions of char (default: 2 spaces). Blank lines are left untouched unless indentEmpty is true.
indent('a\nb'); // โ ' a\n b'
indent('a\nb', 1, '\t'); // โ '\ta\n\tb'
dedent
dedent(str: string): string
Remove the common leading whitespace from every line โ handy for template literals. Fully-blank lines are ignored when computing the common indent; leading/trailing blank lines are trimmed.
dedent(' a\n b'); // โ 'a\nb'
dedent('\n foo\n bar\n'); // โ 'foo\n bar'