I ported Markus Kuhn’s wcwidth to TypeScript and optimized it with bitset lookups for O(1) performance. It now covers the full Unicode 15.1 combining ranges.
GitHub: https://github.com/dawsonhuang0/Wcwidth-O1 NPM: https://www.npmjs.com/package/wcwidth-o1
Feedback welcome!
I was about to say you could figure this kind of thing out with Intl.Segmenter but then saw it was a different problem. Nice.
Nice