टर्मिनल में चलाना
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 के लिए:
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 / transparent | createConsoleRoot की तरह |
आउटपुट
हर फ़्रेम में पंक्ति-दर-पंक्ति अंतर की जांच होती है। सिर्फ़ बदली हुई पंक्तियां लिखी जाती हैं, जिन्हें सिंक्रोनाइज़्ड-आउटपुट मार्कर में लपेटा जाता है ताकि इन मार्कर का समर्थन करने वाले टर्मिनल कभी अधूरा ड्रॉ हुआ फ़्रेम न दिखाएं। निष्क्रिय ऐप कुछ नहीं लिखते।
इनपुट
रॉ-मोड stdin को पार्स करके ब्राउज़र जैसे ही इवेंट बनाए जाते हैं: मॉडिफ़ायर के साथ ऐरो और फ़ंक्शन कुंजियां, Alt कॉम्बिनेशन, ब्रैकेटेड पेस्ट, SGR माउस व्हील और kitty कीबोर्ड प्रोटोकॉल। अगर आपको कहीं और इनकी ज़रूरत हो, तो TerminalInputParser और parseTerminalInput एक्सपोर्ट किए गए हैं।
अंतर
| फ़ीचर | DevTools | टर्मिनल |
|---|---|---|
| फ़्रेम की दर | ~15fps | fps तक |
| ग्रिड का आकार | डॉक किया गया कंसोल | टर्मिनल विंडो |
<Image src> | कैनवस के ज़रिए लोड होता है | pixels इस्तेमाल करें |
console.log | आपके फ़्रेम | बाहर निकलने तक रोका जाता है |