Files
SkyArtShop/backend/node_modules/gauge/wide-truncate.js
Local Server 8bb6430a70 Website restoration: Node.js backend, restored design, GitHub sync disabled
- Replaced broken .NET backend with Node.js/Express
- Restored original website design with purple gradient hero
- Updated homepage and shop pages with Bootstrap 5 responsive design
- Disabled GitHub remote sync - all code now stored locally only
- Created backup scripts and documentation
- All changes saved on Ubuntu server at /var/www/SkyArtShop
2025-12-13 17:53:34 -06:00

26 lines
828 B
JavaScript

'use strict'
var stringWidth = require('string-width')
var stripAnsi = require('strip-ansi')
module.exports = wideTruncate
function wideTruncate (str, target) {
if (stringWidth(str) === 0) return str
if (target <= 0) return ''
if (stringWidth(str) <= target) return str
// We compute the number of bytes of ansi sequences here and add
// that to our initial truncation to ensure that we don't slice one
// that we want to keep in half.
var noAnsi = stripAnsi(str)
var ansiSize = str.length + noAnsi.length
var truncated = str.slice(0, target + ansiSize)
// we have to shrink the result to account for our ansi sequence buffer
// (if an ansi sequence was truncated) and double width characters.
while (stringWidth(truncated) > target) {
truncated = truncated.slice(0, -1)
}
return truncated
}