Terminalde çalıştırma

text run ve renderToTerminal ile bir App Router uygulamasını veya tek bir bileşeni terminalde render edin.

text run, bir App Router uygulamasını terminalde render eder. Layout, bileşenler, tuş haritaları ve rota işleyicileri tarayıcıyla ortaktır. Çıktı, %c span’leri yerine truecolor ANSI kullanır.

text run              # render ./app at /text run --path /logs # start on another route

Çıkmak için Ctrl+C tuşlarına basın. text run için Bun gerekir.

text run

text run, app/ dizinindeki tüm dosyaları içe aktarır, App Router’ı bellekte tutulan bir geçmişle bağlar ve tam ekran çizer. <Link>, useRouter(), notFound() ve redirect() değişiklik gerektirmeden çalışır.

Aynı kökenden gelen fetch("/api/...") çağrıları, route.ts işleyicilerinizi süreç içinde, tam olarak text dev komutunun sunduğu gibi çalıştırır. Diğer URL’ler ağa yönlendirilir.

renderToTerminal

Tek bir bileşen veya kendi CLI’ınız için:

cli.tsxtsx
import { renderToTerminal } from "@textjs/app/terminal";import { App } from "./app";const app = await renderToTerminal(<App />);await app.waitUntilExit();

useApp().exit(), bileşeni kaldırır ve terminali eski durumuna getirir.

SeçenekAçıklama
stdin / stdoutVarsayılan: process.stdin / process.stdout
cols / rowsSabit boyut (varsayılan: terminali takip etme)
altScreenÇıkışta kaydırma geçmişini geri yükleme (varsayılan: true)
mouseTekerlekle kaydırma (varsayılan: true)
exitOnCtrlCVarsayılan: true
fpsKare hızı sınırı (varsayılan: 60)
patchConsoleÇıkışa kadar console.* çağrılarını bekletme (varsayılan: true)
theme / transparentcreateConsoleRoot ile aynı

Çıktı

Her karenin farkı satır satır hesaplanır. Yalnızca değişen satırlar yazılır ve eşzamanlı çıktı işaretleyicileriyle çevrelenir; böylece bunları destekleyen terminaller hiçbir zaman yarım çizilmiş bir kare göstermez. Boştaki uygulamalar hiçbir şey yazmaz.

Girdi

Ham moddaki stdin, tarayıcının ürettiği olaylarla aynı olaylara ayrıştırılır: değiştirici tuşlarla birlikte ok ve işlev tuşları, Alt kombinasyonları, köşeli ayraçlı yapıştırma, SGR fare tekerleği ve kitty klavye protokolü. Başka yerlerde ihtiyaç duymanız durumunda TerminalInputParser ve parseTerminalInput dışa aktarılır.

Farklar

ÖzellikDevToolsTerminal
Kare hızı~15 fpsEn fazla fps
Izgara boyutuKenetlenmiş konsolTerminal penceresi
<Image src>Canvas üzerinden yüklenirpixels kullanın
console.logKarelerinizÇıkışa kadar bekletilir
Bu sayfayı GitHub’da düzenle