Spec-Zone.ru › Deno 2

util

Модуль node:util поддерживает потребности внутренних API Node.js. Многие утилиты также полезны разработчикам приложений и модулей. Чтобы получить к нему доступ:

import util from 'node:util';

Использование в Deno

import * as mod from "node:util";

класс MIMEParams

Использование в Deno

import { MIMEParams } from "node:util";
Совместимость с Deno

В настоящее время этот символ не поддерживается.

API MIMEParams предоставляет доступ на чтение и запись параметров MIMEType.

Методы

[Symbol.iterator](): Iterator<[string, string]>

Возвращает итератор по всем парам «имя — значение» в параметрах.

delete(name: string): void

Удаляет все пары «имя — значение», имя которых равно name.

entries(): Iterator<[string, string]>

Возвращает итератор по всем парам «имя — значение» в параметрах. Каждый элемент итератора — это JavaScript Array. Первый элемент массива — name, второй элемент массива — value.

get(name: string): string | null

Возвращает значение первой пары «имя — значение», имя которой равно name. Если таких пар нет, возвращается null.

has(name: string): boolean

Возвращает true, если существует хотя бы одна пара «имя — значение», имя которой равно name.

keys(): Iterator<string>

Возвращает итератор по именам всех пар «имя — значение».

import { MIMEType } from 'node:util';

const { params } = new MIMEType('text/plain;foo=0;bar=1');
for (const name of params.keys()) {
  console.log(name);
}
// Prints:
//   foo
//   bar
set(
name: string,
value: string,
): void

Устанавливает значение value для name в объекте MIMEParams. Если уже существуют пары «имя — значение» с именами name, значение первой такой пары устанавливается равным value.

import { MIMEType } from 'node:util';

const { params } = new MIMEType('text/plain;foo=0;bar=1');
params.set('foo', 'def');
params.set('baz', 'xyz');
console.log(params.toString());
// Prints: foo=def;bar=1;baz=xyz
values(): Iterator<string>

Возвращает итератор по значениям всех пар «имя — значение».


класс MIMEType

нестабильный

Использование в Deno

import { MIMEType } from "node:util";
Совместимость с Deno

В настоящее время этот символ не поддерживается.

Реализация класса MIMEType.

В соответствии с соглашениями браузеров все свойства объектов MIMEType реализованы как геттеры и сеттеры в прототипе класса, а не как свойства данных непосредственно в объекте.

MIME-строка — это структурированная строка, содержащая несколько значимых компонентов. При разборе возвращается объект MIMEType со свойствами для каждого из этих компонентов.

Конструкторы

MIMEType(input: string | { toString: () => string; })
новый

Создает объект MIMEType, разбирая входные данные.

Если input не является допустимым MIME, будет выброшено исключение TypeError. Обратите внимание: предпринимается попытка преобразовать переданные значения в строки.

Свойства

essence: string
только для чтения

Возвращает сущность MIME. Это свойство доступно только для чтения. Используйте mime.type или mime.subtype, чтобы изменить MIME.

import { MIMEType } from 'node:util';

const myMIME = new MIMEType('text/javascript;key=value');
console.log(myMIME.essence);
// Prints: text/javascript
myMIME.type = 'application';
console.log(myMIME.essence);
// Prints: application/javascript
console.log(String(myMIME));
// Prints: application/javascript;key=value
params: MIMEParams
только для чтения

Возвращает объект MIMEParams, представляющий параметры MIME. Это свойство доступно только для чтения. Подробности см. в документации MIMEParams.

subtype: string

Возвращает и задает часть MIME, содержащую подтип.

import { MIMEType } from 'node:util';

const myMIME = new MIMEType('text/ecmascript');
console.log(myMIME.subtype);
// Prints: ecmascript
myMIME.subtype = 'javascript';
console.log(myMIME.subtype);
// Prints: javascript
console.log(String(myMIME));
// Prints: text/javascript
type: string

Возвращает и задает часть MIME, содержащую тип.

import { MIMEType } from 'node:util';

const myMIME = new MIMEType('text/javascript');
console.log(myMIME.type);
// Prints: text
myMIME.type = 'application';
console.log(myMIME.type);
// Prints: application
console.log(String(myMIME));
// Prints: application/javascript

Методы

toString(): string

Метод toString() объекта MIMEType возвращает сериализованное представление MIME.

Из-за необходимости соответствовать стандарту этот метод не позволяет пользователям настраивать процесс сериализации MIME.


класс TextDecoder

Использование в Deno

import { TextDecoder } from "node:util";

Реализация API TextDecoder стандарта кодирования WHATWG.

const decoder = new TextDecoder();
const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
console.log(decoder.decode(u8arr)); // Hello

Конструкторы

TextDecoder(
encoding?: string,
options?: { fatal?: boolean | undefined; ignoreBOM?: boolean | undefined; },
)
новый

Свойства

encoding: string
только для чтения

Кодировка, поддерживаемая экземпляром TextDecoder.

fatal: boolean
только для чтения

Значение будет true, если ошибки декодирования приведут к выбрасыванию TypeError.

ignoreBOM: boolean
только для чтения

Значение будет true, если результат декодирования будет содержать метку порядка байтов.

Методы

decode(
input?:
ArrayBufferView
| ArrayBuffer
| null
,
options?: { stream?: boolean | undefined; },
): string

Декодирует input и возвращает строку. Если options.stream равно true, неполные последовательности байтов в конце input буферизуются и выдаются при следующем вызове textDecoder.decode().

Если textDecoder.fatal равно true, возникающие ошибки декодирования приведут к выбрасыванию TypeError.

переменная TextDecoder

Класс TextDecoder является глобальной ссылкой на import { TextDecoder } from 'node:util' https://nodejs.org/api/globals.html#textdecoder

Тип

globalThis extends { onmessage: any; TextDecoder: infer TextDecoder; } ? TextDecoder : _TextDecoder

класс TextEncoder

Использование в Deno

import { TextEncoder } from "node:util";

Реализация API TextEncoder стандарта кодирования WHATWG. Все экземпляры TextEncoder поддерживают только кодировку UTF-8.

const encoder = new TextEncoder();
const uint8array = encoder.encode('this is some data');

Класс TextEncoder также доступен в глобальном объекте.

Свойства

encoding: string
только для чтения

Кодировка, поддерживаемая экземпляром TextEncoder. Всегда имеет значение 'utf-8'.

Методы

encode(input?: string): Uint8Array

Кодирует строку input в UTF-8 и возвращает Uint8Array с закодированными байтами.

encodeInto(
src: string,
dest: Uint8Array,
): EncodeIntoResult

Кодирует строку src в UTF-8 и записывает результат в Uint8Array dest, а затем возвращает объект с количеством прочитанных кодовых единиц Unicode и записанных байтов UTF-8.

const encoder = new TextEncoder();
const src = 'this is some data';
const dest = new Uint8Array(10);
const { read, written } = encoder.encodeInto(src, dest);

переменная TextEncoder

Класс TextEncoder является глобальной ссылкой на import { TextEncoder } from 'node:util' https://nodejs.org/api/globals.html#textencoder

Тип

globalThis extends { onmessage: any; TextEncoder: infer TextEncoder; } ? TextEncoder : _TextEncoder

функция aborted

нестабильный

Использование в Deno

import { aborted } from "node:util";
aborted(
signal: AbortSignal,
resource: any,
): Promise<void>

Отслеживает событие прерывания для переданного signal и возвращает промис, который выполняется, когда операция signal прерывается. Если передан resource, он слабо ссылается на связанный с операцией объект, поэтому, если resource будет удален сборщиком мусора до того, как произойдет прерывание signal, возвращенный промис останется в ожидании. Это предотвращает утечки памяти при длительных или не подлежащих отмене операциях.

import { aborted } from 'node:util';

// Obtain an object with an abortable signal, like a custom resource or operation.
const dependent = obtainSomethingAbortable();

// Pass `dependent` as the resource, indicating the promise should only resolve
// if `dependent` is still in memory when the signal is aborted.
aborted(dependent.signal, dependent).then(() => {
  // This code runs when `dependent` is aborted.
  console.log('Dependent resource was aborted.');
});

// Simulate an event that triggers the abort.
dependent.on('event', () => {
  dependent.abort(); // This will cause the `aborted` promise to resolve.
});

Параметры

signal: AbortSignal
resource: any

Любой ненулевой объект, связанный с прерываемой операцией и удерживаемый слабо. Если resource будет удален сборщиком мусора до того, как произойдет прерывание signal, промис останется в ожидании, позволяя Node.js прекратить его отслеживание. Это помогает предотвращать утечки памяти при длительных или не подлежащих отмене операциях.

Тип возвращаемого значения

Promise<void>

функция callbackify

Использование в Deno

import { callbackify } from "node:util";

Перегрузка 1

callbackify(fn: () => Promise<void>): (callback: (err: ErrnoException) => void) => void

Принимает функцию async (или функцию, возвращающую Promise) и возвращает функцию, соответствующую стилю обратного вызова с передачей ошибки первым аргументом, то есть принимающую обратный вызов (err, value) => ... в качестве последнего аргумента. В обратном вызове первым аргументом будет причина отклонения (или null, если Promise выполнен успешно), а вторым аргументом — разрешённое значение.

import util from 'node:util';

async function fn() {
  return 'hello world';
}
const callbackFunction = util.callbackify(fn);

callbackFunction((err, ret) => {
  if (err) throw err;
  console.log(ret);
});

Будет выведено:

hello world

Обратный вызов выполняется асинхронно, и его трассировка стека будет ограничена. Если обратный вызов вызывает исключение, процесс сгенерирует событие 'uncaughtException' и завершится, если это событие не будет обработано.

Поскольку null имеет особое значение в качестве первого аргумента обратного вызова, если обёрнутая функция отклоняет Promise с ложным значением в качестве причины, это значение помещается в Error, а исходное значение сохраняется в поле с именем reason.

function fn() {
  return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);

callbackFunction((err, ret) => {
  // When the Promise was rejected with `null` it is wrapped with an Error and
  // the original value is stored in `reason`.
  err &#x26;&#x26; Object.hasOwn(err, 'reason') &#x26;&#x26; err.reason === null;  // true
});

Параметры

fn: () => Promise<void>

Функция async

Тип возвращаемого значения

(callback: (err: ErrnoException) => void) => void

функция в стиле обратного вызова

Перегрузка 2

callbackify<TResult>(fn: () => Promise<TResult>): (callback: (
err: ErrnoException,
result: TResult,
) => void
) => void

Параметры типа

TResult

Параметры

fn: () => Promise<TResult>

Тип возвращаемого значения

(callback: (
err: ErrnoException,
result: TResult,
) => void
) => void

Перегрузка 3

