import { fold_raw } from '../build/dev/javascript/string_width/string_width.mjs' import * as sw from '../build/dev/javascript/string_width/string_width.mjs' let options = sw.new$() function string_width(str) { const {curr, max} = fold_raw(str, options, {curr: 0, max: 0}, function(state, chr, width) { if (chr == "\n") { state.max = Math.max(state.curr, state.max) state.curr = 0 } else { state.curr += width } return state }) return Math.max(curr, max) } let sum = 0; for(let i = 0; i < 1000000; ++i) { sum += string_width("\x1b[1;95m· \x1b[0m\x1b[K\x1b[33mdeno\x1b[0m\x1b[K, \x1b[33mtypescript\x1b[0m\x1b[K, \x1b[33mts\x1b[0m\x1b[K") } console.log(sum)