πŸ“„ File detail

ink/termio.ts

🧩 .tsπŸ“ 43 linesπŸ’Ύ 1,036 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œink/”, which covers Ink terminal UI (layouts, TTY IO, keyboard, renderer components). On the API surface it exposes Parser, colorsEqual, defaultStyle, and stylesEqual β€” mainly functions, hooks, or classes.

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

ANSI Parser Module A semantic ANSI escape sequence parser inspired by ghostty, tmux, and iTerm2. Key features: - Semantic output: produces structured actions, not string tokens - Streaming: can parse input incrementally via Parser class - Style tracking: maintains text style state across parse calls - Comprehensive: supports SGR, CSI, OSC, ESC sequences Usage: ```typescript import { Parser } from './termio.js' const parser = new Parser() const actions = parser.feed('\x1b[31mred\x1b[0m') // => [{ type: 'text', graphemes: [...], style: { fg: { type: 'named', name: 'red' }, ... } }] ```

πŸ“€ Exports (heuristic)

  • Parser
  • colorsEqual
  • defaultStyle
  • stylesEqual

πŸ–₯️ Source preview

/**
 * ANSI Parser Module
 *
 * A semantic ANSI escape sequence parser inspired by ghostty, tmux, and iTerm2.
 *
 * Key features:
 * - Semantic output: produces structured actions, not string tokens
 * - Streaming: can parse input incrementally via Parser class
 * - Style tracking: maintains text style state across parse calls
 * - Comprehensive: supports SGR, CSI, OSC, ESC sequences
 *
 * Usage:
 *
 * ```typescript
 * import { Parser } from './termio.js'
 *
 * const parser = new Parser()
 * const actions = parser.feed('\x1b[31mred\x1b[0m')
 * // => [{ type: 'text', graphemes: [...], style: { fg: { type: 'named', name: 'red' }, ... } }]
 * ```
 */

// Parser
export { Parser } from './termio/parser.js'
// Types
export type {
  Action,
  Color,
  CursorAction,
  CursorDirection,
  EraseAction,
  Grapheme,
  LinkAction,
  ModeAction,
  NamedColor,
  ScrollAction,
  TextSegment,
  TextStyle,
  TitleAction,
  UnderlineStyle,
} from './termio/types.js'
export { colorsEqual, defaultStyle, stylesEqual } from './termio/types.js'