2.0.1 โข Published 9 months ago
display-width v2.0.1
display-width
A node.js port of uwcwidth, a fast function for determining a string's display width
That code is a port of POSIX wcswidth, a standard function for counting the number of columns occupied by a string, and is derived from musl libc
How to use it
import { wcswidth } from "display-width";
// wcswidth("๐ฉโโค๏ธโ๐จ") == 2
console.log(wcswidth("\u{1F469}\u{200D}\u{2764}\u{FE0F}\u{200D}\u{1F468}"));
Why to use it
>> wcswidth("cafeฬ") == 4
>> "cafeฬ".length == 5
>> wcswidth("โ ๏ธ warning") == 9
>> "โ ๏ธ warning".length == 10
>> wcswidth("๐จโ๐จโ๐งโ๐ง") == 2
>> "๐จโ๐จโ๐งโ๐ง".length == 11
>> wcswidth("๐ฉโโค๏ธโ๐จ") == 2
>> "๐ฉโโค๏ธโ๐จ".length == 8
Is it fast?
yes! Compared to string-width, it's about 33x faster
โโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโ
โ (index) โ Task Name โ ops/sec โ Average Time (ns) โ Margin โ Samples โ
โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโค
โ 0 โ 'display-width' โ '188,426' โ 5307.115321339439 โ 'ยฑ1.55%' โ 18843 โ
โ 1 โ 'string-width' โ '5,586' โ 179008.73345259373 โ 'ยฑ11.73%' โ 559 โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโ
see the bench directory for details
Is it large?
no!
Does it have any dependencies?
no!
Do you completely understand it?
no! I ported the code and all the tests from uwcwidth though, so I have good vibes about it