callbackify<T1>(fn: (arg1: T1) => Promise<void>): (
arg1: T1,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1

Параметры

fn: (arg1: T1) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 4

callbackify<
T1,
TResult,
>
(fn: (arg1: T1) => Promise<TResult>): (
arg1: T1,
callback: (
err: ErrnoException,
result: TResult,
) => void
,
) => void

Параметры типа

T1
TResult

Параметры

fn: (arg1: T1) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
callback: (
err: ErrnoException,
result: TResult,
) => void
,
) => void

Перегрузка 5

callbackify<
T1,
T2,
>
(fn: (
arg1: T1,
arg2: T2,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1
T2

Параметры

fn: (
arg1: T1,
arg2: T2,
) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 6

callbackify<
T1,
T2,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Параметры типа

T1
T2
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Перегрузка 7

callbackify<
T1,
T2,
T3,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1
T2
T3

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 8

callbackify<
T1,
T2,
T3,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Параметры типа

T1
T2
T3
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Перегрузка 9

callbackify<
T1,
T2,
T3,
T4,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1
T2
T3
T4

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 10

callbackify<
T1,
T2,
T3,
T4,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Параметры типа

T1
T2
T3
T4
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Перегрузка 11

callbackify<
T1,
T2,
T3,
T4,
T5,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1
T2
T3
T4
T5

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 12

callbackify<
T1,
T2,
T3,
T4,
T5,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Параметры типа

T1
T2
T3
T4
T5
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Перегрузка 13

callbackify<
T1,
T2,
T3,
T4,
T5,
T6,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<void>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (err: ErrnoException) => void,
) => void

Параметры типа

T1
T2
T3
T4
T5
T6

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<void>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (err: ErrnoException) => void,
) => void

Перегрузка 14

callbackify<
T1,
T2,
T3,
T4,
T5,
T6,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<TResult>
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

Параметры типа

T1
T2
T3
T4
T5
T6
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<TResult>

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (
err: ErrnoException | null,
result: TResult,
) => void
,
) => void

функция debuglog

Использование в Deno

import { debuglog } from "node:util";
debuglog(
section: string,
callback?: (fn: DebugLoggerFunction) => void,
): DebugLogger

Метод util.debuglog() используется для создания функции, которая условно записывает отладочные сообщения в stderr в зависимости от наличия переменной среды NODE_DEBUG. Если имя section указано в значении этой переменной среды, возвращённая функция работает аналогично console.error(). В противном случае возвращённая функция ничего не делает.

import util from 'node:util';
const debuglog = util.debuglog('foo');

debuglog('hello from foo [%d]', 123);

Если запустить эту программу с NODE_DEBUG=foo в среде, она выведет примерно следующее:

FOO 3245: hello from foo [123]

где 3245 — это идентификатор процесса. Если запустить программу без заданной переменной среды, ничего выведено не будет.

В section также поддерживаются подстановочные знаки:

import util from 'node:util';
const debuglog = util.debuglog('foo-bar');

debuglog('hi there, it\'s foo-bar [%d]', 2333);

если запустить программу с NODE_DEBUG=foo* в среде, она выведет примерно следующее:

FOO-BAR 3257: hi there, it's foo-bar [2333]

В переменной среды NODE_DEBUG можно указать несколько имён section, разделённых запятыми: NODE_DEBUG=fs,net,tls.

Необязательный аргумент callback можно использовать, чтобы заменить функцию журналирования другой функцией без инициализации и ненужной обёртки.

import util from 'node:util';
let debuglog = util.debuglog('internals', (debug) => {
  // Replace with a logging function that optimizes out
  // testing if the section is enabled
  debuglog = debug;
});

Параметры

section: string

Строка, указывающая часть приложения, для которой создаётся функция debuglog.

callback: (fn: DebugLoggerFunction) => void
необязательный

Обратный вызов, вызываемый при первом обращении к функции журналирования с аргументом-функцией, представляющей собой более оптимизированную функцию журналирования.

Тип возвращаемого значения

DebugLogger

Функция журналирования


функция deprecate

Использование в Deno

import { deprecate } from "node:util";
deprecate<T extends Function>(
fn: T,
msg: string,
code?: string,
): T

Метод util.deprecate() оборачивает fn (которым может быть функция или класс) таким образом, чтобы пометить его как устаревший.

import util from 'node:util';

exports.obsoleteFunction = util.deprecate(() => {
  // Do something here.
}, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');

При вызове util.deprecate() возвращает функцию, которая генерирует DeprecationWarning с помощью события 'warning'. Предупреждение будет сгенерировано и выведено в stderr при первом вызове возвращённой функции. После этого обёрнутая функция вызывается без предупреждения.

Если при нескольких вызовах util.deprecate() передаётся одно и то же необязательное значение code, предупреждение будет сгенерировано для этого code только один раз.

import util from 'node:util';

const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
fn1(); // Emits a deprecation warning with code DEP0001
fn2(); // Does not emit a deprecation warning because it has the same code

Если используются флаги командной строки --no-deprecation или --no-warnings либо свойству process.noDeprecation присвоено значение true до первого предупреждения об устаревании, метод util.deprecate() ничего не делает.

Если заданы флаги командной строки --trace-deprecation или --trace-warnings либо свойству process.traceDeprecation присвоено значение true, при первом вызове устаревшей функции предупреждение и трассировка стека выводятся в stderr.

Если задан флаг командной строки --throw-deprecation или свойству process.throwDeprecation присвоено значение true, при вызове устаревшей функции будет выброшено исключение.

Флаг командной строки --throw-deprecation и свойство process.throwDeprecation имеют приоритет над --trace-deprecation и process.traceDeprecation.

Параметры типа

T extends Function

Параметры

fn: T

Функция, помечаемая как устаревшая.

msg: string

Предупреждение, отображаемое при вызове устаревшей функции.

code: string
необязательный

Код устаревания. Список кодов см. в list of deprecated APIs.

Тип возвращаемого значения

T

Устаревшая функция, обёрнутая для генерации предупреждения.


функция format

Использование в Deno

import { format } from "node:util";
format(
format?: any,
...param: any[],
): string

Метод util.format() возвращает отформатированную строку, используя первый аргумент в качестве строки формата, подобной printf, которая может содержать ноль или более спецификаторов формата. Каждый спецификатор заменяется преобразованным значением из соответствующего аргумента. Поддерживаются следующие спецификаторы:

Если для спецификатора нет соответствующего аргумента, он не заменяется:

util.format('%s:%s', 'foo');
// Returns: 'foo:%s'

Значения, не являющиеся частью строки формата, форматируются с помощью util.inspect(), если их тип не string.

Если методу util.format() передано больше аргументов, чем имеется спецификаторов, лишние аргументы объединяются с возвращаемой строкой через пробелы:

util.format('%s:%s', 'foo', 'bar', 'baz');
// Returns: 'foo:bar baz'

Если первый аргумент не содержит допустимого спецификатора формата, util.format() возвращает строку, составленную из всех аргументов, разделённых пробелами:

util.format(1, 2, 3);
// Returns: '1 2 3'

Если передан только один аргумент, util.format() возвращает его без изменений, не выполняя форматирование:

util.format('%% %s');
// Returns: '%% %s'

util.format() — синхронный метод, предназначенный для отладки. Обработка некоторых входных значений может значительно снижать производительность и блокировать цикл событий. Используйте эту функцию с осторожностью и никогда не вызывайте её в критически важном для производительности коде.

Параметры

format: any
необязательный

Строка формата, подобная printf.

...param: any[]

Тип возвращаемого значения

string

функция formatWithOptions

Использование в Deno

import { formatWithOptions } from "node:util";
formatWithOptions(
inspectOptions: InspectOptions,
format?: any,
...param: any[],
): string

Эта функция идентична format, за исключением того, что принимает аргумент inspectOptions, задающий параметры, передаваемые в inspect.

util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
// Returns 'See object { foo: 42 }', where `42` is colored as a number
// when printed to a terminal.

Параметры

inspectOptions: InspectOptions
format: any
необязательный
...param: any[]

Тип возвращаемого значения

string

функция getCallSites

Использование в Deno

import { getCallSites } from "node:util";

Перегрузка 1

getCallSites(
frameCount?: number,
options?: GetCallSitesOptions,
): CallSiteObject[]

Возвращает массив объектов call site, содержащих стек вызывающей функции.

const util = require('node:util');

function exampleFunction() {
  const callSites = util.getCallSites();

  console.log('Call Sites:');
  callSites.forEach((callSite, index) => {
    console.log(`CallSite ${index + 1}:`);
    console.log(`Function Name: ${callSite.functionName}`);
    console.log(`Script Name: ${callSite.scriptName}`);
    console.log(`Line Number: ${callSite.lineNumber}`);
    console.log(`Column Number: ${callSite.column}`);
  });
  // CallSite 1:
  // Function Name: exampleFunction
  // Script Name: /home/example.js
  // Line Number: 5
  // Column Number: 26

  // CallSite 2:
  // Function Name: anotherFunction
  // Script Name: /home/example.js
  // Line Number: 22
  // Column Number: 3

  // ...
}

// A function to simulate another stack layer
function anotherFunction() {
  exampleFunction();
}

anotherFunction();

Исходные местоположения можно восстановить, установив для параметра sourceMap значение true. Если карта исходного кода недоступна, исходное местоположение будет совпадать с текущим. Если включён флаг --enable-source-maps, например при использовании --experimental-transform-types, значение sourceMap по умолчанию будет равно true.

import util from 'node:util';

interface Foo {
  foo: string;
}

const callSites = util.getCallSites({ sourceMap: true });

// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26

// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26

Параметры

frameCount: number
необязательный

Количество кадров, которые нужно захватить в виде объектов call site. По умолчанию: 10. Допустимый диапазон — от 1 до 200.

options: GetCallSitesOptions
необязательный

Тип возвращаемого значения

CallSiteObject[]

Массив объектов call site

Перегрузка 2

getCallSites(options: GetCallSitesOptions): CallSiteObject[]

Параметры

options: GetCallSitesOptions

Тип возвращаемого значения

CallSiteObject[]

функция getSystemErrorMap

Использование в Deno

import { getSystemErrorMap } from "node:util";
getSystemErrorMap(): Map<number, [string, string]>
Совместимость с Deno

В настоящее время этот символ не поддерживается.

Возвращает Map всех системных кодов ошибок, доступных в API Node.js. Соответствие между кодами и именами ошибок зависит от платформы. См. Common System Errors, где приведены имена распространённых ошибок.

fs.access('file/that/does/not/exist', (err) => {
  const errorMap = util.getSystemErrorMap();
  const name = errorMap.get(err.errno);
  console.error(name);  // ENOENT
});

Тип возвращаемого значения

Map<number, [string, string]>

функция getSystemErrorMessage

Использование в Deno

import { getSystemErrorMessage } from "node:util";
getSystemErrorMessage(err: number): string

Возвращает текстовое сообщение для числового кода ошибки, полученного из API Node.js. Соответствие между кодами ошибок и текстовыми сообщениями зависит от платформы.

fs.access('file/that/does/not/exist', (err) => {
  const name = util.getSystemErrorMessage(err.errno);
  console.error(name);  // no such file or directory
});

Параметры

err: number

Тип возвращаемого значения

string

функция getSystemErrorName

Использование в Deno

import { getSystemErrorName } from "node:util";
getSystemErrorName(err: number): string

Возвращает текстовое имя для числового кода ошибки, полученного из API Node.js. Соответствие между кодами и именами ошибок зависит от платформы. См. Common System Errors, где приведены имена распространённых ошибок.

fs.access('file/that/does/not/exist', (err) => {
  const name = util.getSystemErrorName(err.errno);
  console.error(name);  // ENOENT
});

Параметры

err: number

Тип возвращаемого значения

string

функция inherits

Использование в Deno

import { inherits } from "node:util";
inherits(
constructor: unknown,
superConstructor: unknown,
): void

Использование util.inherits() не рекомендуется. Для поддержки наследования на уровне языка используйте ключевые слова ES6 class и extends. Также обратите внимание, что эти два подхода семантически несовместимы.

Наследует методы прототипа одного конструктора другим. Прототип constructor будет установлен в новый объект, созданный на основе superConstructor.

В основном эта функция добавляет проверку входных данных поверх Object.setPrototypeOf(constructor.prototype, superConstructor.prototype). Для удобства superConstructor также будет доступен через свойство constructor.super_.

import util from 'node:util';
import EventEmitter from 'node:events';

function MyStream() {
  EventEmitter.call(this);
}

util.inherits(MyStream, EventEmitter);

MyStream.prototype.write = function(data) {
  this.emit('data', data);
};

const stream = new MyStream();

console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true

stream.on('data', (data) => {
  console.log(`Received data: "${data}"`);
});
stream.write('It works!'); // Received data: "It works!"

Пример ES6 с использованием class и extends:

import EventEmitter from 'node:events';

class MyStream extends EventEmitter {
  write(data) {
    this.emit('data', data);
  }
}

const stream = new MyStream();

stream.on('data', (data) => {
  console.log(`Received data: "${data}"`);
});
stream.write('With ES6');

Параметры

constructor: unknown
superConstructor: unknown

Тип возвращаемого значения

void

функция inspect

Использование в Deno

import { inspect } from "node:util";

Перегрузка 1

inspect(
object: any,
showHidden?: boolean,
depth?: number | null,
color?: boolean,
): string

Метод util.inspect() возвращает строковое представление object, предназначенное для отладки. Вывод util.inspect может измениться в любой момент, поэтому не следует полагаться на него программно. Можно передать дополнительные параметры options, изменяющие результат. util.inspect() будет использовать имя конструктора и/или @@toStringTag для создания уникальной метки проверяемого значения.

class Foo {
  get [Symbol.toStringTag]() {
    return 'bar';
  }
}

class Bar {}

const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });

