Ввод-вывод
Интерфейсы для чтения, записи, перемещения по данным и управления ресурсами. Для работы с потоками данных, файловым вводом-выводом и консолью.
Например, Deno.stdin, Deno.inspect
перечисление Deno.SeekMode
Перечисление, определяющее режим перемещения для API ввода-вывода, поддерживающих перемещение по данным.
Элементы
Current = 1 End = 2 Start = 0 функция Deno.consoleSize
consoleSize(): { columns: number; rows: number; }Возвращает размер консоли в столбцах и строках.
const { columns, rows } = Deno.consoleSize();
Возвращает размер окна консоли, сообщённый операционной системой. Это не отражает количество символов, которое поместится в окне консоли, но может использоваться при его вычислении.
Выбрасывает исключение, если ни один из потоков stdin, stdout или stderr не подключён к терминалу (например, все потоки перенаправлены или подключены к каналам). Перед вызовом используйте Deno.stdout.isTerminal, чтобы выполнить проверку.
Возвращаемый тип
{ columns: number; rows: number; } функция Deno.inspect
inspect(
value: unknown,
options?: InspectOptions,
): stringПреобразует входные данные в строку в том же формате, что и вывод console.log().
const obj = {
a: 10,
b: "hello",
};
const objAsString = Deno.inspect(obj); // { a: 10, b: "hello" }
console.log(obj); // prints same value as objAsString, e.g. { a: 10, b: "hello" }
Для управления и настройки вывода inspect() или при использовании логирования console для объектов можно зарегистрировать пользовательские функции инспектирования с помощью символа Symbol.for("Deno.customInspect"):
class A {
x = 10;
y = "hello";
[Symbol.for("Deno.customInspect")]() {
return `x=${this.x}, y=${this.y}`;
}
}
const inStringFormat = Deno.inspect(new A()); // "x=10, y=hello"
console.log(inStringFormat); // prints "x=10, y=hello"
Глубину обхода можно указать с помощью параметра depth:
Deno.inspect({a: {b: {c: {d: 'hello'}}}}, {depth: 2}); // { a: { b: [Object] } }
Параметры
value: unknown options: InspectOptions Возвращаемый тип
string интерфейс Deno.InspectOptions
Параметры, которые можно указать при вызове Deno.inspect.
Свойства
colors: boolean = false Стилизовать вывод с помощью цветов ANSI.
compact: boolean = true Пытаться размещать в одной строке несколько элементов коллекции.
depth: number = 4 Глубина обхода вложенных объектов.
breakLength: number = 80 Максимальная длина вывода при размещении в одной строке.
escapeSequences: boolean = true Экранировать ли последовательности.
iterableLimit: number = 100 Максимальное количество выводимых элементов итерируемой коллекции.
showProxy: boolean = false Показывать цель и обработчик объекта Proxy.
sorted: boolean = false Сортировать элементы Object, Set и Map по ключу.
trailingComma: boolean = false Добавлять завершающую запятую в многострочные коллекции.
getters: boolean = false Вычислять результат вызова геттеров.
strAbbreviateSize: number Максимальная длина строки, после которой она обрезается и заменяется многоточием.
интерфейс Deno.SetRawOptions
Свойства
cbreak: boolean Параметр cbreak позволяет указать, что символы, соответствующие сигналу, должны по-прежнему генерироваться. При отключении режима raw этот параметр игнорируется. Эта функция работает только в Linux и Mac OS.
переменная Deno.stderr
Ссылка на stderr, которую можно использовать для прямой записи в stderr. Она реализует специфичные для Deno интерфейсы Writer, WriterSync и Closer, а также предоставляет интерфейс WritableStream.
Это низкоуровневые конструкции, а интерфейс console — более простой способ взаимодействия с stdout и stderr.
Свойства
writable: WritableStream<Uint8Array<ArrayBufferLike>> Интерфейс записываемого потока для stderr.
Методы
write(p: Uint8Array): Promise<number> Записывает содержимое буфера массива (p) в stderr.
Возвращает количество записанных байтов.
Не гарантируется, что весь буфер будет записан за один вызов.
const encoder = new TextEncoder();
const data = encoder.encode("Hello world");
const bytesWritten = await Deno.stderr.write(data); // 11
writeSync(p: Uint8Array): number Синхронно записывает содержимое буфера массива (p) в stderr.
Возвращает количество записанных байтов.
Не гарантируется, что весь буфер будет записан за один вызов.
const encoder = new TextEncoder();
const data = encoder.encode("Hello world");
const bytesWritten = Deno.stderr.writeSync(data); // 11
close(): void Закрывает stderr, освобождая ресурс.
Deno.stderr.close();
isTerminal(): boolean Проверяет, является ли stderr терминалом (TTY).
// This example is system and context specific
Deno.stderr.isTerminal(); // true
переменная Deno.stdin
Ссылка на stdin, которую можно использовать для прямого чтения из stdin.
Она реализует специфичные для Deno интерфейсы Reader, ReaderSync и Closer, а также предоставляет интерфейс ReadableStream.
Чтение фрагментов из потока для чтения
const decoder = new TextDecoder();
for await (const chunk of Deno.stdin.readable) {
const text = decoder.decode(chunk);
// do something with the text
}
Свойства
readable: ReadableStream<Uint8Array<ArrayBuffer>> Интерфейс читаемого потока для stdin.
Методы
read(p: Uint8Array): Promise<number | null> Считывает входящие данные из stdin в буфер массива (p).
Возвращает количество байтов, прочитанных во время операции, либо EOF (null), если больше нечего читать.
Операция чтения может успешно завершиться и вернуть 0 байтов. Это не означает достижение EOF.
Не гарантируется, что весь буфер будет прочитан за один вызов.
// If the text "hello world" is piped into the script:
const buf = new Uint8Array(100);
const numberOfBytesRead = await Deno.stdin.read(buf); // 11 bytes
const text = new TextDecoder().decode(buf); // "hello world"
readSync(p: Uint8Array): number | null Синхронно считывает входящие данные из stdin в буфер массива (p).
Возвращает количество байтов, прочитанных во время операции, либо EOF (null), если больше нечего читать.
Операция чтения может успешно завершиться и вернуть 0 байтов. Это не означает достижение EOF.
Не гарантируется, что весь буфер будет прочитан за один вызов.
// If the text "hello world" is piped into the script:
const buf = new Uint8Array(100);
const numberOfBytesRead = Deno.stdin.readSync(buf); // 11 bytes
const text = new TextDecoder().decode(buf); // "hello world"
close(): void Закрывает stdin, освобождая ресурс.
Deno.stdin.close();
setRaw(
mode: boolean,
options?: SetRawOptions,
): void Включает или отключает сырой режим TTY. В сыром режиме символы считываются и возвращаются без изменений, без какой-либо обработки. Отключается вся специальная обработка символов терминалом, включая отображение вводимых символов. Чтение с устройства TTY в сыром режиме выполняется быстрее, чем в каноническом режиме.
Deno.stdin.setRaw(true, { cbreak: true });
isTerminal(): boolean Проверяет, является ли stdin терминалом (TTY).
// This example is system and context specific
Deno.stdin.isTerminal(); // true
переменная Deno.stdout
Ссылка на stdout, которую можно использовать для прямой записи в stdout. Она реализует специфичные для Deno интерфейсы Writer, WriterSync и Closer, а также предоставляет интерфейс WritableStream.
Это низкоуровневые конструкции, а интерфейс console — более простой способ взаимодействия с stdout и stderr.
Свойства
writable: WritableStream<Uint8Array<ArrayBufferLike>> Интерфейс записываемого потока для stdout.
Методы
write(p: Uint8Array): Promise<number> Записывает содержимое буфера массива (p) в stdout.
Возвращает количество записанных байтов.
Не гарантируется, что весь буфер будет записан за один вызов.
const encoder = new TextEncoder();
const data = encoder.encode("Hello world");
const bytesWritten = await Deno.stdout.write(data); // 11
writeSync(p: Uint8Array): number Синхронно записывает содержимое буфера массива (p) в stdout.
Возвращает количество записанных байтов.
Не гарантируется, что весь буфер будет записан за один вызов.
const encoder = new TextEncoder();
const data = encoder.encode("Hello world");
const bytesWritten = Deno.stdout.writeSync(data); // 11
close(): void Закрывает stdout, освобождая ресурс.
Deno.stdout.close();
isTerminal(): boolean Проверяет, является ли stdout терминалом (TTY).
// This example is system and context specific
Deno.stdout.isTerminal(); // true
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/deno/io