ٹرمینل میں چلانا
text run کمانڈ سے یہی ڈیش بورڈ ٹرمینل میں پوری اسکرین پر چلائیں۔
اس باب میں
- `text run`
- `q` سے بند کرنا
- آپ کی اپنی CLI
- فرق
text run وہی ایپ ٹرمینل میں چلاتا ہے۔ لے آؤٹ، کمپوننٹس، کی میپس اور روٹ ہینڈلرز مشترک ہیں، اور آؤٹ پٹ %c CSS spans کے بجائے truecolor ANSI ہوتا ہے۔
text run
ایک اسکرپٹ شامل کریں اور اسے چلائیں:
"scripts": { "dev": "text dev", "build": "text build",ہٹائے گئے: "start": "text start"شامل کردہ: "start": "text start",شامل کردہ: "tui": "text run" },bun run tui # render ./app at /bun run tui -- --path /deployments # start on another routetext run، app/ کی ہر فائل امپورٹ کرتا ہے، App Router کو اِن میموری ہسٹری کے ساتھ ماؤنٹ کرتا ہے اور اسے پوری اسکرین پر رینڈر کرتا ہے۔ <Link>، useRouter()، notFound() اور redirect() بغیر تبدیلی کے کام کرتے ہیں، اور same-origin fetch("/api/…") کالز آپ کے روٹ ہینڈلرز اسی پروسیس میں چلاتی ہیں۔ Ctrl+C ایپ بند کرتا ہے اور آپ کا اسکرول بیک بحال کرتا ہے۔ اسے Bun درکار ہے۔
q سے بند کرنا
ٹرمینل کے صارفین q کی توقع رکھتے ہیں۔ useApp().exit() ایپ کو اَن ماؤنٹ کرتا ہے اور ٹرمینل بحال کرتا ہے؛ براؤزر میں یہ کونسول ایپ کو اَن ماؤنٹ کرتا ہے۔
شامل کردہ: import { useApp } from "@textjs/app";export default function RootLayout({ children }: { children?: ReactNode }) {شامل کردہ: const app = useApp(); useInput((e) => { if (e.key === "backspace") router.back();شامل کردہ: if (e.input === "q") app.exit(); });آپ کی اپنی CLI
ایک کمپوننٹ کے لیے renderToTerminal استعمال کریں۔ یہ App Router کے بغیر ایک ایلیمنٹ ماؤنٹ کرتا ہے، اور fetch("/api/…") صرف text run کے تحت آپ کے روٹ ہینڈلرز تک پہنچتا ہے، اس لیے کمپوننٹ کو اس کا ڈیٹا پاس کریں:
import { renderToTerminal } from "@textjs/app/terminal";import { Table } from "@textjs/app";import { DEPLOYMENTS } from "./lib/deployments";const columns = [{ key: "commit", header: "Commit" }, { key: "project", header: "Project", width: 10 }];const app = await renderToTerminal(<Table columns={columns} rows={DEPLOYMENTS} autoFocus />);await app.waitUntilExit();اسے bun cli.tsx کمانڈ سے چلائیں۔ DeploymentsPage اپنی قطاریں فیچ کرتا ہے، اس لیے اسے text run درکار ہے۔
فرق
ٹرمینلز زیادہ تیزی سے ری پینٹ کرتے ہیں (~15 کے بجائے 60 fps تک) اور گرڈ کا سائز ڈاک کیے گئے کونسول کے بجائے ونڈو کے مطابق رکھتے ہیں۔ تصاویر کو URL کے بجائے پکسل ڈیٹا درکار ہوتا ہے۔ اس ڈیش بورڈ سمیت باقی سب کے لیے وہی کوڈ ہے۔
آزمائیں
یہ باب کے اختتام پر Acme Deploys ہے، جو DevTools میں چل رہی ہے۔ پیڈ پر کلک کریں، پھر نیچے دی گئی کلیدیں استعمال کریں۔
کونسول کھولیں
ایپ DevTools میں رینڈر ہوتی ہے۔پہلے Safari کی ترتیبات → ایڈوانسڈ میں “ویب ڈیولپرز کے لیے فیچرز دکھائیں” آن کریں۔ پھر یہاں کلک کریں اور Enter دبائیں۔
ڈیسک ٹاپ پر کھولیں
یہ ایپ DevTools کونسول میں رینڈر ہوتی ہے، جس کے لیے ڈیسک ٹاپ براؤزر چاہیے۔
کوئز
2 سوالاتباب مکمل کرنے کے لیے ہر سوال کا جواب دیں۔