Spec-Zone.ru › Deno 2

Ввод-вывод

Интерфейсы для чтения, записи, перемещения по данным и управления ресурсами. Для работы с потоками данных, файловым вводом-выводом и консолью.

Например, 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
необязательный

Вычислять результат вызова геттеров.

showHidden: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API