util.inspect(new Foo()); // 'Foo [bar] {}'
util.inspect(new Bar()); // 'Bar {}'
util.inspect(baz);       // '[foo] {}'

Циклические ссылки указывают на свой якорь с помощью индекса ссылки:

import { inspect } from 'node:util';

const obj = {};
obj.a = [obj];
obj.b = {};
obj.b.inner = obj.b;
obj.b.obj = obj;

console.log(inspect(obj));
// <ref *1> {
//   a: [ [Circular *1] ],
//   b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
// }

В следующем примере проверяются все свойства объекта util:

import util from 'node:util';

console.log(util.inspect(util, { showHidden: true, depth: null }));

В следующем примере показано влияние параметра compact:

import util from 'node:util';

const o = {
  a: [1, 2, [[
    'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
      'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
    'test',
    'foo']], 4],
  b: new Map([['za', 1], ['zb', 'test']]),
};
console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));

// { a:
//   [ 1,
//     2,
//     [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
//           'test',
//           'foo' ] ],
//     4 ],
//   b: Map(2) { 'za' => 1, 'zb' => 'test' } }

// Setting `compact` to false or an integer creates more reader friendly output.
console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));

// {
//   a: [
//     1,
//     2,
//     [
//       [
//         'Lorem ipsum dolor sit amet,\n' +
//           'consectetur adipiscing elit, sed do eiusmod \n' +
//           'tempor incididunt ut labore et dolore magna aliqua.',
//         'test',
//         'foo'
//       ]
//     ],
//     4
//   ],
//   b: Map(2) {
//     'za' => 1,
//     'zb' => 'test'
//   }
// }

// Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
// single line.

Параметр showHidden позволяет проверять элементы WeakMap и WeakSet. Если элементов больше, чем maxArrayLength, нет гарантии, какие именно элементы будут отображены. Это означает, что повторное получение одних и тех же элементов WeakSet может привести к разным результатам. Кроме того, элементы, на которые больше не осталось сильных ссылок, могут быть удалены сборщиком мусора в любой момент.

import { inspect } from 'node:util';

const obj = { a: 1 };
const obj2 = { b: 2 };
const weakSet = new WeakSet([obj, obj2]);

console.log(inspect(weakSet, { showHidden: true }));
// WeakSet { { a: 1 }, { b: 2 } }

Параметр sorted гарантирует, что порядок добавления свойств объекта не влияет на результат util.inspect().

import { inspect } from 'node:util';
import assert from 'node:assert';

const o1 = {
  b: [2, 3, 1],
  a: '`a` comes before `b`',
  c: new Set([2, 3, 1]),
};
console.log(inspect(o1, { sorted: true }));
// { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
// { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }

const o2 = {
  c: new Set([2, 1, 3]),
  a: '`a` comes before `b`',
  b: [2, 3, 1],
};
assert.strict.equal(
  inspect(o1, { sorted: true }),
  inspect(o2, { sorted: true }),
);

Параметр numericSeparator добавляет подчёркивание после каждой группы из трёх цифр во всех числах.

import { inspect } from 'node:util';

const thousand = 1_000;
const million = 1_000_000;
const bigNumber = 123_456_789n;
const bigDecimal = 1_234.123_45;

console.log(inspect(thousand, { numericSeparator: true }));
// 1_000
console.log(inspect(million, { numericSeparator: true }));
// 1_000_000
console.log(inspect(bigNumber, { numericSeparator: true }));
// 123_456_789n
console.log(inspect(bigDecimal, { numericSeparator: true }));
// 1_234.123_45

util.inspect() — синхронный метод, предназначенный для отладки. Максимальная длина вывода составляет приблизительно 128 МиБ. Результаты для входных данных, дающих более длинный вывод, будут усечены.

Параметры

object: any

Любой примитив JavaScript или Object.

showHidden: boolean
необязательный
depth: number | null
необязательный
color: boolean
необязательный

Тип возвращаемого значения

string

Представление object.

Перегрузка 2

inspect(
object: any,
options?: InspectOptions,
): string

Параметры

object: any
options: InspectOptions
необязательный

Тип возвращаемого значения

string

пространство имён inspect

Переменные

inspect.colors
Документация отсутствует
inspect.custom

Можно использовать для объявления пользовательских функций inspect.

inspect.defaultOptions
Документация отсутствует
inspect.replDefaults

Позволяет изменять настройки inspect в REPL.

inspect.styles
Документация отсутствует

функция isDeepStrictEqual

Использование в Deno

import { isDeepStrictEqual } from "node:util";
isDeepStrictEqual(
val1: unknown,
val2: unknown,
): boolean

Возвращает true, если между val1 и val2 выполняется глубокое строгое равенство. В противном случае возвращает false.

Подробнее о глубоком строгом равенстве см. в assert.deepStrictEqual().

Параметры

val1: unknown
val2: unknown

Тип возвращаемого значения

boolean

функция parseArgs

Использование в Deno

import { parseArgs } from "node:util";
parseArgs<T extends ParseArgsConfig>(config?: T): ParsedResults<T>

Предоставляет высокоуровневый API для разбора аргументов командной строки, не требуя непосредственного взаимодействия с process.argv. Принимает спецификацию ожидаемых аргументов и возвращает структурированный объект с разобранными параметрами и позиционными аргументами.

import { parseArgs } from 'node:util';
const args = ['-f', '--bar', 'b'];
const options = {
  foo: {
    type: 'boolean',
    short: 'f',
  },
  bar: {
    type: 'string',
  },
};
const {
  values,
  positionals,
} = parseArgs({ args, options });
console.log(values, positionals);
// Prints: [Object: null prototype] { foo: true, bar: 'b' } []

Параметры типа

T extends ParseArgsConfig

Параметры

config: T
необязательный

Используется для передачи аргументов на разбор и настройки анализатора. config поддерживает следующие свойства:

Тип возвращаемого значения

ParsedResults<T>

Разобранные аргументы командной строки:


функция parseEnv

Использование в Deno

import { parseEnv } from "node:util";
parseEnv(content: string): object

Стабильность: 1.1 — активная разработка. Пример файла .env:

import { parseEnv } from 'node:util';

parseEnv('HELLO=world\nHELLO=oh my\n');
// Returns: { HELLO: 'oh my' }

Параметры

content: string

Исходное содержимое файла .env.

Тип возвращаемого значения

object

функция promisify

Использование в Deno

import { promisify } from "node:util";

Перегрузка 1

promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom

Принимает функцию, использующую распространённый стиль обратного вызова с ошибкой в первом аргументе, то есть принимающую обратный вызов (err, value) => ... последним аргументом, и возвращает её версию, возвращающую промисы.

import util from 'node:util';
import fs from 'node:fs';

const stat = util.promisify(fs.stat);
stat('.').then((stats) => {
  // Do something with `stats`
}).catch((error) => {
  // Handle the error.
});

Или, что эквивалентно, с использованием async function:

import util from 'node:util';
import fs from 'node:fs';

const stat = util.promisify(fs.stat);

async function callStat() {
  const stats = await stat('.');
  console.log(`This directory is owned by ${stats.uid}`);
}

callStat();

Если присутствует свойство original[util.promisify.custom], promisify возвращает его значение; см. Custom promisified functions.

promisify() предполагает, что original во всех случаях является функцией, принимающей обратный вызов в качестве последнего аргумента. Если original не является функцией, promisify() выдаст ошибку. Если original является функцией, но её последний аргумент не является обратным вызовом с ошибкой в первом аргументе, ей всё равно будет передан такой обратный вызов в качестве последнего аргумента.

