Files
zesdex/tsconfig.json
T
asepharyana 3e260e6077 refactor(tui): rombak renderer ke OpenTUI React bindings
Ganti renderer ANSI line-based (render.ts) dan event loop raw stdin dengan
OpenTUI React bindings (@opentui/react + @opentui/core, React 19.2):

- ui.tsx: komponen ZesdexApp (header/scrollbox transkrip/input/footer),
  adaptor toControllerKey (OpenTUI KeyEvent -> controller KeyEvent),
  bootTui (createCliRenderer + createRoot + mount).
- run.ts: pakai bootTui, jalankan OpenTUI sampai user quit.
- state/action/command/controller tetap logika murni (tidak tersentuh).
- 5 unit test baru untuk toControllerKey; 79 test total hijau.
- tsconfig: jsx react-jsx + jsxImportSource @opentui/react.
- hapus render.ts (tidak terpakai); hapus script format rusak (bun fmt).
- deps: @opentui/core, @opentui/react, react, @types/react.

verify: tsc 0 err, bun test 79 pass, dist/zesdex merender TUI via pty.
2026-09-03 00:10:01 +07:00

38 lines
1.2 KiB
JSON

{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"moduleDetection": "force",
"lib": ["ESNext", "DOM"],
"types": ["bun"],
"strict": true,
"noEmit": true,
"allowImportingTsExtensions": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"isolatedModules": true,
"forceConsistentCasingInFileNames": true,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"jsx": "react-jsx",
"jsxImportSource": "@opentui/react",
"paths": {
"@zesdex/domain": ["./src/domain/index.ts"],
"@zesdex/application": ["./src/application/index.ts"],
"@zesdex/infrastructure": ["./src/infrastructure/index.ts"],
"@zesdex/api": ["./src/interfaces/api/index.ts"],
"@zesdex/ws": ["./src/interfaces/ws/index.ts"],
"@zesdex/grpc": ["./src/interfaces/grpc/index.ts"],
"@zesdex/web": ["./src/interfaces/web/index.ts"],
"@zesdex/daemon": ["./src/interfaces/daemon/index.ts"],
"@zesdex/tui": ["./src/interfaces/tui/index.ts"]
}
},
"include": ["src"]
}