TTY
[مستقر: 2 - مستقر]
مستقر: 2 استقرار: 2 - مستقر
رمز المصدر: lib/tty.js
يوفر نمط node:tty
فئتي tty.ReadStream
و tty.WriteStream
. في معظم الحالات، لن يكون من الضروري أو الممكن استخدام هذا النمط مباشرة. ومع ذلك، يمكن الوصول إليه باستخدام:
const tty = require('node:tty')
عندما يكتشف Node.js أنه يتم تشغيله مع وجود محطة نصية ("TTY") متصلة، سيتم تهيئة process.stdin
بشكل افتراضي، كمثيل لفئة tty.ReadStream
، وسيكون كلا من process.stdout
و process.stderr
بشكل افتراضي، مثيلات لفئة tty.WriteStream
. الطريقة المفضلة لتحديد ما إذا كان Node.js يتم تشغيله ضمن سياق TTY هي التحقق من أن قيمة خاصية process.stdout.isTTY
هي true
:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
في معظم الحالات، يجب ألا يكون هناك سبب يذكر لتطبيق ما لإنشاء مثيلات يدوية لفئتي tty.ReadStream
و tty.WriteStream
.
الفئة: tty.ReadStream
مضافة في: v0.5.8
- يمتد: <net.Socket>
يمثل الجانب القابل للقراءة من TTY. في الظروف العادية، سيكون process.stdin
هو مثيل tty.ReadStream
الوحيد في عملية Node.js، ويجب ألا يكون هناك سبب لإنشاء مثيلات إضافية.
readStream.isRaw
مضافة في: v0.7.7
قيمة من نوع boolean
تكون true
إذا تم تهيئة TTY حاليًا للعمل كجهاز خام.
تكون هذه العلم دائمًا false
عند بدء عملية، حتى إذا كانت المحطة تعمل في الوضع الخام. ستتغير قيمتها مع المكالمات اللاحقة إلى setRawMode
.
readStream.isTTY
مضافة في: v0.5.8
قيمة من نوع boolean
تكون دائمًا true
لـ مثيلات tty.ReadStream
.
readStream.setRawMode(mode)
مضاف في: v0.7.7
mode
<boolean> إذا كانtrue
، يُهيئtty.ReadStream
للعمل كجهاز خام. إذا كانfalse
، يُهيئtty.ReadStream
للعمل في الوضع الافتراضي. سيتم تعيين خاصيةreadStream.isRaw
إلى الوضع الناتج.- قيمة مُعادة: <this> مثيل دفق القراءة.
يسمح بتكوين tty.ReadStream
بحيث يعمل كجهاز خام.
عندما يكون في الوضع الخام، تكون الإدخالات متاحة دائمًا حرفًا حرفًا، دون تضمين المُعدِّلات. بالإضافة إلى ذلك، يتم تعطيل جميع عمليات المعالجة الخاصة للشخصيات بواسطة المحطة، بما في ذلك عرض أحرف الإدخال. لن يتسبب + في SIGINT
عند التواجد في هذا الوضع.
الصف: tty.WriteStream
مضاف في: v0.5.8
- يمتد: <net.Socket>
يمثل الجانب القابل للكتابة من TTY. في الظروف العادية، سيكون process.stdout
و process.stderr
هما مثالي tty.WriteStream
الوحيدان المُنشآن لعملية Node.js، ويجب ألا يكون هناك سبب لإنشاء مثيلات إضافية.
new tty.ReadStream(fd[, options])
[السجل]
الإصدار | التغييرات |
---|---|
v0.9.4 | يتم دعم وسيطة options . |
v0.5.8 | مضاف في: v0.5.8 |
fd
<number> مُعرّف ملف مرتبط بـ TTY.options
<Object> الخيارات المُمرَّرة إلىnet.Socket
الأب، راجعoptions
لبناءnet.Socket
.- قيمة مُعادة <tty.ReadStream>
يُنشئ ReadStream
لـ fd
المرتبط بـ TTY.
new tty.WriteStream(fd)
مضاف في: v0.5.8
fd
<number> مُعرّف ملف مرتبط بـ TTY.- قيمة مُعادة <tty.WriteStream>
يُنشئ WriteStream
لـ fd
المرتبط بـ TTY.
الحدث: 'resize'
مضاف في: v0.7.7
يُصدر حدث 'resize'
كلما تغيرت خاصية writeStream.columns
أو خاصية writeStream.rows
. لا تُمرر أي وسيطات إلى دالة الاستدعاء المُستمع عند استدعائها.
process.stdout.on('resize', () => {
console.log('تغير حجم الشاشة!')
console.log(`${process.stdout.columns}x${process.stdout.rows}`)
})
writeStream.clearLine(dir[, callback])
[السجل]
الإصدار | التغييرات |
---|---|
v12.7.0 | تم الكشف عن دالة الاستدعاء وقيمة الإرجاع الخاصة بـ write() للتيار. |
v0.7.7 | مضاف في: v0.7.7 |
dir
<number>-1
: إلى اليسار من المؤشر1
: إلى اليمين من المؤشر0
: السطر بأكمله
callback
<Function> يتم استدعاؤها بمجرد اكتمال العملية.القيمة المُرجعه: <boolean>
false
إذا كان التيار يرغب في أن تنتظر الكود المُستدعي حتى يتم إصدار حدث'drain'
قبل المتابعة في كتابة بيانات إضافية؛ خلاف ذلكtrue
.
تقوم writeStream.clearLine()
بمسح السطر الحالي من هذا WriteStream
في الاتجاه المُحدد بواسطة dir
.
writeStream.clearScreenDown([callback])
[السجل]
الإصدار | التغييرات |
---|---|
v12.7.0 | تم الكشف عن دالة الاستدعاء وقيمة الإرجاع الخاصة بـ write() للتيار. |
v0.7.7 | مضاف في: v0.7.7 |
callback
<Function> يتم استدعاؤها بمجرد اكتمال العملية.- القيمة المُرجعه: <boolean>
false
إذا كان التيار يرغب في أن تنتظر الكود المُستدعي حتى يتم إصدار حدث'drain'
قبل المتابعة في كتابة بيانات إضافية؛ خلاف ذلكtrue
.
تقوم writeStream.clearScreenDown()
بمسح هذا WriteStream
من المؤشر الحالي إلى الأسفل.
writeStream.columns
أضيف في: v0.7.7
رقم number
يحدد عدد الأعمدة التي يمتلكها TTY حاليًا. يتم تحديث هذه الخاصية كلما تم إصدار حدث 'resize'
.
writeStream.cursorTo(x[, y][, callback])
[السجل]
الإصدار | التغييرات |
---|---|
v12.7.0 | تم الكشف عن دالة الاستدعاء و قيمة الإرجاع لـ write() للتيار. |
v0.7.7 | أضيف في: v0.7.7 |
x
<number>y
<number>callback
<Function> يتم استدعاء هذه الدالة بمجرد اكتمال العملية.- قيمة الإرجاع: <boolean>
false
إذا كان التيار يرغب في أن تنتظر الكود الذي يقوم بالاستدعاء حتى يتم إصدار حدث'drain'
قبل مواصلة كتابة بيانات إضافية؛ خلاف ذلكtrue
.
يقوم writeStream.cursorTo()
بنقل مؤشر WriteStream
هذا إلى الموضع المحدد.
writeStream.getColorDepth([env])
أضيف في: v9.9.0
env
<Object> كائن يحتوي على متغيرات البيئة التي سيتم التحقق منها. هذا يسمح بمحاكاة استخدام محطة طرفية محددة. الافتراضي:process.env
.- قيمة الإرجاع: <number>
قيمة الإرجاع:
1
لـ 2،4
لـ 16،8
لـ 256،24
لـ 16,777,216 لونًا مدعومًا.
استخدم هذا لتحديد الألوان التي تدعمها المحطة الطرفية. نظرًا لطبيعة الألوان في المحطات الطرفية، من الممكن وجود إيجابيات خاطئة أو سلبيات خاطئة. يعتمد ذلك على معلومات العملية ومتغيرات البيئة التي قد تكذب بشأن المحطة الطرفية المستخدمة. من الممكن تمرير كائن env
لمحاكاة استخدام محطة طرفية محددة. يمكن أن يكون هذا مفيدًا للتحقق من سلوك إعدادات بيئة محددة.
لتطبيق دعم لون محدد، استخدم أحد إعدادات بيئة ما يلي:
- لونان:
FORCE_COLOR = 0
(يعطل الألوان) - 16 لونًا:
FORCE_COLOR = 1
- 256 لونًا:
FORCE_COLOR = 2
- 16,777,216 لونًا:
FORCE_COLOR = 3
من الممكن أيضًا تعطيل دعم اللون باستخدام متغيرات البيئة NO_COLOR
و NODE_DISABLE_COLORS
.
writeStream.getWindowSize()
مضاف في: v0.7.7
- المُرجع: <number[]>
writeStream.getWindowSize()
تُرجع حجم وحدة التحكم النصية (TTY) المُقابلة لـ WriteStream
هذا. المصفوفة من النوع [numColumns, numRows]
حيث يُمثل numColumns
و numRows
عدد الأعمدة والصفوف في وحدة التحكم النصية المُقابلة.
writeStream.hasColors([count][, env])
مضاف في: v11.13.0, v10.16.0
count
<integer> عدد الألوان المطلوبة (الحد الأدنى 2). الافتراضي: 16.env
<Object> كائن يحتوي على متغيرات البيئة للتحقق. هذا يُمكّن من محاكاة استخدام وحدة تحكم نصية محددة. الافتراضي:process.env
.- المُرجع: <boolean>
يُرجع true
إذا كان writeStream
يدعم عددًا من الألوان لا يقل عن العدد المقدم في count
. الحد الأدنى للدعم هو 2 (أسود وأبيض).
هذا يحتوي على نفس الإيجابيات الكاذبة والسلبيات الكاذبة كما هو موضح في writeStream.getColorDepth()
.
process.stdout.hasColors()
// يُرجع true أو false بناءً على ما إذا كان `stdout` يدعم 16 لونًا على الأقل.
process.stdout.hasColors(256)
// يُرجع true أو false بناءً على ما إذا كان `stdout` يدعم 256 لونًا على الأقل.
process.stdout.hasColors({ TMUX: '1' })
// يُرجع true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' })
// يُرجع false (إعداد البيئة يتظاهر بأنه يدعم 2 ** 8 ألوان).
writeStream.isTTY
مضاف في: v0.5.8
قيمة من نوع boolean
تكون دائمًا true
.
writeStream.moveCursor(dx, dy[, callback])
[السجل]
الإصدار | التغييرات |
---|---|
v12.7.0 | تم الكشف عن دالة الاستدعاء و قيمة الإرجاع للدالة write() للتيار. |
v0.7.7 | مضاف في: v0.7.7 |
dx
<number>dy
<number>callback
<Function> يتم استدعاء هذه الدالة عند اكتمال العملية.- المُرجع: <boolean>
false
إذا كان التيار يرغب في أن تنتظر الكود المُستدعي حدث'drain'
قبل متابعة كتابة بيانات إضافية؛ خلاف ذلكtrue
.
writeStream.moveCursor()
يحرك مؤشر WriteStream
هذا بشكل نسبي إلى موقعه الحالي.
writeStream.rows
مضاف في: v0.7.7
رقم يحدد عدد الصفوف الموجودة حاليًا في TTY. يتم تحديث هذه الخاصية كلما تم إصدار حدث 'resize'
.
tty.isatty(fd)
مضاف في: v0.5.8
ترجع طريقة tty.isatty()
القيمة true
إذا كان fd
المُعطى مرتبطًا بـ TTY و false
إذا لم يكن كذلك، بما في ذلك عندما لا يكون fd
عددًا صحيحًا غير سالب.