MCPcopy Create free account
hub / github.com/Noumena-Network/code / parseToSpans

Function parseToSpans

src/ink/Ansi.tsx:137–155  ·  view source on GitHub ↗
(input: string)

Source from the content-addressed store, hash-verified

135 * Parse an ANSI string into spans using the termio parser.
136 */
137export function parseToSpans(input: string): Span[] {
138 if (input.length >= ANSI_SPAN_CACHE_MIN_LENGTH) {
139 const key = hashContent(input);
140 const cached = ansiSpanCache.get(key);
141 if (cached) {
142 ansiSpanCache.delete(key);
143 ansiSpanCache.set(key, cached);
144 return cached;
145 }
146 const spans = parseToSpansUncached(input);
147 if (ansiSpanCache.size >= ANSI_SPAN_CACHE_MAX) {
148 const oldest = ansiSpanCache.keys().next().value;
149 if (oldest !== undefined) ansiSpanCache.delete(oldest);
150 }
151 ansiSpanCache.set(key, spans);
152 return spans;
153 }
154 return parseToSpansUncached(input);
155}
156
157function parseToSpansUncached(input: string): Span[] {
158 const parser = new Parser();

Callers 2

Ansi.tsxFile · 0.85
Ansi.test.tsFile · 0.85

Calls 7

parseToSpansUncachedFunction · 0.85
deleteMethod · 0.80
setMethod · 0.80
keysMethod · 0.80
hashContentFunction · 0.50
getMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected