टर्मिनल में चलाना

text run और renderToTerminal से टर्मिनल में App Router ऐप या एक कंपोनेंट रेंडर करें।

text run एक App Router ऐप को टर्मिनल में रेंडर करता है। लेआउट, कंपोनेंट, कीमैप और रूट हैंडलर ब्राउज़र के साथ साझा होते हैं। आउटपुट %c span के बजाय ट्रूकलर ANSI होता है।

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

बाहर निकलने के लिए Ctrl+C दबाएं। text run के लिए Bun ज़रूरी है।

text run

text run कमांड app/ की हर फ़ाइल इंपोर्ट करती है, इन-मेमोरी हिस्ट्री के साथ App Router माउंट करती है और उसे पूरी स्क्रीन पर ड्रॉ करती है। <Link>, useRouter(), notFound() और redirect() बिना बदलाव के काम करते हैं।

समान ओरिजिन वाली fetch("/api/...") कॉल आपके route.ts हैंडलर उसी प्रोसेस में चलाती हैं, ठीक वैसे ही जैसे text dev उन्हें सर्व करता है। बाकी URL के लिए अनुरोध नेटवर्क पर जाते हैं।

renderToTerminal

एक कंपोनेंट या आपकी अपनी CLI के लिए:

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

useApp().exit() अनमाउंट करके टर्मिनल को पिछली स्थिति में लौटाता है।

विकल्पविवरण
stdin / stdoutडिफ़ॉल्ट process.stdin / process.stdout
cols / rowsतय आकार (डिफ़ॉल्ट: टर्मिनल के आकार के अनुसार)
altScreenबाहर निकलने पर स्क्रॉलबैक वापस लाएं (डिफ़ॉल्ट true)
mouseव्हील से स्क्रॉल करना (डिफ़ॉल्ट true)
exitOnCtrlCडिफ़ॉल्ट true
fpsफ़्रेम की अधिकतम दर (डिफ़ॉल्ट 60)
patchConsoleबाहर निकलने तक console.* को रोकें (डिफ़ॉल्ट true)
theme / transparentcreateConsoleRoot की तरह

आउटपुट

हर फ़्रेम में पंक्ति-दर-पंक्ति अंतर की जांच होती है। सिर्फ़ बदली हुई पंक्तियां लिखी जाती हैं, जिन्हें सिंक्रोनाइज़्ड-आउटपुट मार्कर में लपेटा जाता है ताकि इन मार्कर का समर्थन करने वाले टर्मिनल कभी अधूरा ड्रॉ हुआ फ़्रेम न दिखाएं। निष्क्रिय ऐप कुछ नहीं लिखते।

इनपुट

रॉ-मोड stdin को पार्स करके ब्राउज़र जैसे ही इवेंट बनाए जाते हैं: मॉडिफ़ायर के साथ ऐरो और फ़ंक्शन कुंजियां, Alt कॉम्बिनेशन, ब्रैकेटेड पेस्ट, SGR माउस व्हील और kitty कीबोर्ड प्रोटोकॉल। अगर आपको कहीं और इनकी ज़रूरत हो, तो TerminalInputParser और parseTerminalInput एक्सपोर्ट किए गए हैं।

अंतर

फ़ीचरDevToolsटर्मिनल
फ़्रेम की दर~15fpsfps तक
ग्रिड का आकारडॉक किया गया कंसोलटर्मिनल विंडो
<Image src>कैनवस के ज़रिए लोड होता हैpixels इस्तेमाल करें
console.logआपके फ़्रेमबाहर निकलने तक रोका जाता है
GitHub पर यह पेज एडिट करें