Something went wrong. Try again.
personal web client for Bluesky
typescript solidjs bluesky atcute
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041const encoder = new TextEncoder();
const segmenter = new Intl.Segmenter();
export const graphemeLen = (text: string): number => { var length = asciiLen(text);
if (length === undefined) { return _graphemeLen(text); }
return length;};
export const asciiLen = (str: string): number | undefined => { for (var idx = 0, len = str.length; idx < len; idx++) { const char = str.charCodeAt(idx);
if (char > 127) { return undefined; } }
return len;};
export const getUtf8Length = (str: string): number => { return encoder.encode(str).byteLength;};
const _graphemeLen = (text: string): number => { var iterator = segmenter.segment(text)[Symbol.iterator](); var count = 0;
while (!iterator.next().done) { count++; }
return count;};