Использование promisify() с методами классов или другими методами, использующими this, может привести к неожиданным результатам, если не обработать их специальным образом:

import util from 'node:util';

class Foo {
  constructor() {
    this.a = 42;
  }

  bar(callback) {
    callback(null, this.a);
  }
}

const foo = new Foo();

const naiveBar = util.promisify(foo.bar);
// TypeError: Cannot read property 'a' of undefined
// naiveBar().then(a => console.log(a));

naiveBar.call(foo).then((a) => console.log(a)); // '42'

const bindBar = naiveBar.bind(foo);
bindBar().then((a) => console.log(a)); // '42'

Параметры типа

TCustom extends Function

Параметры

fn: CustomPromisify<TCustom>

Тип возвращаемого значения

TCustom

Перегрузка 2

promisify<TResult>(fn: (callback: (
err: any,
result: TResult,
) => void
) => void
): () => Promise<TResult>

Параметры типа

TResult

Параметры

fn: (callback: (
err: any,
result: TResult,
) => void
) => void

Тип возвращаемого значения

() => Promise<TResult>

Перегрузка 3

promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>

Параметры

fn: (callback: (err?: any) => void) => void

Тип возвращаемого значения

() => Promise<void>

Перегрузка 4

promisify<
T1,
TResult,
>
(fn: (
arg1: T1,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (arg1: T1) => Promise<TResult>

Параметры типа

T1
TResult

Параметры

fn: (
arg1: T1,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Тип возвращаемого значения

(arg1: T1) => Promise<TResult>

Перегрузка 5

promisify<T1>(fn: (
arg1: T1,
callback: (err?: any) => void,
) => void
): (arg1: T1) => Promise<void>

Параметры типа

T1

Параметры

fn: (
arg1: T1,
callback: (err?: any) => void,
) => void

Тип возвращаемого значения

(arg1: T1) => Promise<void>

Перегрузка 6

promisify<
T1,
T2,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (
arg1: T1,
arg2: T2,
) => Promise<TResult>

Параметры типа

T1
T2
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
) => Promise<TResult>

Перегрузка 7

promisify<
T1,
T2,
>
(fn: (
arg1: T1,
arg2: T2,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
) => Promise<void>

Параметры типа

T1
T2

Параметры

fn: (
arg1: T1,
arg2: T2,
callback: (err?: any) => void,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
) => Promise<void>

Перегрузка 8

promisify<
T1,
T2,
T3,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>

Параметры типа

T1
T2
T3
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>

Перегрузка 9

promisify<
T1,
T2,
T3,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>

Параметры типа

T1
T2
T3

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err?: any) => void,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>

Перегрузка 10

promisify<
T1,
T2,
T3,
T4,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>

Параметры типа

T1
T2
T3
T4
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>

Перегрузка 11

promisify<
T1,
T2,
T3,
T4,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>

Параметры типа

T1
T2
T3
T4

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err?: any) => void,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>

Перегрузка 12

promisify<
T1,
T2,
T3,
T4,
T5,
TResult,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: any,
result: TResult,
) => void
,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>

Параметры типа

T1
T2
T3
T4
T5
TResult

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: any,
result: TResult,
) => void
,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>

Перегрузка 13

promisify<
T1,
T2,
T3,
T4,
T5,
>
(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err?: any) => void,
) => void
): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>

Параметры типа

T1
T2
T3
T4
T5

Параметры

fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err?: any) => void,
) => void

Тип возвращаемого значения

