A couple tiny functions for padding a string that may contain ANSI escape sequences.
npm install ansi-pad
import {padStart, padEnd} from 'ansi-pad';
// Let's pad a string in a width-aware way, handling ANSI escapes, emojis etc. specially
const FOO = `\u001b[31mFOO\u001b[39m`;
padStart ( FOO, 2, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `${FOO}`
padStart ( FOO, 5, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `๐จโ๐ฉโ๐งโ๐ฆ${FOO}`
padStart ( FOO, 7, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `๐จโ๐ฉโ๐งโ๐ฆ๐จโ๐ฉโ๐งโ๐ฆ${FOO}`
padEnd ( FOO, 2, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `${FOO}`
padEnd ( FOO, 5, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `${FOO}๐จโ๐ฉโ๐งโ๐ฆ`
padEnd ( FOO, 7, '๐จโ๐ฉโ๐งโ๐ฆ' ) // => `${FOO}๐จโ๐ฉโ๐งโ๐ฆ๐จโ๐ฉโ๐งโ๐ฆ`
MIT ยฉ Fabio Spampinato