Spaces:
Paused
Paused
Download node_modules/string-width/index.js from sam522/GenAI_Course: direct link, hf CLI and curl.
- Browser
- Download file 923 Bytes
-
https://huggingface.co/spaces/sam522/GenAI_Course/resolve/bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/string-width/index.js
- Command line
-
hf download hf://spaces/sam522/GenAI_Course@bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/string-width/index.js
-
curl -L -o index.js https://huggingface.co/spaces/sam522/GenAI_Course/resolve/bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/string-width/index.js
923 Bytes
| ; | |
| const stripAnsi = require('strip-ansi'); | |
| const isFullwidthCodePoint = require('is-fullwidth-code-point'); | |
| const emojiRegex = require('emoji-regex'); | |
| const stringWidth = string => { | |
| if (typeof string !== 'string' || string.length === 0) { | |
| return 0; | |
| } | |
| string = stripAnsi(string); | |
| if (string.length === 0) { | |
| return 0; | |
| } | |
| string = string.replace(emojiRegex(), ' '); | |
| let width = 0; | |
| for (let i = 0; i < string.length; i++) { | |
| const code = string.codePointAt(i); | |
| // Ignore control characters | |
| if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { | |
| continue; | |
| } | |
| // Ignore combining characters | |
| if (code >= 0x300 && code <= 0x36F) { | |
| continue; | |
| } | |
| // Surrogates | |
| if (code > 0xFFFF) { | |
| i++; | |
| } | |
| width += isFullwidthCodePoint(code) ? 2 : 1; | |
| } | |
| return width; | |
| }; | |
| module.exports = stringWidth; | |
| // TODO: remove this in the next major version | |
| module.exports.default = stringWidth; | |