(
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>

Перегрузка 14

promisify(fn: Function): Function

Параметры

fn: Function

Тип возвращаемого значения

Function

пространство имён promisify

Переменные

promisify.custom

Можно использовать для объявления пользовательских вариантов функций, преобразованных в промисы.


функция stripVTControlCharacters

Использование в Deno

import { stripVTControlCharacters } from "node:util";
stripVTControlCharacters(str: string): string

Возвращает str без ANSI-кодов escape-последовательностей.

console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
// Prints "value"

Параметры

str: string

Тип возвращаемого значения

string

функция styleText

Использование в Deno

import { styleText } from "node:util";
styleText(
format:
ForegroundColors
| BackgroundColors
| Modifiers
| Array<
ForegroundColors
| BackgroundColors
| Modifiers
>
,
text: string,
): string

Эта функция возвращает отформатированный текст с учётом переданных format.

import { styleText } from 'node:util';
const errorMessage = styleText('red', 'Error! Error!');
console.log(errorMessage);

util.inspect.colors также предоставляет текстовые форматы, такие как italic и underline; их можно комбинировать:

console.log(
  util.styleText(['underline', 'italic'], 'My italic underlined message'),
);

Если передан массив форматов, они применяются слева направо, поэтому следующий стиль может переопределить предыдущий.

console.log(
  util.styleText(['red', 'green'], 'text'), // green
);

Полный список форматов можно найти в разделе модификаторы.

Параметры

format:
ForegroundColors
| BackgroundColors
| Modifiers
| Array<
ForegroundColors
| BackgroundColors
| Modifiers
>

Текстовый формат или массив текстовых форматов, определённых в util.inspect.colors.

text: string

Текст для форматирования.

Тип возвращаемого значения

string

функция toUSVString

Использование в Deno

import { toUSVString } from "node:util";
toUSVString(string: string): string

Возвращает string, заменяя все суррогатные кодовые точки (или, что эквивалентно, все непарные кодовые единицы суррогатов) символом замены Unicode U+FFFD.

Параметры

string: string

Тип возвращаемого значения

string

функция transferableAbortController

нестабильный

Использование в Deno

import { transferableAbortController } from "node:util";
transferableAbortController(): AbortController
Совместимость с Deno

В настоящее время этот символ не поддерживается.

Создаёт и возвращает экземпляр AbortController, чей AbortSignal помечен как передаваемый и может использоваться с structuredClone() или postMessage().

Тип возвращаемого значения

AbortController

Передаваемый AbortController


функция transferableAbortSignal

нестабильный

Использование в Deno

import { transferableAbortSignal } from "node:util";
transferableAbortSignal(signal: AbortSignal): AbortSignal
Совместимость с Deno

В настоящее время этот символ не поддерживается.

Помечает данный AbortSignal как передаваемый, чтобы его можно было использовать сstructuredClone() и postMessage().

const signal = transferableAbortSignal(AbortSignal.timeout(100));
const channel = new MessageChannel();
channel.port2.postMessage(signal, [signal]);

Параметры

signal: AbortSignal

AbortSignal

Тип возвращаемого значения

AbortSignal

Тот же AbortSignal


функция types.isAnyArrayBuffer

Использование в Deno

import { types } from "node:util";
const { isAnyArrayBuffer } = types;
isAnyArrayBuffer(object: unknown): object is ArrayBufferLike

Возвращает true, если значение является экземпляром встроенного ArrayBuffer или SharedArrayBuffer.

См. также util.types.isArrayBuffer() и util.types.isSharedArrayBuffer().

util.types.isAnyArrayBuffer(new ArrayBuffer());  // Returns true
util.types.isAnyArrayBuffer(new SharedArrayBuffer());  // Returns true

Параметры

object: unknown

Тип возвращаемого значения

object is ArrayBufferLike

функция types.isArgumentsObject

Использование в Deno

import { types } from "node:util";
const { isArgumentsObject } = types;
isArgumentsObject(object: unknown): object is IArguments

Возвращает true, если значение является объектом arguments.

function foo() {
  util.types.isArgumentsObject(arguments);  // Returns true
}

Параметры

object: unknown

Тип возвращаемого значения

object is IArguments

функция types.isArrayBuffer

Использование в Deno

import { types } from "node:util";
const { isArrayBuffer } = types;
isArrayBuffer(object: unknown): object is ArrayBuffer

Возвращает true, если значение является экземпляром встроенного ArrayBuffer. Сюда не входят экземпляры SharedArrayBuffer. Обычно желательно проверять оба типа; для этого см. util.types.isAnyArrayBuffer().

util.types.isArrayBuffer(new ArrayBuffer());  // Returns true
util.types.isArrayBuffer(new SharedArrayBuffer());  // Returns false

Параметры

object: unknown

Тип возвращаемого значения

object is ArrayBuffer

функция types.isArrayBufferView

Использование в Deno

import { types } from "node:util";
const { isArrayBufferView } = types;
isArrayBufferView(object: unknown): object is ArrayBufferView

Возвращает true, если значение является экземпляром одного из представлений ArrayBuffer, например типизированного массива или DataView. Эквивалентно ArrayBuffer.isView().

util.types.isArrayBufferView(new Int8Array());  // true
util.types.isArrayBufferView(Buffer.from('hello world')); // true
util.types.isArrayBufferView(new DataView(new ArrayBuffer(16)));  // true
util.types.isArrayBufferView(new ArrayBuffer());  // false

Параметры

object: unknown

Тип возвращаемого значения

object is ArrayBufferView

функция types.isAsyncFunction

Использование в Deno

import { types } from "node:util";
const { isAsyncFunction } = types;
isAsyncFunction(object: unknown): boolean

Возвращает true, если значение является асинхронной функцией. Результат отражает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

util.types.isAsyncFunction(function foo() {});  // Returns false
util.types.isAsyncFunction(async function foo() {});  // Returns true

Параметры

object: unknown

Тип возвращаемого значения

boolean

функция types.isBigInt64Array

Использование в Deno

import { types } from "node:util";
const { isBigInt64Array } = types;
isBigInt64Array(value: unknown): value is BigInt64Array

Возвращает true, если значение является экземпляром BigInt64Array.

util.types.isBigInt64Array(new BigInt64Array());   // Returns true
util.types.isBigInt64Array(new BigUint64Array());  // Returns false

Параметры

value: unknown

Тип возвращаемого значения

value is BigInt64Array

функция types.isBigIntObject

Использование в Deno

import { types } from "node:util";
const { isBigIntObject } = types;
isBigIntObject(object: unknown): object is BigInt

Возвращает true, если значение является объектом BigInt, например созданным с помощью Object(BigInt(123)).

util.types.isBigIntObject(Object(BigInt(123)));   // Returns true
util.types.isBigIntObject(BigInt(123));   // Returns false
util.types.isBigIntObject(123);  // Returns false

Параметры

object: unknown

Тип возвращаемого значения

object is BigInt

функция types.isBigUint64Array

Использование в Deno

import { types } from "node:util";
const { isBigUint64Array } = types;
isBigUint64Array(value: unknown): value is BigUint64Array

Возвращает true, если значение является экземпляром BigUint64Array.

util.types.isBigUint64Array(new BigInt64Array());   // Returns false
util.types.isBigUint64Array(new BigUint64Array());  // Returns true

Параметры

value: unknown

Тип возвращаемого значения

value is BigUint64Array

функция types.isBooleanObject

Использование в Deno

import { types } from "node:util";
const { isBooleanObject } = types;
isBooleanObject(object: unknown): object is Boolean

Возвращает true, если значение является логическим объектом, например созданным с помощью new Boolean().

util.types.isBooleanObject(false);  // Returns false
util.types.isBooleanObject(true);   // Returns false
util.types.isBooleanObject(new Boolean(false)); // Returns true
util.types.isBooleanObject(new Boolean(true));  // Returns true
util.types.isBooleanObject(Boolean(false)); // Returns false
util.types.isBooleanObject(Boolean(true));  // Returns false

Параметры

object: unknown

Тип возвращаемого значения

object is Boolean

функция types.isBoxedPrimitive

Использование в Deno

import { types } from "node:util";
const { isBoxedPrimitive } = types;
isBoxedPrimitive(object: unknown): object is
String
| Number
| BigInt
| Boolean
| Symbol

Возвращает true, если значение является любым объектом-обёрткой примитивного типа, например созданным с помощью new Boolean(), new String() или Object(Symbol()).

Например:

util.types.isBoxedPrimitive(false); // Returns false
util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true

Параметры

object: unknown

Тип возвращаемого значения

object is
String
| Number
| BigInt
| Boolean
| Symbol

функция types.isCryptoKey

Использование в Deno

import { types } from "node:util";
const { isCryptoKey } = types;
isCryptoKey(object: unknown): object is webcrypto.CryptoKey

Возвращает true, если value является CryptoKey, и false в противном случае.

Параметры

object: unknown

Тип возвращаемого значения

object is webcrypto.CryptoKey

функция types.isDataView

Использование в Deno

import { types } from "node:util";
const { isDataView } = types;
isDataView(object: unknown): object is DataView

Возвращает true, если значение является экземпляром встроенного DataView.

const ab = new ArrayBuffer(20);
util.types.isDataView(new DataView(ab));  // Returns true
util.types.isDataView(new Float64Array());  // Returns false

См. также ArrayBuffer.isView().

Параметры

object: unknown

Тип возвращаемого значения

object is DataView

функция types.isDate

Использование в Deno

import { types } from "node:util";
const { isDate } = types;
isDate(object: unknown): object is Date

Возвращает true, если значение является экземпляром встроенного Date.

util.types.isDate(new Date());  // Returns true

Параметры

object: unknown

Тип возвращаемого значения

object is Date

функция types.isExternal

Использование в Deno

import { types } from "node:util";
const { isExternal } = types;
isExternal(object: unknown): boolean

Возвращает true, если значение является нативным значением External.

Нативное значение External — это особый тип объекта, содержащий необработанный указатель C++ (void*) для доступа из нативного кода и не имеющий других свойств. Такие объекты создаются внутренними компонентами Node.js или нативными дополнениями. В JavaScript это замороженные объекты с прототипом null.

#include <js_native_api.h>
#include <stdlib.h>
napi_value result;
static napi_value MyNapi(napi_env env, napi_callback_info info) {
  int* raw = (int*) malloc(1024);
  napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &#x26;result);
  if (status != napi_ok) {
    napi_throw_error(env, NULL, "napi_create_external failed");
    return NULL;
  }
  return result;
}
...
DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
...
const native = require('napi_addon.node');
const data = native.myNapi();
util.types.isExternal(data); // returns true
util.types.isExternal(0); // returns false
util.types.isExternal(new String('foo')); // returns false

Дополнительные сведения о napi_create_external см. в napi_create_external().

Параметры

object: unknown

Тип возвращаемого значения

boolean

функция types.isFloat32Array

Использование в Deno

import { types } from "node:util";
const { isFloat32Array } = types;
isFloat32Array(object: unknown): object is Float32Array

Возвращает true, если значение является экземпляром встроенного Float32Array.

util.types.isFloat32Array(new ArrayBuffer());  // Returns false
util.types.isFloat32Array(new Float32Array());  // Returns true
util.types.isFloat32Array(new Float64Array());  // Returns false

Параметры

object: unknown

Тип возвращаемого значения

object is Float32Array

функция types.isFloat64Array

Использование в Deno

import { types } from "node:util";
const { isFloat64Array } = types;
isFloat64Array(object: unknown): object is Float64Array

Возвращает true, если значение является экземпляром встроенного Float64Array.

util.types.isFloat64Array(new ArrayBuffer());  // Returns false
util.types.isFloat64Array(new Uint8Array());  // Returns false
util.types.isFloat64Array(new Float64Array());  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is Float64Array

функция types.isGeneratorFunction

Использование в Deno

import { types } from "node:util";
const { isGeneratorFunction } = types;
isGeneratorFunction(object: unknown): object is GeneratorFunction

Возвращает true, если значение является функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

util.types.isGeneratorFunction(function foo() {});  // Returns false
util.types.isGeneratorFunction(function* foo() {});  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is GeneratorFunction

функция types.isGeneratorObject

Использование в Deno

import { types } from "node:util";
const { isGeneratorObject } = types;
isGeneratorObject(object: unknown): object is Generator

Возвращает true, если значение является объектом-генератором, возвращённым встроенной функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

function* foo() {}
const generator = foo();
util.types.isGeneratorObject(generator);  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is Generator

функция types.isInt16Array

Использование в Deno

import { types } from "node:util";
const { isInt16Array } = types;
isInt16Array(object: unknown): object is Int16Array

Возвращает true, если значение является экземпляром встроенного Int16Array.

util.types.isInt16Array(new ArrayBuffer());  // Returns false
util.types.isInt16Array(new Int16Array());  // Returns true
util.types.isInt16Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Int16Array

функция types.isInt32Array

Использование в Deno

import { types } from "node:util";
const { isInt32Array } = types;
isInt32Array(object: unknown): object is Int32Array

Возвращает true, если значение является экземпляром встроенного Int32Array.

util.types.isInt32Array(new ArrayBuffer());  // Returns false
util.types.isInt32Array(new Int32Array());  // Returns true
util.types.isInt32Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Int32Array

функция types.isInt8Array

Использование в Deno

import { types } from "node:util";
const { isInt8Array } = types;
isInt8Array(object: unknown): object is Int8Array

Возвращает true, если значение является экземпляром встроенного Int8Array.

util.types.isInt8Array(new ArrayBuffer());  // Returns false
util.types.isInt8Array(new Int8Array());  // Returns true
util.types.isInt8Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Int8Array

функция types.isKeyObject

Использование в Deno

import { types } from "node:util";
const { isKeyObject } = types;
isKeyObject(object: unknown): object is KeyObject

Возвращает true, если value является KeyObject, в противном случае — false.

Параметры

object: unknown

Возвращаемый тип

object is KeyObject

функция types.isMap

Использование в Deno

import { types } from "node:util";
const { isMap } = types;
isMap<T>(object: T | { }): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>

Возвращает true, если значение является экземпляром встроенного Map.

util.types.isMap(new Map());  // Returns true

Параметры типа

T

Параметры

object: T | { }

Возвращаемый тип

object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>

функция types.isMapIterator

Использование в Deno

import { types } from "node:util";
const { isMapIterator } = types;
isMapIterator(object: unknown): boolean

Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Map.

const map = new Map();
util.types.isMapIterator(map.keys());  // Returns true
util.types.isMapIterator(map.values());  // Returns true
util.types.isMapIterator(map.entries());  // Returns true
util.types.isMapIterator(map[Symbol.iterator]());  // Returns true

Параметры

object: unknown

Возвращаемый тип

boolean

функция types.isModuleNamespaceObject

Использование в Deno

import { types } from "node:util";
const { isModuleNamespaceObject } = types;
isModuleNamespaceObject(value: unknown): boolean

Возвращает true, если значение является экземпляром объекта пространства имён модуля.

import * as ns from './a.js';

util.types.isModuleNamespaceObject(ns);  // Returns true

Параметры

value: unknown

Возвращаемый тип

boolean

функция types.isNativeError

Использование в Deno

import { types } from "node:util";
const { isNativeError } = types;
isNativeError(object: unknown): object is Error

Возвращает true, если значение было возвращено конструктором встроенного типа Error.

console.log(util.types.isNativeError(new Error()));  // true
console.log(util.types.isNativeError(new TypeError()));  // true
console.log(util.types.isNativeError(new RangeError()));  // true

Подклассы встроенных типов ошибок также являются встроенными ошибками:

class MyError extends Error {}
console.log(util.types.isNativeError(new MyError()));  // true

Тот факт, что значение instanceof является экземпляром встроенного класса ошибок, не равнозначен тому, что isNativeError() возвращает true для этого значения. isNativeError() возвращает true для ошибок из другой области выполнения, тогда как instanceof Error возвращает false для этих ошибок:

import vm from 'node:vm';
const context = vm.createContext({});
const myError = vm.runInContext('new Error()', context);
console.log(util.types.isNativeError(myError)); // true
console.log(myError instanceof Error); // false

И наоборот, isNativeError() возвращает false для всех объектов, которые не были возвращены конструктором встроенной ошибки. Сюда входят значения, которые instanceof являются встроенными ошибками:

const myError = { __proto__: Error.prototype };
console.log(util.types.isNativeError(myError)); // false
console.log(myError instanceof Error); // true

Параметры

object: unknown

Возвращаемый тип

object is Error

функция types.isNumberObject

Использование в Deno

import { types } from "node:util";
const { isNumberObject } = types;
isNumberObject(object: unknown): object is Number

Возвращает true, если значение является объектом-обёрткой для числа, например созданным с помощью new Number().

util.types.isNumberObject(0);  // Returns false
util.types.isNumberObject(new Number(0));   // Returns true

Параметры

object: unknown

Возвращаемый тип

object is Number

функция types.isPromise

Использование в Deno

import { types } from "node:util";
const { isPromise } = types;
isPromise(object: unknown): object is Promise<unknown>

Возвращает true, если значение является встроенным Promise.

util.types.isPromise(Promise.resolve(42));  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is Promise<unknown>

функция types.isProxy

Использование в Deno

import { types } from "node:util";
const { isProxy } = types;
isProxy(object: unknown): boolean

Возвращает true, если значение является экземпляром Proxy.

const target = {};
const proxy = new Proxy(target, {});
util.types.isProxy(target);  // Returns false
util.types.isProxy(proxy);  // Returns true

Параметры

object: unknown

Возвращаемый тип

boolean

функция types.isRegExp

Использование в Deno

import { types } from "node:util";
const { isRegExp } = types;
isRegExp(object: unknown): object is RegExp

Возвращает true, если значение является объектом регулярного выражения.

util.types.isRegExp(/abc/);  // Returns true
util.types.isRegExp(new RegExp('abc'));  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is RegExp

функция types.isSet

Использование в Deno

import { types } from "node:util";
const { isSet } = types;
isSet<T>(object: T | { }): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>

Возвращает true, если значение является экземпляром встроенного Set.

util.types.isSet(new Set());  // Returns true

Параметры типа

T

Параметры

object: T | { }

Возвращаемый тип

object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>

функция types.isSetIterator

Использование в Deno

import { types } from "node:util";
const { isSetIterator } = types;
isSetIterator(object: unknown): boolean

Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Set.

const set = new Set();
util.types.isSetIterator(set.keys());  // Returns true
util.types.isSetIterator(set.values());  // Returns true
util.types.isSetIterator(set.entries());  // Returns true
util.types.isSetIterator(set[Symbol.iterator]());  // Returns true

Параметры

object: unknown

Возвращаемый тип

boolean

функция types.isSharedArrayBuffer

Использование в Deno

import { types } from "node:util";
const { isSharedArrayBuffer } = types;
isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer

Возвращает true, если значение является экземпляром встроенного объекта SharedArrayBuffer. Сюда не входят экземпляры ArrayBuffer. Обычно желательно проверять оба типа; см. util.types.isAnyArrayBuffer().

util.types.isSharedArrayBuffer(new ArrayBuffer());  // Returns false
util.types.isSharedArrayBuffer(new SharedArrayBuffer());  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is SharedArrayBuffer

функция types.isStringObject

Использование в Deno

import { types } from "node:util";
const { isStringObject } = types;
isStringObject(object: unknown): object is String

Возвращает true, если значение является строковым объектом, например созданным с помощью new String().

util.types.isStringObject('foo');  // Returns false
util.types.isStringObject(new String('foo'));   // Returns true

Параметры

object: unknown

Возвращаемый тип

object is String

функция types.isSymbolObject

Использование в Deno

import { types } from "node:util";
const { isSymbolObject } = types;
isSymbolObject(object: unknown): object is Symbol

Возвращает true, если значение является символьным объектом, созданным вызовом Object() для примитивного значения Symbol.

const symbol = Symbol('foo');
util.types.isSymbolObject(symbol);  // Returns false
util.types.isSymbolObject(Object(symbol));   // Returns true

Параметры

object: unknown

Возвращаемый тип

object is Symbol

функция types.isTypedArray

Использование в Deno

import { types } from "node:util";
const { isTypedArray } = types;
isTypedArray(object: unknown): object is TypedArray

Возвращает true, если значение является экземпляром встроенного объекта TypedArray.

util.types.isTypedArray(new ArrayBuffer());  // Returns false
util.types.isTypedArray(new Uint8Array());  // Returns true
util.types.isTypedArray(new Float64Array());  // Returns true

См. также ArrayBuffer.isView().

Параметры

object: unknown

Возвращаемый тип

object is TypedArray

функция types.isUint16Array

Использование в Deno

import { types } from "node:util";
const { isUint16Array } = types;
isUint16Array(object: unknown): object is Uint16Array

Возвращает true, если значение является экземпляром встроенного объекта Uint16Array.

util.types.isUint16Array(new ArrayBuffer());  // Returns false
util.types.isUint16Array(new Uint16Array());  // Returns true
util.types.isUint16Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Uint16Array

функция types.isUint32Array

Использование в Deno

import { types } from "node:util";
const { isUint32Array } = types;
isUint32Array(object: unknown): object is Uint32Array

Возвращает true, если значение является экземпляром встроенного объекта Uint32Array.

util.types.isUint32Array(new ArrayBuffer());  // Returns false
util.types.isUint32Array(new Uint32Array());  // Returns true
util.types.isUint32Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Uint32Array

функция types.isUint8Array

Использование в Deno

import { types } from "node:util";
const { isUint8Array } = types;
isUint8Array(object: unknown): object is Uint8Array

Возвращает true, если значение является экземпляром встроенного объекта Uint8Array.

util.types.isUint8Array(new ArrayBuffer());  // Returns false
util.types.isUint8Array(new Uint8Array());  // Returns true
util.types.isUint8Array(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Uint8Array

функция types.isUint8ClampedArray

Использование в Deno

import { types } from "node:util";
const { isUint8ClampedArray } = types;
isUint8ClampedArray(object: unknown): object is Uint8ClampedArray

Возвращает true, если значение является экземпляром встроенного объекта Uint8ClampedArray.

util.types.isUint8ClampedArray(new ArrayBuffer());  // Returns false
util.types.isUint8ClampedArray(new Uint8ClampedArray());  // Returns true
util.types.isUint8ClampedArray(new Float64Array());  // Returns false

Параметры

object: unknown

Возвращаемый тип

object is Uint8ClampedArray

функция types.isWeakMap

Использование в Deno

import { types } from "node:util";
const { isWeakMap } = types;
isWeakMap(object: unknown): object is WeakMap<object, unknown>

Возвращает true, если значение является экземпляром встроенного объекта WeakMap.

util.types.isWeakMap(new WeakMap());  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is WeakMap<object, unknown>

функция types.isWeakSet

Использование в Deno

import { types } from "node:util";
const { isWeakSet } = types;
isWeakSet(object: unknown): object is WeakSet<object>

Возвращает true, если значение является экземпляром встроенного объекта WeakSet.

util.types.isWeakSet(new WeakSet());  // Returns true

Параметры

object: unknown

Возвращаемый тип

object is WeakSet<object>

функция isArray

Использование в Deno

import { isArray } from "node:util";
isArray(object: unknown): object is unknown[]
Устарело

Псевдоним для Array.isArray().

Возвращает true, если указанное значение object является Array. В противном случае возвращает false.

import util from 'node:util';

util.isArray([]);
// Returns: true
util.isArray(new Array());
// Returns: true
util.isArray({});
// Returns: false

Параметры

object: unknown

Возвращаемый тип

object is unknown[]

функция isBoolean

Использование в Deno

import { isBoolean } from "node:util";
isBoolean(object: unknown): object is boolean
Устарело

Возвращает true, если указанное значение object является Boolean. В противном случае возвращает false.

import util from 'node:util';

util.isBoolean(1);
// Returns: false
util.isBoolean(0);
// Returns: false
util.isBoolean(false);
// Returns: true

Параметры

object: unknown

Возвращаемый тип

object is boolean

функция isBuffer

Использование в Deno

import { isBuffer } from "node:util";
isBuffer(object: unknown): object is Buffer
Устарело

Возвращает true, если указанное значение object является Buffer. В противном случае возвращает false.

import util from 'node:util';

util.isBuffer({ length: 0 });
// Returns: false
util.isBuffer([]);
// Returns: false
util.isBuffer(Buffer.from('hello world'));
// Returns: true

Параметры

object: unknown

Возвращаемый тип

object is Buffer

функция isDate

Использование в Deno

import { isDate } from "node:util";
isDate(object: unknown): object is Date
Устарело

Возвращает true, если указанное значение object является Date. В противном случае возвращает false.

import util from 'node:util';

util.isDate(new Date());
// Returns: true
util.isDate(Date());
// false (without 'new' returns a String)
util.isDate({});
// Returns: false

Параметры

object: unknown

Возвращаемый тип

object is Date

функция isError

Использование в Deno

import { isError } from "node:util";
isError(object: unknown): object is Error
Устарело

Возвращает true, если указанное значение object является Error. В противном случае возвращает false.

import util from 'node:util';

util.isError(new Error());
// Returns: true
util.isError(new TypeError());
// Returns: true
util.isError({ name: 'Error', message: 'an error occurred' });
// Returns: false

Этот метод зависит от поведения Object.prototype.toString(). Если аргумент object изменяет @@toStringTag, возможен неверный результат.

import util from 'node:util';
const obj = { name: 'Error', message: 'an error occurred' };

util.isError(obj);
// Returns: false
obj[Symbol.toStringTag] = 'Error';
util.isError(obj);
// Returns: true

Параметры

object: unknown

Возвращаемый тип

object is Error

функция isFunction

Использование в Deno

import { isFunction } from "node:util";
isFunction(object: unknown): boolean
Устарело

Возвращает true, если указанное значение object является Function. В противном случае возвращает false.

import util from 'node:util';

function Foo() {}
const Bar = () => {};

util.isFunction({});
// Returns: false
util.isFunction(Foo);
// Returns: true
util.isFunction(Bar);
// Returns: true

Параметры

object: unknown

Возвращаемый тип

boolean

функция isNull

Использование в Deno

import { isNull } from "node:util";
isNull(object: unknown): object is null
Устарело

Возвращает true, если указанное значение object строго равно null. В противном случае возвращаетfalse.

import util from 'node:util';

util.isNull(0);
// Returns: false
util.isNull(undefined);
// Returns: false
util.isNull(null);
// Returns: true

Параметры

object: unknown

Возвращаемый тип

object is null

функция isNullOrUndefined

Использование в Deno

import { isNullOrUndefined } from "node:util";
isNullOrUndefined(object: unknown): object is null | undefined
Устарело

Возвращает true, если заданное object равно null или undefined. В противном случае возвращает false.

import util from 'node:util';

util.isNullOrUndefined(0);
// Returns: false
util.isNullOrUndefined(undefined);
// Returns: true
util.isNullOrUndefined(null);
// Returns: true

Параметры

object: unknown

Тип возвращаемого значения

object is null | undefined

функция isNumber

Использование в Deno

import { isNumber } from "node:util";
isNumber(object: unknown): object is number
Устарело

Возвращает true, если заданное object является Number. В противном случае возвращает false.

import util from 'node:util';

util.isNumber(false);
// Returns: false
util.isNumber(Infinity);
// Returns: true
util.isNumber(0);
// Returns: true
util.isNumber(NaN);
// Returns: true

Параметры

object: unknown

Тип возвращаемого значения

object is number

функция isObject

Использование в Deno

import { isObject } from "node:util";
isObject(object: unknown): boolean
Устарело

Возвращает true, если заданное object является именно Objectи не является Function (хотя функции в JavaScript являются объектами). В противном случае возвращает false.

import util from 'node:util';

util.isObject(5);
// Returns: false
util.isObject(null);
// Returns: false
util.isObject({});
// Returns: true
util.isObject(() => {});
// Returns: false

Параметры

object: unknown

Тип возвращаемого значения

boolean

функция isPrimitive

Использование в Deno

import { isPrimitive } from "node:util";
isPrimitive(object: unknown): boolean
Устарело

Возвращает true, если заданное object является примитивным типом. В противном случае возвращает false.

import util from 'node:util';

util.isPrimitive(5);
// Returns: true
util.isPrimitive('foo');
// Returns: true
util.isPrimitive(false);
// Returns: true
util.isPrimitive(null);
// Returns: true
util.isPrimitive(undefined);
// Returns: true
util.isPrimitive({});
// Returns: false
util.isPrimitive(() => {});
// Returns: false
util.isPrimitive(/^$/);
// Returns: false
util.isPrimitive(new Date());
// Returns: false

Параметры

object: unknown

Тип возвращаемого значения

boolean

функция isRegExp

Использование в Deno

import { isRegExp } from "node:util";
isRegExp(object: unknown): object is RegExp
Устарело

Возвращает true, если заданное object является RegExp. В противном случае возвращает false.

import util from 'node:util';

util.isRegExp(/some regexp/);
// Returns: true
util.isRegExp(new RegExp('another regexp'));
// Returns: true
util.isRegExp({});
// Returns: false

Параметры

object: unknown

Тип возвращаемого значения

object is RegExp

функция isString

Использование в Deno

import { isString } from "node:util";
isString(object: unknown): object is string
Устарело

Возвращает true, если заданное object является string. В противном случае возвращает false.

import util from 'node:util';

util.isString('');
// Returns: true
util.isString('foo');
// Returns: true
util.isString(String('foo'));
// Returns: true
util.isString(5);
// Returns: false

Параметры

object: unknown

Тип возвращаемого значения

object is string

функция isSymbol

Использование в Deno

import { isSymbol } from "node:util";
isSymbol(object: unknown): object is symbol
Устарело

Возвращает true, если заданное object является Symbol. В противном случае возвращает false.

import util from 'node:util';

util.isSymbol(5);
// Returns: false
util.isSymbol('foo');
// Returns: false
util.isSymbol(Symbol('foo'));
// Returns: true

Параметры

object: unknown

Тип возвращаемого значения

object is symbol

функция isUndefined

Использование в Deno

import { isUndefined } from "node:util";
isUndefined(object: unknown): object is undefined
Устарело

Возвращает true, если заданное object равно undefined. В противном случае возвращает false.

import util from 'node:util';

const foo = undefined;
util.isUndefined(5);
// Returns: false
util.isUndefined(foo);
// Returns: true
util.isUndefined(null);
// Returns: false

Параметры

object: unknown

Тип возвращаемого значения

object is undefined

функция log

Использование в Deno

import { log } from "node:util";
log(string: string): void
Устарело

Метод util.log() выводит заданное string в stdout с добавлением временной метки.

import util from 'node:util';

util.log('Timestamped message.');

Параметры

string: string

Тип возвращаемого значения

void

интерфейс CallSiteObject

Использование в Deno

import { type CallSiteObject } from "node:util";

Свойства

functionName: string

Возвращает имя функции, связанной с этим местом вызова.

scriptName: string

Возвращает имя ресурса, содержащего скрипт функции для этого места вызова.

scriptId: string

Возвращает уникальный идентификатор скрипта, как в протоколе Chrome DevTools Runtime.ScriptId.

lineNumber: number

Возвращает номер строки, начиная с 1, для соответствующего вызова функции.

columnNumber: number

Возвращает смещение столбца в строке, начиная с 1, для соответствующего вызова функции.


интерфейс CustomPromisifyLegacy

наследует Function

Использование в Deno

import { type CustomPromisifyLegacy } from "node:util";

Параметры типа

TCustom extends Function

Свойства

__promisify__: TCustom

интерфейс CustomPromisifySymbol

наследует Function

Использование в Deno

import { type CustomPromisifySymbol } from "node:util";

Параметры типа

TCustom extends Function

Свойства

[[promisify.custom]]: TCustom

интерфейс DebugLogger

наследует DebugLoggerFunction

Использование в Deno

import { type DebugLogger } from "node:util";

Свойства

enabled: boolean

интерфейс EncodeIntoResult

Использование в Deno

import { type EncodeIntoResult } from "node:util";

Свойства

read: number

Прочитанные кодовые единицы Unicode входных данных.

written: number

Записанные байты UTF-8 выходных данных.


интерфейс GetCallSitesOptions

Использование в Deno

import { type GetCallSitesOptions } from "node:util";

Свойства

sourceMap: boolean | undefined
необязательно

Восстанавливает исходное расположение в трассировке стека с помощью source map. По умолчанию включено с флагом --enable-source-maps.


интерфейс InspectOptions

Использование в Deno

import { type InspectOptions } from "node:util";

Свойства

showHidden: boolean | undefined
необязательный

Если true, в форматированный результат включаются неперечисляемые символы и свойства объекта. Также включаются записи WeakMap и WeakSet, а также определённые пользователем свойства прототипа (за исключением свойств методов).

depth:
number
| null
| undefined
необязательный

Задаёт количество рекурсивных вызовов при форматировании объекта. Это полезно при просмотре больших объектов. Чтобы выполнять рекурсию до максимального размера стека вызовов, передайте Infinity или null.

colors: boolean | undefined
необязательный

Если true, вывод оформляется с помощью цветовых кодов ANSI. Цвета можно настроить.

customInspect: boolean | undefined
необязательный

Если false, функции [util.inspect.custom](depth, opts, inspect) не вызываются.

showProxy: boolean | undefined
необязательный

Если true, при проверке Proxy включаются целевой объект и объект-обработчик.

maxArrayLength:
number
| null
| undefined
необязательный

Задаёт максимальное количество элементов Array, TypedArray, WeakMap и WeakSet, включаемых при форматировании. Установите значение null или Infinity, чтобы отобразить все элементы. Установите значение 0 или отрицательное значение, чтобы не отображать элементы.

maxStringLength:
number
| null
| undefined
необязательный

Задаёт максимальное количество символов, включаемых при форматировании. Установите значение null или Infinity, чтобы отобразить все элементы. Установите значение 0 или отрицательное значение, чтобы не отображать символы.

breakLength: number | undefined
необязательный

Длина, при достижении которой входные значения разбиваются на несколько строк. Установите значение Infinity, чтобы форматировать входные данные в одну строку (в сочетании с параметром compact, установленным в true или любое число >= 1).

compact:
boolean
| number
| undefined
необязательный

Установка значения false приводит к отображению каждого ключа объекта на новой строке. Также новые строки добавляются в текст длиннее breakLength. Если задано число, наиболее n внутренних элементов объединяются в одну строку, если все свойства помещаются в breakLength. Короткие элементы массива также группируются. Обратите внимание: текст не будет сокращён до длины менее 16 символов независимо от размера breakLength. Дополнительные сведения см. в примере ниже.

sorted:
boolean
| ((
a: string,
b: string,
) => number)

| undefined
необязательный

Если задано значение true или функция, все свойства объекта, а также записи Set и Map сортируются в результирующей строке. Если задано значение true, используется сортировка по умолчанию. Если задана функция, она используется в качестве функции сравнения.

getters:
"get"
| "set"
| boolean
| undefined
необязательный

Если задано значение true, будут проверяться и геттеры. Если задано значение 'get', будут проверяться только геттеры без сеттера. Если задано значение 'set', будут проверяться только геттеры с соответствующим сеттером. В зависимости от функции-геттера это может привести к побочным эффектам.

numericSeparator: boolean | undefined
необязательный

Если задано значение true, для разделения каждой группы из трёх цифр во всех значениях bigint и числах используется символ подчёркивания.


интерфейс InspectOptionsStylized

наследует InspectOptions

Использование в Deno

import { type InspectOptionsStylized } from "node:util";

Методы

stylize(
text: string,
styleType: Style,
): string

интерфейс ParseArgsConfig

Использование в Deno

import { type ParseArgsConfig } from "node:util";

Свойства

args: string[] | undefined
необязательный

Массив строк аргументов.

options: ParseArgsOptionsConfig | undefined
необязательный

Используется для описания аргументов, известных анализатору.

strict: boolean | undefined
необязательный

Следует ли выбрасывать ошибку при обнаружении неизвестных аргументов или при передаче аргументов, не соответствующих type, заданным в options.

allowPositionals: boolean | undefined
необязательный

Принимает ли эта команда позиционные аргументы.

allowNegative: boolean | undefined
необязательный

Если true, позволяет явно устанавливать логические параметры в значение false, добавляя --no- перед именем параметра.

tokens: boolean | undefined
необязательный

Возвращает разобранные токены. Это полезно для расширения встроенного поведения: от добавления дополнительных проверок до повторной обработки токенов различными способами.


интерфейс ParseArgsOptionDescriptor

Использование в Deno

import { type ParseArgsOptionDescriptor } from "node:util";

Свойства

type: ParseArgsOptionsType

Тип аргумента.

multiple: boolean | undefined
необязательный

Можно ли указывать этот параметр несколько раз. Если true, все значения будут собраны в массив. Если false, для параметра используется последнее указанное значение.

short: string | undefined
необязательный

Односимвольный псевдоним параметра.

default:
string
| boolean
| string[]
| boolean[]
| undefined
необязательный

Значение по умолчанию, используемое только в том случае, если параметр отсутствует среди анализируемых аргументов. Оно должно иметь тот же тип, что и свойство type. Если multiple равно true, оно должно быть массивом.


интерфейс ParseArgsOptionsConfig

Использование в Deno

import { type ParseArgsOptionsConfig } from "node:util";

Сигнатуры индекса

[longOption: string]: ParseArgsOptionDescriptor

пространство имён types

Использование в Deno

import { types } from "node:util";

Функции

types.isAnyArrayBuffer

Возвращает true, если значение является экземпляром встроенного ArrayBuffer или SharedArrayBuffer.

types.isArgumentsObject

Возвращает true, если значение является объектом arguments.

types.isArrayBuffer

Возвращает true, если значение является экземпляром встроенного ArrayBuffer. Сюда не входят экземпляры SharedArrayBuffer. Обычно желательно проверять оба типа; для этого см. util.types.isAnyArrayBuffer().

types.isArrayBufferView

Возвращает true, если значение является экземпляром одного из представлений ArrayBuffer, например типизированного массива или DataView. Эквивалентно ArrayBuffer.isView().

types.isAsyncFunction

Возвращает true, если значение является асинхронной функцией. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

types.isBigInt64Array

Возвращает true, если значение является экземпляром BigInt64Array.

types.isBigIntObject

Возвращает true, если значение является объектом BigInt, например созданным с помощью Object(BigInt(123)).

types.isBigUint64Array

Возвращает true, если значение является экземпляром BigUint64Array.

types.isBooleanObject

Возвращает true, если значение является объектом boolean, например созданным с помощью new Boolean().

types.isBoxedPrimitive

Возвращает true, если значение является любым объектом-обёрткой примитива, например созданным с помощью new Boolean(), new String() или Object(Symbol()).

types.isCryptoKey

Возвращает true, если value является CryptoKey, и false в противном случае.

types.isDataView

Возвращает true, если значение является экземпляром встроенного DataView.

types.isDate

Возвращает true, если значение является экземпляром встроенного Date.

types.isExternal

Возвращает true, если значение является нативным значением External.

types.isFloat32Array

Возвращает true, если значение является экземпляром встроенного Float32Array.

types.isFloat64Array

Возвращает true, если значение является экземпляром встроенного Float64Array.

types.isGeneratorFunction

Возвращает true, если значение является функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

types.isGeneratorObject

Возвращает true, если значение является объектом-генератором, возвращённым встроенной функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.

types.isInt16Array

Возвращает true, если значение является экземпляром встроенного Int16Array.

types.isInt32Array

Возвращает true, если значение является экземпляром встроенного Int32Array.

types.isInt8Array

Возвращает true, если значение является экземпляром встроенного Int8Array.

types.isKeyObject

Возвращает true, если value является KeyObject, и false в противном случае.

types.isMap

Возвращает true, если значение является экземпляром встроенного Map.

types.isMapIterator

Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Map.

types.isModuleNamespaceObject

Возвращает true, если значение является экземпляром объекта пространства имён модуля.

types.isNativeError

Возвращает true, если значение было возвращено конструктором встроенного типа Error.

types.isNumberObject

Возвращает true, если значение является объектом number, например созданным с помощью new Number().

types.isPromise

Возвращает true, если значение является встроенным Promise.

types.isProxy

Возвращает true, если значение является экземпляром Proxy.

types.isRegExp

Возвращает true, если значение является объектом регулярного выражения.

types.isSet

Возвращает true, если значение является экземпляром встроенного Set.

types.isSetIterator

Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Set.

types.isSharedArrayBuffer

Возвращает true, если значение является экземпляром встроенного SharedArrayBuffer. Сюда не входят экземпляры ArrayBuffer. Обычно желательно проверять оба типа; для этого см. util.types.isAnyArrayBuffer().

types.isStringObject

Возвращает true, если значение является объектом string, например созданным с помощью new String().

types.isSymbolObject

Возвращает true, если значение является объектом symbol, созданным вызовом Object() для примитива Symbol.

types.isTypedArray

Возвращает true, если значение является экземпляром встроенного TypedArray.

types.isUint16Array

Возвращает true, если значение является экземпляром встроенного Uint16Array.

types.isUint32Array

Возвращает true, если значение является экземпляром встроенного Uint32Array.

types.isUint8Array

Возвращает true, если значение является экземпляром встроенного Uint8Array.

types.isUint8ClampedArray

Возвращает true, если значение является экземпляром встроенного Uint8ClampedArray.

types.isWeakMap

Возвращает true, если значение является экземпляром встроенного WeakMap.

types.isWeakSet

Возвращает true, если значение является экземпляром встроенного WeakSet.


псевдоним типа ApplyOptionalModifiers

Использование в Deno

import { type ApplyOptionalModifiers } from "node:util";

Параметры типа

O extends ParseArgsOptionsConfig
V extends Record<keyof O, unknown>

Определение

(-readonly [LongOption in keyof O]?: V[LongOption] & [LongOption in keyof O in keyof O[LongOption]["default"] extends { } ? LongOption : never]: V[LongOption]) extends infer P ? [K in keyof P]: P[K] : never

псевдоним типа BackgroundColors

Использование в Deno

import { type BackgroundColors } from "node:util";

Определение

"bgBlack"
| "bgBlackBright"
| "bgBlue"
| "bgBlueBright"
| "bgCyan"
| "bgCyanBright"
| "bgGray"
| "bgGreen"
| "bgGreenBright"
| "bgGrey"
| "bgMagenta"
| "bgMagentaBright"
| "bgRed"
| "bgRedBright"
| "bgWhite"
| "bgWhiteBright"
| "bgYellow"
| "bgYellowBright"

псевдоним типа CustomInspectFunction

Использование в Deno

import { type CustomInspectFunction } from "node:util";

Определение

(
depth: number,
options: InspectOptionsStylized,
) => any

псевдоним типа CustomPromisify

Использование в Deno

import { type CustomPromisify } from "node:util";

Параметры типа

TCustom extends Function

Определение

CustomPromisifySymbol<TCustom> | CustomPromisifyLegacy<TCustom>

псевдоним типа DebugLoggerFunction

Использование в Deno

import { type DebugLoggerFunction } from "node:util";

Определение

(
msg: string,
...param: unknown[],
) => void

псевдоним типа ExtractOptionValue

Использование в Deno

import { type ExtractOptionValue } from "node:util";

Параметры типа

T extends ParseArgsConfig
O extends ParseArgsOptionDescriptor

Определение

IfDefaultsTrue<T["strict"], O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : string | boolean, string | boolean>

псевдоним типа ForegroundColors

Использование в Deno

import { type ForegroundColors } from "node:util";

Определение

"black"
| "blackBright"
| "blue"
| "blueBright"
| "cyan"
| "cyanBright"
| "gray"
| "green"
| "greenBright"
| "grey"
| "magenta"
| "magentaBright"
| "red"
| "redBright"
| "white"
| "whiteBright"
| "yellow"
| "yellowBright"

псевдоним типа IfDefaultsFalse

Использование в Deno

import { type IfDefaultsFalse } from "node:util";

Параметры типа

T
IfTrue
IfFalse

Определение

T extends false ? IfFalse : T extends true ? IfTrue : IfFalse

псевдоним типа IfDefaultsTrue

Использование в Deno

import { type IfDefaultsTrue } from "node:util";

Параметры типа

T
IfTrue
IfFalse

Определение

T extends true ? IfTrue : T extends false ? IfFalse : IfTrue

псевдоним типа Modifiers

Использование в Deno

import { type Modifiers } from "node:util";

Определение

"blink"
| "bold"
| "dim"
| "doubleunderline"
| "framed"
| "hidden"
| "inverse"
| "italic"
| "overlined"
| "reset"
| "strikethrough"
| "underline"

псевдоним типа OptionToken

Использование в Deno

import { type OptionToken } from "node:util";

Определение

{ kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean; } | { kind: "option"; index: number; name: string; rawName: string; value: undefined; inlineValue: undefined; }

псевдоним типа ParseArgsOptionsType

Использование в Deno

import { type ParseArgsOptionsType } from "node:util";

Тип аргумента, используемый в parseArgs.

Определение

"boolean" | "string"

псевдоним типа ParsedOptionToken

Использование в Deno

import { type ParsedOptionToken } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

IfDefaultsTrue<T["strict"], TokenForOptions<T>, OptionToken>

псевдоним типа ParsedPositionals

Использование в Deno

import { type ParsedPositionals } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

IfDefaultsTrue<T["strict"], IfDefaultsFalse<T["allowPositionals"], string[], []>, IfDefaultsTrue<T["allowPositionals"], string[], []>>

псевдоним типа ParsedPositionalToken

Использование в Deno

import { type ParsedPositionalToken } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

IfDefaultsTrue<T["strict"], IfDefaultsFalse<T["allowPositionals"], { kind: "positional"; index: number; value: string; }, never>, IfDefaultsTrue<T["allowPositionals"], { kind: "positional"; index: number; value: string; }, never>>

псевдоним типа ParsedResults

Использование в Deno

import { type ParsedResults } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

ParseArgsConfig extends T ? { values: { [longOption: string]:
undefined
| string
| boolean
| Array<string | boolean>
; }
; positionals: string[]; tokens?: Token[]; } : PreciseParsedResults<T>

псевдоним типа ParsedTokens

Использование в Deno

import { type ParsedTokens } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

Array<
ParsedOptionToken<T>
| ParsedPositionalToken<T>
| { kind: "option-terminator"; index: number; }
>

псевдоним типа ParsedValues

Использование в Deno

import { type ParsedValues } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

IfDefaultsTrue<T["strict"], unknown, { [longOption: string]:
undefined
| string
| boolean
; }> & (T["options"] extends ParseArgsOptionsConfig ? ApplyOptionalModifiers<T["options"], [LongOption in keyof T["options"]]: IfDefaultsFalse<T["options"][LongOption]["multiple"], Array<ExtractOptionValue<T, T["options"][LongOption]>>, ExtractOptionValue<T, T["options"][LongOption]>>> : { })

псевдоним типа PreciseParsedResults

Использование в Deno

import { type PreciseParsedResults } from "node:util";

Параметры типа

T extends ParseArgsConfig

Определение

IfDefaultsFalse<T["tokens"], { values: ParsedValues<T>; positionals: ParsedPositionals<T>; tokens: ParsedTokens<T>; }, { values: ParsedValues<T>; positionals: ParsedPositionals<T>; }>

псевдоним типа PreciseTokenForOptions

Использование в Deno

import { type PreciseTokenForOptions } from "node:util";

Параметры типа

K extends string
O extends ParseArgsOptionDescriptor

Определение

O["type"] extends "string" ? { kind: "option"; index: number; name: K; rawName: string; value: string; inlineValue: boolean; } : O["type"] extends "boolean" ? { kind: "option"; index: number; name: K; rawName: string; value: undefined; inlineValue: undefined; } : OptionToken & { name: K; }

псевдоним типа Style

Использование в Deno

import { type Style } from "node:util";

Определение

"special"
| "number"
| "bigint"
| "boolean"
| "undefined"
| "null"
| "string"
| "symbol"
| "date"
| "regexp"
| "module"

псевдоним типа Token

Использование в Deno

import { type Token } from "node:util";

Определение

OptionToken
| { kind: "positional"; index: number; value: string; }
| { kind: "option-terminator"; index: number; }

псевдоним типа TokenForOptions

Использование в Deno

import { type TokenForOptions } from "node:util";

Параметры типа

T extends ParseArgsConfig
K extends keyof T["options"] = keyof T["options"]

Определение

K extends unknown ? T["options"] extends ParseArgsOptionsConfig ? PreciseTokenForOptions<K & string, T["options"][K]> : OptionToken : never

переменная debug

Использование в Deno

import { debug } from "node:util";

Тип

debuglog

переменная inspect.colors

Использование в Deno

import { inspect } from "node:util";

Тип

Dict<[number, number]>

переменная inspect.custom

Использование в Deno

import { inspect } from "node:util";

Можно использовать для объявления пользовательских функций inspect.

Тип

unique symbol

переменная inspect.defaultOptions

Использование в Deno

import { inspect } from "node:util";

Тип

InspectOptions

переменная inspect.replDefaults

Использование в Deno

import { inspect } from "node:util";

Позволяет изменять настройки inspect из REPL.

Тип

InspectOptions

переменная inspect.styles

Использование в Deno

import { inspect } from "node:util";

Тип

[K in Style]: string

переменная promisify.custom

Использование в Deno

import { promisify } from "node:util";

Можно использовать для объявления пользовательских вариантов функций с promisify.

Тип

unique symbol

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/util

Spec-Zone.ru

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