Skip to content

Replacements for string-width

fast-string-width

fast-string-width is a drop‑in replacement for string-width that’s faster and smaller.

ts
import stringWidth from 'string-width'
import stringWidth from 'fast-string-width'

console.log(stringWidth('abc')) // 3
console.log(stringWidth('👩‍👩‍👧‍👦')) // 1
console.log(stringWidth('\u001b[31mhello\u001b[39m')) // 5

Bun API (native)

If you’re on Bun ≥ 1.0.29, you can use the built‑in stringWidth:

ts
import stringWidth from 'string-width'
import { stringWidth } from 'bun'

console.log(stringWidth('abc')) // 3
console.log(stringWidth('👩‍👩‍👧‍👦')) // 1
console.log(stringWidth('\u001b[31mhello\u001b[39m')) // 5
console.log(
  stringWidth('\u001b[31mhello\u001b[39m', { countAnsiEscapeCodes: false })
) // 5

Released under the MIT License. (4f884625)