powerbi-client package

Kelas

AdvancedFilter
BasicFilter
BasicFilterWithKeys
Filter
HierarchyFilter
HierarchyIdentityFilter
IdentityFilter
IncludeExcludeFilter
NotSupportedFilter
PageSelector
RelativeDateFilter
RelativeTimeFilter
Selector
SlicerTargetSelector
TopNFilter
TupleFilter
VisualSelector
VisualTypeSelector
AdvancedFilterBuilder

Komponen penyusun filter Tingkat Lanjut Power BI

BasicFilterBuilder

Komponen penyusun filter Power BI Basic

BookmarksManager

Mengelola marka buku laporan.

Create

Komponen pembuat Laporan Power BI

Dashboard

Komponen sematkan Dasbor Power BI

FilterBuilder

Penyusun filter generik untuk BasicFilter, AdvancedFilter, RelativeDate, RelativeTime dan TopN

MIMEParams

API MIMEParams menyediakan akses baca dan tulis ke parameter MIMEType.

MIMEType

Implementasi kelas MIMEType.

Sesuai dengan konvensi browser, semua properti objek MIMEType diimplementasikan sebagai getter dan setter pada prototipe kelas, bukan sebagai properti data pada objek itu sendiri.

String MIME adalah string terstruktur yang berisi beberapa komponen yang bermakna. Saat diurai, objek MIMEType dikembalikan yang berisi properti untuk masing-masing komponen ini.

Page

Halaman laporan Power BI

Qna

Komponen Power BI Q&Semat

QuickCreate

Komponen Buat Cepat Power BI

RelativeDateFilterBuilder

Komponen penyusun filter Tanggal Relatif Power BI

RelativeTimeFilterBuilder

Komponen penyusun filter Waktu Relatif Power BI

Report

Komponen semat Laporan Power BI

Service

Komponen semat Layanan Power BI, yang merupakan titik masuk untuk menyematkan semua komponen Power BI lainnya ke dalam aplikasi Anda

Tile

Komponen sematkan petak peta Power BI

TopNFilterBuilder

Komponen penyusun filter Power BI Top N

Visual

Komponen Power BI Visual embed

VisualDescriptor

Visual Power BI dalam halaman

Antarmuka

EventHooks
IActionBar
IAddBookmarkRequest
IAdvancedFilter
IAdvancedFilterCondition
IAggregationTarget
IApplyBookmarkByNameRequest
IApplyBookmarkStateRequest
IBaseFilterTarget
IBaseTarget
IBasicFilter
IBasicFilterWithKeys
IBetweenDataReference
IBookmarksPane
IBootstrapEmbedConfiguration
ICanvasStyle
ICaptureBookmarkOptions
ICaptureBookmarkRequest
ICavasItemsSelection
ICloneVisualRequest
ICloneVisualResponse
ICollapsible
IColumnAggrTarget
IColumnSchema
IColumnTarget
ICommandExtension
ICommandSettings
ICommandsSettings
ICommonEmbedConfiguration
ICreateVisualRequest
ICreateVisualResponse
ICredential
ICustomLayout
ICustomPageSize
ICustomTheme
IDashboardEmbedConfiguration
IDashboardLoadConfiguration
IDataReference
IDatasetBinding
IDatasetCreateConfiguration
IDatasourceConnectionConfiguration
IDataTable
IDefaultProperty
IEmbedConfiguration
IEmbedConfigurationBase
IEqualsDataReference
IError
IExportDataCompletedEvent
IExportDataRequest
IExportDataResult
IExtension
IExtensionItem
IExtensionPoint
IExtensionPoints
IExtensions
IFieldsPane
IFilter
IFilterAggregationTarget
IFilterColumnAggrTarget
IFilterColumnTarget
IFilterDisplaySettings
IFilterGroupedColumnsTarget
IFilterHierarchyAggrTarget
IFilterHierarchyTarget
IFilterKeyColumnsTarget
IFilterKeyHierarchyTarget
IFilterMeasureTarget
IFiltersPane
IFlatMenuExtension
IGroupedMenuExtension
IHideable
IHierarchyFilter
IHierarchyFilterNode
IHierarchyIdentityFilter
IHierarchyIdentityFilterNode
IHierarchyLevelAggrTarget
IHierarchyLevelTarget
IIdentityFilter
IIdentityValue
IIncludeExcludeFilter
IIncludeExcludeTargetValue
IKeyColumnsTarget
IKeyHierarchyTarget
ILoadQnaConfiguration
ILocaleSettings
IMeasureTarget
IMenuExtensionBase
IMenuGroupExtension
INotSupportedFilter
INotSupportedFilterTarget
INotSupportedTarget
IPage
IPageBackground
IPageLayout
IPageNavigationPane
IPageSelector
IPageSize
IPageWallpaper
IPaginatedReportDatasetBinding
IPaginatedReportLoadConfiguration
IPaginatedReportParameter
IPaginatedReportsCommandSettings
IPaginatedReportsCommandsSettings
IPaginatedReportSettings
IPanes
IParametersPanelCommandSettings
IPercentOfGrandTotalTarget
IPlayBookmarkRequest
IPosition
IPrintSettings
IQnaEmbedConfiguration
IQnaInterpretInputData
IQnaPanes
IQnaSettings
IQnaVisualRenderedEvent
IQueryNameTarget
IQuickCreateConfiguration
IRelativeDateFilter
IRelativeDateTimeFilter
IRelativeTimeFilter
IReport
IReportBars
IReportBookmark
IReportCreateConfiguration
IReportEmbedConfiguration
IReportLoadConfiguration
IReportPanes
IReportTheme
ISaveAsParameters
ISelection
ISelectionPane
ISelector
ISettings
ISlicer
ISlicerState
ISlicerTargetSelector
ISmartNarratives
ISortByVisualRequest
IStatusBar
ISwipeEvent
ISyncSlicersPane
ITableSchema
ITechnicalDetails
IThemeColorProperty
ITileEmbedConfiguration
ITileLoadConfiguration
ITopNFilter
ITupleElementValue
ITupleFilter
IUpdateFiltersRequest
IValueDataReference
IVisual
IVisualCalculationTarget
IVisualCapabilities
IVisualContainerDisplayState
IVisualCustomCommandEvent
IVisualDataRole
IVisualEmbedConfiguration
IVisualHeader
IVisualHeaderSettings
IVisualizationsPane
IVisualLayout
IVisualPropertySelector
IVisualPropertyValue
IVisualResponse
IVisualSelector
IVisualSettings
IVisualTypeSelector
OnLoadFilters
OnLoadFiltersBase
PageOnLoadFilters
ReportOnLoadFilters
CallSiteObject
CustomPromisifyLegacy
CustomPromisifySymbol
DebugLogger
DeprecateOptions
GetCallSitesOptions
IBookmarksManager

API untuk mengelola marka buku laporan.

IDashboardNode

Simpul Dasbor dalam hierarki dasbor

IDebugOptions
IEvent
IFilterable

Menghias komponen semat yang mendukung filter Contoh menyertakan laporan dan halaman

IPageNode

Simpul Halaman dalam hierarki laporan

IPowerBiElement
IReportNode

Simpul Laporan dalam hierarki laporan

IService
IServiceConfiguration
IVisualNode

Simpul Visual dalam hierarki laporan

InspectColors
InspectContext
InspectOptions
InspectStyles
Inspectable
IsDeepStrictEqualOptions
ParseArgsConfig
ParseArgsOptionDescriptor
ParseArgsOptionsConfig
StyleTextOptions
TextDecodeOptions
TextDecoderCommon
TextDecoderOptions
TextEncoderCommon
TextEncoderEncodeIntoResult

Fungsi

isAnyArrayBuffer(unknown)

Mengembalikan true jika nilainya adalah instans ArrayBuffer atau SharedArrayBuffer bawaan.

Lihat juga util.types.isArrayBuffer() dan util.types.isSharedArrayBuffer().

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

Mengembalikan true jika nilainya adalah objek arguments.

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

Mengembalikan true jika nilainya adalah instans ArrayBuffer bawaan. Ini tidak tidak menyertakan instans SharedArrayBuffer. Biasanya, diinginkan untuk menguji keduanya; Lihat util.types.isAnyArrayBuffer() untuk itu.

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

Mengembalikan true jika nilai adalah instans dari salah satu tampilan ArrayBuffer, seperti objek array yang ditik atau DataView. Setara dengan 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
isAsyncFunction(unknown)

Mengembalikan true jika nilainya adalah fungsi asinkron . Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

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

Mengembalikan true jika nilainya adalah instans BigInt64Array.

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

Mengembalikan true jika nilainya adalah objek BigInt, misalnya dibuat oleh Object(BigInt(123)).

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

Mengembalikan true jika nilainya adalah instans BigUint64Array.

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

Mengembalikan true jika nilainya adalah objek boolean, misalnya dibuat oleh 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
isBoxedPrimitive(unknown)

Mengembalikan true jika nilainya adalah objek primitif dalam kotak, misalnya dibuat oleh new Boolean(), new String() atau Object(Symbol()).

Contohnya:

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
isCryptoKey(unknown)

Mengembalikan true jika value adalah CryptoKey, false sebaliknya.

isDataView(unknown)

Mengembalikan true jika nilainya adalah instans DataView bawaan.

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

Lihat juga ArrayBuffer.isView().

isDate(unknown)

Mengembalikan true jika nilainya adalah instans Date bawaan.

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

Mengembalikan true jika nilainya adalah nilai External asli.

Nilai External asli adalah jenis objek khusus yang berisi pointer C++ mentah (void*) untuk akses dari kode asli, dan tidak memiliki properti lain. Objek tersebut dibuat baik oleh Node.js internal atau addon asli. Di JavaScript, objek tersebut adalah objek beku dengan null prototipe.

#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, &result);
  if (status != napi_ok) {
    napi_throw_error(env, NULL, "napi_create_external failed");
    return NULL;
  }
  return result;
}
...
DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
...
import native from 'napi_addon.node';
import { types } from 'node:util';

const data = native.myNapi();
types.isExternal(data); // returns true
types.isExternal(0); // returns false
types.isExternal(new String('foo')); // returns false

Untuk informasi lebih lanjut tentang napi_create_external, lihat napi_create_external().

isFloat16Array(unknown)

Mengembalikan true jika nilainya adalah instans Float16Array bawaan.

util.types.isFloat16Array(new ArrayBuffer());  // Returns false
util.types.isFloat16Array(new Float16Array());  // Returns true
util.types.isFloat16Array(new Float32Array());  // Returns false
isFloat32Array(unknown)

Mengembalikan true jika nilainya adalah instans Float32Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Float64Array bawaan.

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

Mengembalikan true jika nilainya adalah fungsi generator. Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

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

Mengembalikan true jika nilainya adalah objek generator seperti yang dikembalikan dari fungsi generator bawaan. Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

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

Mengembalikan true jika nilainya adalah instans Int16Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Int32Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Int8Array bawaan.

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

Mengembalikan true jika value adalah KeyObject, false sebaliknya.

isMap<T>({} | T)

Mengembalikan true jika nilainya adalah instans Map bawaan.

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

Mengembalikan true jika nilainya adalah iterator yang dikembalikan untuk instans Map bawaan.

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
isModuleNamespaceObject(unknown)

Mengembalikan true jika nilainya adalah instans Objek Namespace Modul.

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

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

Mengembalikan true jika nilai dikembalikan oleh konstruktor jenis Error bawaan .

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

Subkelas jenis kesalahan asli juga merupakan kesalahan asli:

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

Nilai yang instanceof kelas kesalahan asli tidak setara dengan isNativeError() mengembalikan true untuk nilai tersebut. mengembalikan untuk kesalahan yang berasal dari realm yang berbeda sementara mengembalikan untuk kesalahan ini:

import { createContext, runInContext } from 'node:vm';
import { types } from 'node:util';

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

Sebaliknya, isNativeError() mengembalikan false untuk semua objek yang tidak dikembalikan oleh konstruktor kesalahan asli. Itu termasuk nilai yang instanceof kesalahan asli:

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

Mengembalikan true jika nilainya adalah objek angka, misalnya dibuat oleh new Number().

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

Mengembalikan true jika nilainya adalah Promisebawaan .

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

Mengembalikan true jika nilainya adalah instans Proxy.

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

Mengembalikan true jika nilainya adalah objek ekspresi reguler.

util.types.isRegExp(/abc/);  // Returns true
util.types.isRegExp(new RegExp('abc'));  // Returns true
isSet<T>({} | T)

Mengembalikan true jika nilainya adalah instans Set bawaan.

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

Mengembalikan true jika nilainya adalah iterator yang dikembalikan untuk instans Set bawaan.

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
isSharedArrayBuffer(unknown)

Mengembalikan true jika nilainya adalah instans SharedArrayBuffer bawaan. Ini tidak tidak menyertakan instans ArrayBuffer. Biasanya, diinginkan untuk menguji keduanya; Lihat util.types.isAnyArrayBuffer() untuk itu.

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

Mengembalikan true jika nilainya adalah objek string, misalnya dibuat oleh new String().

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

Mengembalikan true jika nilainya adalah objek simbol, yang dibuat dengan memanggil Object() pada Symbol primitif.

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

Mengembalikan true jika nilainya adalah instans TypedArray bawaan.

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

Lihat juga ArrayBuffer.isView().

isUint16Array(unknown)

Mengembalikan true jika nilainya adalah instans Uint16Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Uint32Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Uint8Array bawaan.

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

Mengembalikan true jika nilainya adalah instans Uint8ClampedArray bawaan.

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

Mengembalikan true jika nilainya adalah instans WeakMap bawaan.

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

Mengembalikan true jika nilainya adalah instans WeakSet bawaan.

util.types.isWeakSet(new WeakSet());  // Returns true
inspect(any, boolean, number | null, boolean)

Metode util.inspect() mengembalikan representasi string object yang dimaksudkan untuk penelusuran kesalahan. Output util.inspect dapat berubah kapan saja dan tidak boleh diandalkan secara terprogram. options tambahan dapat diteruskan yang mengubah hasilnya. util.inspect() akan menggunakan nama dan/atau Symbol.toStringTag properti konstruktor untuk membuat tag yang dapat diidentifikasi untuk nilai yang diperiksa.

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] {}'

Referensi melingkar menunjuk ke jangkarnya dengan menggunakan indeks referensi:

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] }
// }

Contoh berikut memeriksa semua properti objek util:

import util from 'node:util';

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

Contoh berikut menyoroti efek opsi compact:

import { inspect } 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(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(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.

Opsi showHidden memungkinkan entri WeakMap dan WeakSet diperiksa. Jika ada lebih banyak entri daripada maxArrayLength, tidak ada jaminan entri mana yang ditampilkan. Itu berarti mengambil entri WeakSet yang sama dua kali dapat mengakibatkan output yang berbeda. Selain itu, entri tanpa referensi yang kuat yang tersisa dapat menjadi sampah yang dikumpulkan kapan saja.

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 } }

Opsi sorted memastikan bahwa urutan penyisipan properti objek tidak memengaruhi hasil 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 }),
);

Opsi numericSeparator menambahkan garis bawah setiap tiga digit ke semua angka.

import { inspect } from 'node:util';

const thousand = 1000;
const million = 1000000;
const bigNumber = 123456789n;
const bigDecimal = 1234.12345;

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() adalah metode sinkron yang ditujukan untuk penelusuran kesalahan. Panjang output maksimumnya adalah sekitar 128 MiB. Input yang menghasilkan output yang lebih panjang akan dipotong.

promisify<TCustom>(CustomPromisify<TCustom>)

Mengambil fungsi mengikuti gaya panggilan balik kesalahan-pertama umum, yaitu mengambil panggilan balik (err, value) => ... sebagai argumen terakhir, dan mengembalikan versi yang mengembalikan janji.

import { promisify } from 'node:util';
import { stat } from 'node:fs';

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

Atau, secara setara menggunakan async function:

import { promisify } from 'node:util';
import { stat } from 'node:fs';

const promisifiedStat = promisify(stat);

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

callStat();

Jika ada properti yang original[util.promisify.custom] ada, promisify akan mengembalikan nilainya, lihat Fungsi kustom yang dipromisikan.

promisify() mengasumsikan bahwa original adalah fungsi yang mengambil panggilan balik sebagai argumen akhirnya dalam semua kasus. Jika original bukan fungsi, promisify() akan melemparkan kesalahan. Jika original adalah fungsi tetapi argumen terakhirnya bukan panggilan balik kesalahan-pertama, itu masih akan diteruskan panggilan balik kesalahan-pertama sebagai argumen terakhirnya.

Menggunakan promisify() pada metode kelas atau metode lain yang menggunakan this mungkin tidak berfungsi seperti yang diharapkan kecuali ditangani secara khusus:

import { promisify } from 'node:util';

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

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

const foo = new Foo();

const naiveBar = promisify(foo.bar);
// TypeError: Cannot read properties of undefined (reading 'a')
// 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'
aborted(AbortSignal, any)

Mendengarkan peristiwa batalkan pada signal yang disediakan dan mengembalikan janji yang diselesaikan saat signal dibatalkan. Jika resource disediakan, itu lemah mereferensikan objek terkait operasi, jadi jika resource adalah sampah yang dikumpulkan sebelum signal dibatalkan, maka janji yang dikembalikan akan tetap tertunda. Ini mencegah kebocoran memori dalam operasi jangka panjang atau tidak dapat dibatalkan.

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.
});
addParamToUrl(string, string, string)

Menambahkan parameter ke url yang diberikan

assign(any[])

Menyalin nilai semua properti yang dapat dijumlahkan dari satu atau beberapa objek sumber ke objek target, dan mengembalikan objek target.

autoAuthInEmbedUrl(string)

Memeriksa apakah url semat berisi autoAuth=true.

callbackify(() => Promise<void>)

Mengambil fungsi async (atau fungsi yang mengembalikan Promise) dan mengembalikan fungsi setelah gaya panggilan balik pertama kesalahan, yaitu mengambil panggilan balik (err, value) => ... sebagai argumen terakhir. Dalam panggilan balik, argumen pertama akan menjadi alasan penolakan (atau null jika Promise diselesaikan), dan argumen kedua akan menjadi nilai yang diselesaikan.

import { callbackify } from 'node:util';

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

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

Akan mencetak:

hello world

Panggilan balik dijalankan secara asinkron, dan akan memiliki jejak tumpukan terbatas. Jika panggilan balik dilemparkan, proses akan memancarkan peristiwa 'uncaughtException', dan jika tidak ditangani akan keluar.

Karena null memiliki arti khusus sebagai argumen pertama untuk panggilan balik, jika fungsi yang dibungkus menolak Promise dengan nilai falsy sebagai alasan, nilai dibungkus dalam Error dengan nilai asli yang disimpan dalam bidang bernama reason.

import util from 'node:util';

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 && Object.hasOwn(err, 'reason') && err.reason === null;  // true
});
callbackify<TResult>(() => Promise<TResult>)
callbackify<T1>((arg1: T1) => Promise<void>)
callbackify<T1, TResult>((arg1: T1) => Promise<TResult>)
callbackify<T1, T2>((arg1: T1, arg2: T2) => Promise<void>)
callbackify<T1, T2, TResult>((arg1: T1, arg2: T2) => Promise<TResult>)
callbackify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3) => Promise<void>)
callbackify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>)
callbackify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>)
callbackify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>)
callbackify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>)
callbackify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>)
callbackify<T1, T2, T3, T4, T5, T6>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>)
callbackify<T1, T2, T3, T4, T5, T6, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>)
convertProcessSignalToExitCode(Signals)

Metode ini util.convertProcessSignalToExitCode() mengonversi nama sinyal ke kode keluar POSIX yang sesuai. Mengikuti standar POSIX, kode keluar untuk proses yang dihentikan oleh sinyal dihitung sebagai 128 + signal number.

Jika signal bukan nama sinyal yang valid, maka kesalahan akan dilemparkan. Lihat signal(7) untuk daftar sinyal yang valid.

import { convertProcessSignalToExitCode } from 'node:util';

console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15)
console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)

Ini sangat berguna ketika bekerja dengan proses untuk menentukan kode keluar berdasarkan sinyal yang menghentikan proses.

createRandomString()

Menghasilkan string karakter 5 hingga 6 acak.

debuglog(string, (fn: DebugLoggerFunction) => void)

Metode util.debuglog() ini digunakan untuk membuat fungsi yang secara kondisional menulis pesan debug berdasarkan stderr keberadaan NODE_DEBUG variabel lingkungan. Jika nama section muncul dalam nilai variabel lingkungan tersebut, maka fungsi yang dikembalikan beroperasi mirip dengan console.error(). Jika tidak, maka fungsi yang dikembalikan adalah no-op.

import { debuglog } from 'node:util';
const log = debuglog('foo');

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

Jika program ini dijalankan dengan NODE_DEBUG=foo di lingkungan, maka program ini akan menghasilkan sesuatu seperti:

FOO 3245: hello from foo [123]

di mana 3245 adalah id proses. Jika tidak dijalankan dengan set variabel lingkungan tersebut, maka tidak akan mencetak apa pun.

section mendukung wildcard juga:

import { debuglog } from 'node:util';
const log = debuglog('foo-bar');

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

jika dijalankan dengan NODE_DEBUG=foo* di lingkungan, maka itu akan menghasilkan sesuatu seperti:

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

Beberapa nama yang dipisahkan section koma dapat ditentukan dalam NODE_DEBUG variabel lingkungan: NODE_DEBUG=fs,net,tls.

Argumen callback opsional dapat digunakan untuk mengganti fungsi pengelogan dengan fungsi berbeda yang tidak memiliki inisialisasi atau pembungkusan yang tidak perlu.

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

Metode util.deprecate() membungkus fn (yang mungkin merupakan fungsi atau kelas) sedemikian sehingga ditandai sebagai tidak digunakan lagi.

import { deprecate } from 'node:util';

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

Ketika dipanggil, util.deprecate() akan mengembalikan fungsi yang akan memancarkan DeprecationWarning menggunakan peristiwa 'warning'. Peringatan akan dipancarkan dan dicetak ke stderr pertama kali fungsi yang dikembalikan dipanggil. Setelah peringatan dipancarkan, fungsi yang dibungkus dipanggil tanpa memancarkan peringatan.

Jika code opsional yang sama disediakan dalam beberapa panggilan ke util.deprecate(), peringatan akan dipancarkan hanya sekali untuk codetersebut.

import { deprecate } from 'node:util';

const fn1 = deprecate(
  () => 'a value',
  'deprecation message',
  'DEP0001',
);
const fn2 = deprecate(
  () => 'a  different value',
  'other dep message',
  'DEP0001',
);
fn1(); // Emits a deprecation warning with code DEP0001
fn2(); // Does not emit a deprecation warning because it has the same code

Jika bendera baris perintah --no-deprecation atau --no-warnings digunakan, atau jika properti process.noDeprecation diatur ke true sebelumnya ke peringatan penghentian pertama, metode util.deprecate() tidak melakukan apa pun.

Jika bendera baris perintah --trace-deprecation atau --trace-warnings diatur, atau properti process.traceDeprecation diatur ke true, peringatan dan jejak tumpukan dicetak ke stderr pertama kali fungsi yang tidak digunakan lagi dipanggil.

Jika bendera baris perintah --throw-deprecation diatur, atau properti process.throwDeprecation diatur ke true, maka pengecualian akan dilemparkan ketika fungsi yang tidak digunakan lagi dipanggil.

Bendera baris perintah --throw-deprecation dan properti process.throwDeprecation lebih diutamakan daripada --trace-deprecation dan process.traceDeprecation.

diff(string | (readonly string[]), string | (readonly string[]))

util.diff() membandingkan dua nilai string atau array dan mengembalikan array entri perbedaan. Ini menggunakan algoritma Myers diff untuk menghitung perbedaan minimal, yang merupakan algoritma yang sama yang digunakan secara internal oleh pesan kesalahan pernyataan.

Jika nilainya sama, array kosong dikembalikan.

const { diff } = require('node:util');

// Comparing strings
const actualString = '12345678';
const expectedString = '12!!5!7!';
console.log(diff(actualString, expectedString));
// [
//   [0, '1'],
//   [0, '2'],
//   [1, '3'],
//   [1, '4'],
//   [-1, '!'],
//   [-1, '!'],
//   [0, '5'],
//   [1, '6'],
//   [-1, '!'],
//   [0, '7'],
//   [1, '8'],
//   [-1, '!'],
// ]
// Comparing arrays
const actualArray = ['1', '2', '3'];
const expectedArray = ['1', '3', '4'];
console.log(diff(actualArray, expectedArray));
// [
//   [0, '1'],
//   [1, '2'],
//   [0, '3'],
//   [-1, '4'],
// ]
// Equal values return empty array
console.log(diff('same', 'same'));
// []
find<T>((x: T) => boolean, T[])

Menemukan nilai pertama dalam array yang cocok dengan predikat yang ditentukan.

findIndex<T>((x: T) => boolean, T[])

Menemukan indeks nilai pertama dalam array yang cocok dengan predikat yang ditentukan.

format(any, any[])

Metode util.format() mengembalikan string yang diformat menggunakan argumen pertama sebagai string format printf-like yang dapat berisi penentu format nol atau lebih. Setiap penentu diganti dengan nilai yang dikonversi dari argumen yang sesuai. Penentu yang didukung adalah:

Jika penentu tidak memiliki argumen yang sesuai, itu tidak diganti:

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

Nilai yang bukan bagian dari string format diformat menggunakan util.inspect() jika jenisnya tidak string.

Jika ada lebih banyak argumen yang diteruskan ke metode util.format() daripada jumlah penentu, argumen tambahan digabungkan ke string yang dikembalikan, dipisahkan oleh spasi:

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

Jika argumen pertama tidak berisi penentu format yang valid, util.format() mengembalikan string yang merupakan penggabungan semua argumen yang dipisahkan oleh spasi:

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

Jika hanya satu argumen yang diteruskan ke util.format(), argumen dikembalikan apa adanya tanpa pemformatan apa pun:

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

util.format() adalah metode sinkron yang dimaksudkan sebagai alat penelusuran kesalahan. Beberapa nilai input dapat memiliki overhead performa signifikan yang dapat memblokir perulangan peristiwa. Gunakan fungsi ini dengan hati-hati dan jangan pernah berada di jalur kode panas.

formatWithOptions(InspectOptions, any, any[])

Fungsi ini identik dengan format , kecuali karena dibutuhkan argumen inspectOptions yang menentukan opsi yang diteruskan ke memeriksa.

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.
generateUUID()

Menghasilkan uuid 20 karakter.

getCallSites(number, GetCallSitesOptions)

Mengembalikan array objek situs panggilan yang berisi tumpukan fungsi pemanggil.

Tidak seperti mengakses , hasil yang error.stackdikembalikan dari API ini tidak mengganggu Error.prepareStackTrace.

import { getCallSites } from 'node:util';

function exampleFunction() {
  const callSites = 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.columnNumber}`);
  });
  // 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();

Dimungkinkan untuk membangun kembali lokasi asli dengan mengatur opsi sourceMap ke true. Jika peta sumber tidak tersedia, lokasi asli akan sama dengan lokasi saat ini. --enable-source-maps Ketika bendera diaktifkan, sourceMap akan benar secara default.

import { getCallSites } from 'node:util';

interface Foo {
  foo: string;
}

const callSites = 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
getCallSites(GetCallSitesOptions)
getRandomValue()

Mengembalikan angka acak

getSystemErrorMap()

Mengembalikan Peta semua kode kesalahan sistem yang tersedia dari API Node.js. Pemetaan antara kode kesalahan dan nama kesalahan bergantung pada platform. Lihat Common System Errors untuk nama kesalahan umum.

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

Mengembalikan pesan string untuk kode kesalahan numerik yang berasal dari API Node.js. Pemetaan antara kode kesalahan dan pesan string bergantung pada platform.

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

Mengembalikan nama string untuk kode kesalahan numerik yang berasal dari API Node.js. Pemetaan antara kode kesalahan dan nama kesalahan bergantung pada platform. Lihat Common System Errors untuk nama kesalahan umum.

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

Mengembalikan interval waktu antara dua tanggal dalam milidetik

inherits(unknown, unknown)

Penggunaan util.inherits() tidak disarankan. Gunakan class ES6 dan kata kunci extends untuk mendapatkan dukungan pewarisan tingkat bahasa. Perhatikan juga bahwa kedua gaya tersebut yang tidak kompatibel secara semantik.

Mewarisi metode prototipe dari satu konstruktor ke dalam yang lain. Prototipe constructor akan diatur ke objek baru yang dibuat dari superConstructor.

Ini terutama menambahkan beberapa validasi input di atas Object.setPrototypeOf(constructor.prototype, superConstructor.prototype). Sebagai kenyamanan tambahan, superConstructor dapat diakses melalui properti constructor.super_.

const util = require('node:util');
const EventEmitter = require('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!"

Contoh ES6 menggunakan class dan 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');
inspect(any, InspectOptions)
isArray(unknown)

Alias untuk Array.isArray().

Mengembalikan true jika object yang diberikan adalah Array. Jika tidak, kembalikan false.

import util from 'node:util';

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

Memeriksa apakah jenis semat adalah untuk membuat

isDeepStrictEqual(unknown, unknown, IsDeepStrictEqualOptions)

Mengembalikan true jika ada kesetaraan ketat yang mendalam antara val1 dan val2. Jika tidak, kembalikan false.

Lihat assert.deepStrictEqual() untuk informasi selengkapnya tentang kesetaraan ketat yang mendalam.

isRDLEmbed(string)

Memeriksa apakah url semat adalah untuk laporan RDL.

isSavedInternal(HttpPostMessage, string, Window)

Memeriksa apakah laporan disimpan.

parseArgs<T>(T)

Menyediakan API tingkat yang lebih tinggi untuk penguraian argumen baris perintah daripada berinteraksi dengan process.argv secara langsung. Mengambil spesifikasi untuk argumen yang diharapkan dan mengembalikan objek terstruktur dengan opsi dan posisi yang diurai.

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' } []
parseEnv(string)

Stabilitas: 1.1 - Pengembangan aktif Mengingat contoh file .env:

import { parseEnv } from 'node:util';

parseEnv('HELLO=world\nHELLO=oh my\n');
// Returns: { HELLO: 'oh my' }
promisify<TResult>((callback: (err: any, result: TResult) => void) => void)
promisify((callback: (err?: any) => void) => void)
promisify<T1, TResult>((arg1: T1, callback: (err: any, result: TResult) => void) => void)
promisify<T1>((arg1: T1, callback: (err?: any) => void) => void)
promisify<T1, T2, TResult>((arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void)
promisify<T1, T2>((arg1: T1, arg2: T2, callback: (err?: any) => void) => void)
promisify<T1, T2, T3, TResult>((arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void)
promisify<T1, T2, T3>((arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void)
promisify<T1, T2, T3, T4, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void)
promisify<T1, T2, T3, T4>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void)
promisify<T1, T2, T3, T4, T5, TResult>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void)
promisify<T1, T2, T3, T4, T5>((arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void)
promisify(Function)
raiseCustomEvent(HTMLElement, string, any)

Menaikkan peristiwa kustom dengan data peristiwa pada elemen HTML yang ditentukan.

remove<T>((x: T) => boolean, T[])
setTraceSigInt(boolean)

Aktifkan atau nonaktifkan pencetakan jejak tumpukan pada SIGINT. API hanya tersedia di utas utama.

stripVTControlCharacters(string)

Mengembalikan str dengan kode escape ANSI yang dihapus.

console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
// Prints "value"
styleText(InspectColor | (readonly InspectColor[]) | Object, string, StyleTextOptions)

Fungsi ini mengembalikan teks yang diformat mengingat yang format diteruskan untuk pencetakan di terminal. Ini mengetahui kemampuan dan tindakan terminal sesuai dengan konfigurasi yang ditetapkan melalui NO_COLORvariabel lingkungan , NODE_DISABLE_COLORS dan FORCE_COLOR .

import { styleText } from 'node:util';
import { stderr } from 'node:process';

const successMessage = styleText('green', 'Success!');
console.log(successMessage);

const errorMessage = styleText(
  'red',
  'Error! Error!',
  // Validate if process.stderr has TTY
  { stream: stderr },
);
console.error(errorMessage);

util.inspect.colors juga menyediakan format teks seperti italic, dan underline dan Anda dapat menggabungkan keduanya:

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

Saat meneruskan array format, urutan format yang diterapkan dibiarkan ke kanan sehingga gaya berikut mungkin menimpa yang sebelumnya.

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

Nilai none format khusus tidak menerapkan gaya tambahan ke teks.

Selain nama warna yang telah ditentukan sebelumnya, util.styleText() mendukung string warna heksa menggunakan urutan escape ANSI TrueColor (24-bit). Warna heks dapat ditentukan dalam format 3 digit (#RGB) atau 6 digit (#RRGGBB):

import { styleText } from 'node:util';

// 6-digit hex color
console.log(styleText('#ff5733', 'Orange text'));

// 3-digit hex color (shorthand)
console.log(styleText('#f00', 'Red text'));

Daftar lengkap format dapat ditemukan di pengubah .

toUSVString(string)

Mengembalikan string setelah mengganti titik kode pengganti apa pun (atau setara, unit kode pengganti yang tidak berpasangan) dengan U+FFFD "karakter pengganti" Unicode.

transferableAbortController()

Membuat dan mengembalikan instans AbortController yang AbortSignal nya ditandai sebagai dapat ditransfer dan dapat digunakan dengan structuredClone() atau postMessage().

transferableAbortSignal(AbortSignal)

Menandai AbortSignal yang diberikan sebagai dapat ditransfer sehingga dapat digunakan denganstructuredClone() dan postMessage().

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

Detail Fungsi

isAnyArrayBuffer(unknown)

Mengembalikan true jika nilainya adalah instans ArrayBuffer atau SharedArrayBuffer bawaan.

Lihat juga util.types.isArrayBuffer() dan util.types.isSharedArrayBuffer().

util.types.isAnyArrayBuffer(new ArrayBuffer());  // Returns true
util.types.isAnyArrayBuffer(new SharedArrayBuffer());  // Returns true
function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike

Parameter

object

unknown

Mengembalikan

object is ArrayBufferLike

isArgumentsObject(unknown)

Mengembalikan true jika nilainya adalah objek arguments.

function foo() {
  util.types.isArgumentsObject(arguments);  // Returns true
}
function isArgumentsObject(object: unknown): object is IArguments

Parameter

object

unknown

Mengembalikan

object is IArguments

isArrayBuffer(unknown)

Mengembalikan true jika nilainya adalah instans ArrayBuffer bawaan. Ini tidak tidak menyertakan instans SharedArrayBuffer. Biasanya, diinginkan untuk menguji keduanya; Lihat util.types.isAnyArrayBuffer() untuk itu.

util.types.isArrayBuffer(new ArrayBuffer());  // Returns true
util.types.isArrayBuffer(new SharedArrayBuffer());  // Returns false
function isArrayBuffer(object: unknown): object is ArrayBuffer

Parameter

object

unknown

Mengembalikan

object is ArrayBuffer

isArrayBufferView(unknown)

Mengembalikan true jika nilai adalah instans dari salah satu tampilan ArrayBuffer, seperti objek array yang ditik atau DataView. Setara dengan 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
function isArrayBufferView(object: unknown): object is ArrayBufferView

Parameter

object

unknown

Mengembalikan

object is ArrayBufferView

isAsyncFunction(unknown)

Mengembalikan true jika nilainya adalah fungsi asinkron . Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

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

Parameter

object

unknown

Mengembalikan

boolean

isBigInt64Array(unknown)

Mengembalikan true jika nilainya adalah instans BigInt64Array.

util.types.isBigInt64Array(new BigInt64Array());   // Returns true
util.types.isBigInt64Array(new BigUint64Array());  // Returns false
function isBigInt64Array(value: unknown): value is BigInt64Array

Parameter

value

unknown

Mengembalikan

value is BigInt64Array

isBigIntObject(unknown)

Mengembalikan true jika nilainya adalah objek BigInt, misalnya dibuat oleh Object(BigInt(123)).

util.types.isBigIntObject(Object(BigInt(123)));   // Returns true
util.types.isBigIntObject(BigInt(123));   // Returns false
util.types.isBigIntObject(123);  // Returns false
function isBigIntObject(object: unknown): object is BigInt

Parameter

object

unknown

Mengembalikan

object is BigInt

isBigUint64Array(unknown)

Mengembalikan true jika nilainya adalah instans BigUint64Array.

util.types.isBigUint64Array(new BigInt64Array());   // Returns false
util.types.isBigUint64Array(new BigUint64Array());  // Returns true
function isBigUint64Array(value: unknown): value is BigUint64Array

Parameter

value

unknown

Mengembalikan

value is BigUint64Array

isBooleanObject(unknown)

Mengembalikan true jika nilainya adalah objek boolean, misalnya dibuat oleh 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
function isBooleanObject(object: unknown): object is Boolean

Parameter

object

unknown

Mengembalikan

object is Boolean

isBoxedPrimitive(unknown)

Mengembalikan true jika nilainya adalah objek primitif dalam kotak, misalnya dibuat oleh new Boolean(), new String() atau Object(Symbol()).

Contohnya:

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
function isBoxedPrimitive(object: unknown): object is String | Number | Boolean | Symbol | BigInt

Parameter

object

unknown

Mengembalikan

object is String | Number | Boolean | Symbol | BigInt

isCryptoKey(unknown)

Mengembalikan true jika value adalah CryptoKey, false sebaliknya.

function isCryptoKey(object: unknown): object is CryptoKey

Parameter

object

unknown

Mengembalikan

object is CryptoKey

isDataView(unknown)

Mengembalikan true jika nilainya adalah instans DataView bawaan.

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

Lihat juga ArrayBuffer.isView().

function isDataView(object: unknown): object is DataView

Parameter

object

unknown

Mengembalikan

object is DataView

isDate(unknown)

Mengembalikan true jika nilainya adalah instans Date bawaan.

util.types.isDate(new Date());  // Returns true
function isDate(object: unknown): object is Date

Parameter

object

unknown

Mengembalikan

object is Date

isExternal(unknown)

Mengembalikan true jika nilainya adalah nilai External asli.

Nilai External asli adalah jenis objek khusus yang berisi pointer C++ mentah (void*) untuk akses dari kode asli, dan tidak memiliki properti lain. Objek tersebut dibuat baik oleh Node.js internal atau addon asli. Di JavaScript, objek tersebut adalah objek beku dengan null prototipe.

#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, &result);
  if (status != napi_ok) {
    napi_throw_error(env, NULL, "napi_create_external failed");
    return NULL;
  }
  return result;
}
...
DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
...
import native from 'napi_addon.node';
import { types } from 'node:util';

const data = native.myNapi();
types.isExternal(data); // returns true
types.isExternal(0); // returns false
types.isExternal(new String('foo')); // returns false

Untuk informasi lebih lanjut tentang napi_create_external, lihat napi_create_external().

function isExternal(object: unknown): boolean

Parameter

object

unknown

Mengembalikan

boolean

isFloat16Array(unknown)

Mengembalikan true jika nilainya adalah instans Float16Array bawaan.

util.types.isFloat16Array(new ArrayBuffer());  // Returns false
util.types.isFloat16Array(new Float16Array());  // Returns true
util.types.isFloat16Array(new Float32Array());  // Returns false
function isFloat16Array(object: unknown): object is Float16Array

Parameter

object

unknown

Mengembalikan

object is Float16Array

isFloat32Array(unknown)

Mengembalikan true jika nilainya adalah instans Float32Array bawaan.

util.types.isFloat32Array(new ArrayBuffer());  // Returns false
util.types.isFloat32Array(new Float32Array());  // Returns true
util.types.isFloat32Array(new Float64Array());  // Returns false
function isFloat32Array(object: unknown): object is Float32Array

Parameter

object

unknown

Mengembalikan

object is Float32Array

isFloat64Array(unknown)

Mengembalikan true jika nilainya adalah instans Float64Array bawaan.

util.types.isFloat64Array(new ArrayBuffer());  // Returns false
util.types.isFloat64Array(new Uint8Array());  // Returns false
util.types.isFloat64Array(new Float64Array());  // Returns true
function isFloat64Array(object: unknown): object is Float64Array

Parameter

object

unknown

Mengembalikan

object is Float64Array

isGeneratorFunction(unknown)

Mengembalikan true jika nilainya adalah fungsi generator. Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

util.types.isGeneratorFunction(function foo() {});  // Returns false
util.types.isGeneratorFunction(function* foo() {});  // Returns true
function isGeneratorFunction(object: unknown): object is GeneratorFunction

Parameter

object

unknown

Mengembalikan

object is GeneratorFunction

isGeneratorObject(unknown)

Mengembalikan true jika nilainya adalah objek generator seperti yang dikembalikan dari fungsi generator bawaan. Ini hanya melaporkan kembali apa yang dilihat mesin JavaScript; secara khusus, nilai pengembalian mungkin tidak cocok dengan kode sumber asli jika alat transpilasi digunakan.

function* foo() {}
const generator = foo();
util.types.isGeneratorObject(generator);  // Returns true
function isGeneratorObject(object: unknown): object is Generator

Parameter

object

unknown

Mengembalikan

object is Generator

isInt16Array(unknown)

Mengembalikan true jika nilainya adalah instans Int16Array bawaan.

util.types.isInt16Array(new ArrayBuffer());  // Returns false
util.types.isInt16Array(new Int16Array());  // Returns true
util.types.isInt16Array(new Float64Array());  // Returns false
function isInt16Array(object: unknown): object is Int16Array

Parameter

object

unknown

Mengembalikan

object is Int16Array

isInt32Array(unknown)

Mengembalikan true jika nilainya adalah instans Int32Array bawaan.

util.types.isInt32Array(new ArrayBuffer());  // Returns false
util.types.isInt32Array(new Int32Array());  // Returns true
util.types.isInt32Array(new Float64Array());  // Returns false
function isInt32Array(object: unknown): object is Int32Array

Parameter

object

unknown

Mengembalikan

object is Int32Array

isInt8Array(unknown)

Mengembalikan true jika nilainya adalah instans Int8Array bawaan.

util.types.isInt8Array(new ArrayBuffer());  // Returns false
util.types.isInt8Array(new Int8Array());  // Returns true
util.types.isInt8Array(new Float64Array());  // Returns false
function isInt8Array(object: unknown): object is Int8Array

Parameter

object

unknown

Mengembalikan

object is Int8Array

isKeyObject(unknown)

Mengembalikan true jika value adalah KeyObject, false sebaliknya.

function isKeyObject(object: unknown): object is KeyObject

Parameter

object

unknown

Mengembalikan

object is KeyObject

isMap<T>({} | T)

Mengembalikan true jika nilainya adalah instans Map bawaan.

util.types.isMap(new Map());  // Returns true
function isMap<T>(object: {} | T): object is (T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>)

Parameter

object

{} | T

Mengembalikan

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

isMapIterator(unknown)

Mengembalikan true jika nilainya adalah iterator yang dikembalikan untuk instans Map bawaan.

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
function isMapIterator(object: unknown): boolean

Parameter

object

unknown

Mengembalikan

boolean

isModuleNamespaceObject(unknown)

Mengembalikan true jika nilainya adalah instans Objek Namespace Modul.

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

util.types.isModuleNamespaceObject(ns);  // Returns true
function isModuleNamespaceObject(value: unknown): boolean

Parameter

value

unknown

Mengembalikan

boolean

isNativeError(unknown)

Peringatan

API ini sudah tidak digunakan lagi.

The util.types.isNativeError API is deprecated. Please use Error.isError instead.

Mengembalikan true jika nilai dikembalikan oleh konstruktor jenis Error bawaan .

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

Subkelas jenis kesalahan asli juga merupakan kesalahan asli:

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

Nilai yang instanceof kelas kesalahan asli tidak setara dengan isNativeError() mengembalikan true untuk nilai tersebut. mengembalikan untuk kesalahan yang berasal dari realm yang berbeda sementara mengembalikan untuk kesalahan ini:

import { createContext, runInContext } from 'node:vm';
import { types } from 'node:util';

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

Sebaliknya, isNativeError() mengembalikan false untuk semua objek yang tidak dikembalikan oleh konstruktor kesalahan asli. Itu termasuk nilai yang instanceof kesalahan asli:

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

Parameter

object

unknown

Mengembalikan

object is Error

isNumberObject(unknown)

Mengembalikan true jika nilainya adalah objek angka, misalnya dibuat oleh new Number().

util.types.isNumberObject(0);  // Returns false
util.types.isNumberObject(new Number(0));   // Returns true
function isNumberObject(object: unknown): object is Number

Parameter

object

unknown

Mengembalikan

object is Number

isPromise(unknown)

Mengembalikan true jika nilainya adalah Promisebawaan .

util.types.isPromise(Promise.resolve(42));  // Returns true
function isPromise(object: unknown): object is Promise<unknown>

Parameter

object

unknown

Mengembalikan

object is Promise<unknown>

isProxy(unknown)

Mengembalikan true jika nilainya adalah instans Proxy.

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

Parameter

object

unknown

Mengembalikan

boolean

isRegExp(unknown)

Mengembalikan true jika nilainya adalah objek ekspresi reguler.

util.types.isRegExp(/abc/);  // Returns true
util.types.isRegExp(new RegExp('abc'));  // Returns true
function isRegExp(object: unknown): object is RegExp

Parameter

object

unknown

Mengembalikan

object is RegExp

isSet<T>({} | T)

Mengembalikan true jika nilainya adalah instans Set bawaan.

util.types.isSet(new Set());  // Returns true
function isSet<T>(object: {} | T): object is (T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>)

Parameter

object

{} | T

Mengembalikan

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

isSetIterator(unknown)

Mengembalikan true jika nilainya adalah iterator yang dikembalikan untuk instans Set bawaan.

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
function isSetIterator(object: unknown): boolean

Parameter

object

unknown

Mengembalikan

boolean

isSharedArrayBuffer(unknown)

Mengembalikan true jika nilainya adalah instans SharedArrayBuffer bawaan. Ini tidak tidak menyertakan instans ArrayBuffer. Biasanya, diinginkan untuk menguji keduanya; Lihat util.types.isAnyArrayBuffer() untuk itu.

util.types.isSharedArrayBuffer(new ArrayBuffer());  // Returns false
util.types.isSharedArrayBuffer(new SharedArrayBuffer());  // Returns true
function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer

Parameter

object

unknown

Mengembalikan

object is SharedArrayBuffer

isStringObject(unknown)

Mengembalikan true jika nilainya adalah objek string, misalnya dibuat oleh new String().

util.types.isStringObject('foo');  // Returns false
util.types.isStringObject(new String('foo'));   // Returns true
function isStringObject(object: unknown): object is String

Parameter

object

unknown

Mengembalikan

object is String

isSymbolObject(unknown)

Mengembalikan true jika nilainya adalah objek simbol, yang dibuat dengan memanggil Object() pada Symbol primitif.

const symbol = Symbol('foo');
util.types.isSymbolObject(symbol);  // Returns false
util.types.isSymbolObject(Object(symbol));   // Returns true
function isSymbolObject(object: unknown): object is Symbol

Parameter

object

unknown

Mengembalikan

object is Symbol

isTypedArray(unknown)

Mengembalikan true jika nilainya adalah instans TypedArray bawaan.

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

Lihat juga ArrayBuffer.isView().

function isTypedArray(object: unknown): object is TypedArray

Parameter

object

unknown

Mengembalikan

object is TypedArray

isUint16Array(unknown)

Mengembalikan true jika nilainya adalah instans Uint16Array bawaan.

util.types.isUint16Array(new ArrayBuffer());  // Returns false
util.types.isUint16Array(new Uint16Array());  // Returns true
util.types.isUint16Array(new Float64Array());  // Returns false
function isUint16Array(object: unknown): object is Uint16Array

Parameter

object

unknown

Mengembalikan

object is Uint16Array

isUint32Array(unknown)

Mengembalikan true jika nilainya adalah instans Uint32Array bawaan.

util.types.isUint32Array(new ArrayBuffer());  // Returns false
util.types.isUint32Array(new Uint32Array());  // Returns true
util.types.isUint32Array(new Float64Array());  // Returns false
function isUint32Array(object: unknown): object is Uint32Array

Parameter

object

unknown

Mengembalikan

object is Uint32Array

isUint8Array(unknown)

Mengembalikan true jika nilainya adalah instans Uint8Array bawaan.

util.types.isUint8Array(new ArrayBuffer());  // Returns false
util.types.isUint8Array(new Uint8Array());  // Returns true
util.types.isUint8Array(new Float64Array());  // Returns false
function isUint8Array(object: unknown): object is Uint8Array

Parameter

object

unknown

Mengembalikan

object is Uint8Array

isUint8ClampedArray(unknown)

Mengembalikan true jika nilainya adalah instans Uint8ClampedArray bawaan.

util.types.isUint8ClampedArray(new ArrayBuffer());  // Returns false
util.types.isUint8ClampedArray(new Uint8ClampedArray());  // Returns true
util.types.isUint8ClampedArray(new Float64Array());  // Returns false
function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray

Parameter

object

unknown

Mengembalikan

object is Uint8ClampedArray

isWeakMap(unknown)

Mengembalikan true jika nilainya adalah instans WeakMap bawaan.

util.types.isWeakMap(new WeakMap());  // Returns true
function isWeakMap(object: unknown): object is WeakMap<object, unknown>

Parameter

object

unknown

Mengembalikan

object is WeakMap<object, unknown>

isWeakSet(unknown)

Mengembalikan true jika nilainya adalah instans WeakSet bawaan.

util.types.isWeakSet(new WeakSet());  // Returns true
function isWeakSet(object: unknown): object is WeakSet<object>

Parameter

object

unknown

Mengembalikan

object is WeakSet<object>

inspect(any, boolean, number | null, boolean)

Metode util.inspect() mengembalikan representasi string object yang dimaksudkan untuk penelusuran kesalahan. Output util.inspect dapat berubah kapan saja dan tidak boleh diandalkan secara terprogram. options tambahan dapat diteruskan yang mengubah hasilnya. util.inspect() akan menggunakan nama dan/atau Symbol.toStringTag properti konstruktor untuk membuat tag yang dapat diidentifikasi untuk nilai yang diperiksa.

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] {}'

Referensi melingkar menunjuk ke jangkarnya dengan menggunakan indeks referensi:

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] }
// }

Contoh berikut memeriksa semua properti objek util:

import util from 'node:util';

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

Contoh berikut menyoroti efek opsi compact:

import { inspect } 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(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(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.

Opsi showHidden memungkinkan entri WeakMap dan WeakSet diperiksa. Jika ada lebih banyak entri daripada maxArrayLength, tidak ada jaminan entri mana yang ditampilkan. Itu berarti mengambil entri WeakSet yang sama dua kali dapat mengakibatkan output yang berbeda. Selain itu, entri tanpa referensi yang kuat yang tersisa dapat menjadi sampah yang dikumpulkan kapan saja.

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 } }

Opsi sorted memastikan bahwa urutan penyisipan properti objek tidak memengaruhi hasil 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 }),
);

Opsi numericSeparator menambahkan garis bawah setiap tiga digit ke semua angka.

import { inspect } from 'node:util';

const thousand = 1000;
const million = 1000000;
const bigNumber = 123456789n;
const bigDecimal = 1234.12345;

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() adalah metode sinkron yang ditujukan untuk penelusuran kesalahan. Panjang output maksimumnya adalah sekitar 128 MiB. Input yang menghasilkan output yang lebih panjang akan dipotong.

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

Parameter

object

any

Setiap JavaScript primitif atau Object.

showHidden

boolean

depth

number | null

color

boolean

Mengembalikan

string

Representasi object.

promisify<TCustom>(CustomPromisify<TCustom>)

Mengambil fungsi mengikuti gaya panggilan balik kesalahan-pertama umum, yaitu mengambil panggilan balik (err, value) => ... sebagai argumen terakhir, dan mengembalikan versi yang mengembalikan janji.

import { promisify } from 'node:util';
import { stat } from 'node:fs';

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

Atau, secara setara menggunakan async function:

import { promisify } from 'node:util';
import { stat } from 'node:fs';

const promisifiedStat = promisify(stat);

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

callStat();

Jika ada properti yang original[util.promisify.custom] ada, promisify akan mengembalikan nilainya, lihat Fungsi kustom yang dipromisikan.

promisify() mengasumsikan bahwa original adalah fungsi yang mengambil panggilan balik sebagai argumen akhirnya dalam semua kasus. Jika original bukan fungsi, promisify() akan melemparkan kesalahan. Jika original adalah fungsi tetapi argumen terakhirnya bukan panggilan balik kesalahan-pertama, itu masih akan diteruskan panggilan balik kesalahan-pertama sebagai argumen terakhirnya.

Menggunakan promisify() pada metode kelas atau metode lain yang menggunakan this mungkin tidak berfungsi seperti yang diharapkan kecuali ditangani secara khusus:

import { promisify } from 'node:util';

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

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

const foo = new Foo();

const naiveBar = promisify(foo.bar);
// TypeError: Cannot read properties of undefined (reading 'a')
// 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'
function promisify<TCustom>(fn: CustomPromisify<TCustom>): TCustom

Parameter

fn

CustomPromisify<TCustom>

Mengembalikan

TCustom

aborted(AbortSignal, any)

Mendengarkan peristiwa batalkan pada signal yang disediakan dan mengembalikan janji yang diselesaikan saat signal dibatalkan. Jika resource disediakan, itu lemah mereferensikan objek terkait operasi, jadi jika resource adalah sampah yang dikumpulkan sebelum signal dibatalkan, maka janji yang dikembalikan akan tetap tertunda. Ini mencegah kebocoran memori dalam operasi jangka panjang atau tidak dapat dibatalkan.

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.
});
function aborted(signal: AbortSignal, resource: any): Promise<void>

Parameter

signal

AbortSignal

resource

any

Objek non-null apa pun yang terkait dengan operasi yang dapat dibatalkan dan dipegang dengan lemah. Jika resource sampah dikumpulkan sebelum signal dibatalkan, janji tetap tertunda, memungkinkan Node.js berhenti melacaknya. Ini membantu mencegah kebocoran memori dalam operasi yang berjalan lama atau tidak dapat dibatalkan.

Mengembalikan

Promise<void>

addParamToUrl(string, string, string)

Menambahkan parameter ke url yang diberikan

function addParamToUrl(url: string, paramName: string, value: string): string

Parameter

url

string

paramName

string

value

string

Mengembalikan

string

assign(any[])

Menyalin nilai semua properti yang dapat dijumlahkan dari satu atau beberapa objek sumber ke objek target, dan mengembalikan objek target.

function assign(args: any[]): any

Parameter

args

any[]

Mengembalikan

any

autoAuthInEmbedUrl(string)

Memeriksa apakah url semat berisi autoAuth=true.

function autoAuthInEmbedUrl(embedUrl: string): boolean

Parameter

embedUrl

string

Mengembalikan

boolean

callbackify(() => Promise<void>)

Mengambil fungsi async (atau fungsi yang mengembalikan Promise) dan mengembalikan fungsi setelah gaya panggilan balik pertama kesalahan, yaitu mengambil panggilan balik (err, value) => ... sebagai argumen terakhir. Dalam panggilan balik, argumen pertama akan menjadi alasan penolakan (atau null jika Promise diselesaikan), dan argumen kedua akan menjadi nilai yang diselesaikan.

import { callbackify } from 'node:util';

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

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

Akan mencetak:

hello world

Panggilan balik dijalankan secara asinkron, dan akan memiliki jejak tumpukan terbatas. Jika panggilan balik dilemparkan, proses akan memancarkan peristiwa 'uncaughtException', dan jika tidak ditangani akan keluar.

Karena null memiliki arti khusus sebagai argumen pertama untuk panggilan balik, jika fungsi yang dibungkus menolak Promise dengan nilai falsy sebagai alasan, nilai dibungkus dalam Error dengan nilai asli yang disimpan dalam bidang bernama reason.

import util from 'node:util';

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 && Object.hasOwn(err, 'reason') && err.reason === null;  // true
});
function callbackify(fn: () => Promise<void>): (callback: (err: ErrnoException) => void) => void

Parameter

fn

() => Promise<void>

Fungsi async

Mengembalikan

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

fungsi gaya panggilan balik

callbackify<TResult>(() => Promise<TResult>)

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

Parameter

fn

() => Promise<TResult>

Mengembalikan

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

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

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

Parameter

fn

(arg1: T1) => Promise<void>

Mengembalikan

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

callbackify<T1, TResult>((arg1: T1) => Promise<TResult>)

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

Parameter

fn

(arg1: T1) => Promise<TResult>

Mengembalikan

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

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

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

Parameter

fn

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

Mengembalikan

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

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

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

Parameter

fn

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

Mengembalikan

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

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

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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

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

function 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

Parameter

fn

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

Mengembalikan

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

convertProcessSignalToExitCode(Signals)

Metode ini util.convertProcessSignalToExitCode() mengonversi nama sinyal ke kode keluar POSIX yang sesuai. Mengikuti standar POSIX, kode keluar untuk proses yang dihentikan oleh sinyal dihitung sebagai 128 + signal number.

Jika signal bukan nama sinyal yang valid, maka kesalahan akan dilemparkan. Lihat signal(7) untuk daftar sinyal yang valid.

import { convertProcessSignalToExitCode } from 'node:util';

console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15)
console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)

Ini sangat berguna ketika bekerja dengan proses untuk menentukan kode keluar berdasarkan sinyal yang menghentikan proses.

function convertProcessSignalToExitCode(signal: Signals): number

Parameter

signal

Signals

Nama sinyal (misalnya 'SIGTERM')

Mengembalikan

number

Kode keluar yang sesuai dengan signal

createRandomString()

Menghasilkan string karakter 5 hingga 6 acak.

function createRandomString(): string

Mengembalikan

string

debuglog(string, (fn: DebugLoggerFunction) => void)

Metode util.debuglog() ini digunakan untuk membuat fungsi yang secara kondisional menulis pesan debug berdasarkan stderr keberadaan NODE_DEBUG variabel lingkungan. Jika nama section muncul dalam nilai variabel lingkungan tersebut, maka fungsi yang dikembalikan beroperasi mirip dengan console.error(). Jika tidak, maka fungsi yang dikembalikan adalah no-op.

import { debuglog } from 'node:util';
const log = debuglog('foo');

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

Jika program ini dijalankan dengan NODE_DEBUG=foo di lingkungan, maka program ini akan menghasilkan sesuatu seperti:

FOO 3245: hello from foo [123]

di mana 3245 adalah id proses. Jika tidak dijalankan dengan set variabel lingkungan tersebut, maka tidak akan mencetak apa pun.

section mendukung wildcard juga:

import { debuglog } from 'node:util';
const log = debuglog('foo-bar');

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

jika dijalankan dengan NODE_DEBUG=foo* di lingkungan, maka itu akan menghasilkan sesuatu seperti:

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

Beberapa nama yang dipisahkan section koma dapat ditentukan dalam NODE_DEBUG variabel lingkungan: NODE_DEBUG=fs,net,tls.

Argumen callback opsional dapat digunakan untuk mengganti fungsi pengelogan dengan fungsi berbeda yang tidak memiliki inisialisasi atau pembungkusan yang tidak perlu.

import { debuglog } from 'node:util';
let log = debuglog('internals', (debug) => {
  // Replace with a logging function that optimizes out
  // testing if the section is enabled
  log = debug;
});
function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger

Parameter

section

string

String yang mengidentifikasi bagian aplikasi tempat fungsi debuglog sedang dibuat.

callback

(fn: DebugLoggerFunction) => void

Panggilan balik yang dipanggil saat pertama kali fungsi pengelogan dipanggil dengan argumen fungsi yang merupakan fungsi pengelogan yang lebih dioptimalkan.

Mengembalikan

Fungsi pengelogan

deprecate<T>(T, string, string, DeprecateOptions)

Metode util.deprecate() membungkus fn (yang mungkin merupakan fungsi atau kelas) sedemikian sehingga ditandai sebagai tidak digunakan lagi.

import { deprecate } from 'node:util';

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

Ketika dipanggil, util.deprecate() akan mengembalikan fungsi yang akan memancarkan DeprecationWarning menggunakan peristiwa 'warning'. Peringatan akan dipancarkan dan dicetak ke stderr pertama kali fungsi yang dikembalikan dipanggil. Setelah peringatan dipancarkan, fungsi yang dibungkus dipanggil tanpa memancarkan peringatan.

Jika code opsional yang sama disediakan dalam beberapa panggilan ke util.deprecate(), peringatan akan dipancarkan hanya sekali untuk codetersebut.

import { deprecate } from 'node:util';

const fn1 = deprecate(
  () => 'a value',
  'deprecation message',
  'DEP0001',
);
const fn2 = deprecate(
  () => 'a  different value',
  'other dep message',
  'DEP0001',
);
fn1(); // Emits a deprecation warning with code DEP0001
fn2(); // Does not emit a deprecation warning because it has the same code

Jika bendera baris perintah --no-deprecation atau --no-warnings digunakan, atau jika properti process.noDeprecation diatur ke true sebelumnya ke peringatan penghentian pertama, metode util.deprecate() tidak melakukan apa pun.

Jika bendera baris perintah --trace-deprecation atau --trace-warnings diatur, atau properti process.traceDeprecation diatur ke true, peringatan dan jejak tumpukan dicetak ke stderr pertama kali fungsi yang tidak digunakan lagi dipanggil.

Jika bendera baris perintah --throw-deprecation diatur, atau properti process.throwDeprecation diatur ke true, maka pengecualian akan dilemparkan ketika fungsi yang tidak digunakan lagi dipanggil.

Bendera baris perintah --throw-deprecation dan properti process.throwDeprecation lebih diutamakan daripada --trace-deprecation dan process.traceDeprecation.

function deprecate<T>(fn: T, msg: string, code?: string, options?: DeprecateOptions): T

Parameter

fn

T

Fungsi yang tidak digunakan lagi.

msg

string

Pesan peringatan untuk ditampilkan ketika fungsi yang tidak digunakan lagi dipanggil.

code

string

Kode penghentian. Lihat list of deprecated APIs untuk daftar kode.

Mengembalikan

T

Fungsi yang tidak digunakan lagi dibungkus untuk memancarkan peringatan.

diff(string | (readonly string[]), string | (readonly string[]))

util.diff() membandingkan dua nilai string atau array dan mengembalikan array entri perbedaan. Ini menggunakan algoritma Myers diff untuk menghitung perbedaan minimal, yang merupakan algoritma yang sama yang digunakan secara internal oleh pesan kesalahan pernyataan.

Jika nilainya sama, array kosong dikembalikan.

const { diff } = require('node:util');

// Comparing strings
const actualString = '12345678';
const expectedString = '12!!5!7!';
console.log(diff(actualString, expectedString));
// [
//   [0, '1'],
//   [0, '2'],
//   [1, '3'],
//   [1, '4'],
//   [-1, '!'],
//   [-1, '!'],
//   [0, '5'],
//   [1, '6'],
//   [-1, '!'],
//   [0, '7'],
//   [1, '8'],
//   [-1, '!'],
// ]
// Comparing arrays
const actualArray = ['1', '2', '3'];
const expectedArray = ['1', '3', '4'];
console.log(diff(actualArray, expectedArray));
// [
//   [0, '1'],
//   [1, '2'],
//   [0, '3'],
//   [-1, '4'],
// ]
// Equal values return empty array
console.log(diff('same', 'same'));
// []
function diff(actual: string | (readonly string[]), expected: string | (readonly string[])): DiffEntry[]

Parameter

actual

string | (readonly string[])

Nilai pertama yang akan dibandingkan

expected

string | (readonly string[])

Nilai kedua yang akan dibandingkan

Mengembalikan

Array entri perbedaan. Setiap entri adalah array dengan dua elemen:

  • Indeks 0: number Kode operasi: -1 untuk penghapusan, 0 untuk no-op/tidak berubah, 1 untuk penyisipan
  • Indeks 1: string Nilai yang terkait dengan operasi

find<T>((x: T) => boolean, T[])

Menemukan nilai pertama dalam array yang cocok dengan predikat yang ditentukan.

function find<T>(predicate: (x: T) => boolean, xs: T[]): T

Parameter

predicate

(x: T) => boolean

xs

T[]

Mengembalikan

T

findIndex<T>((x: T) => boolean, T[])

Menemukan indeks nilai pertama dalam array yang cocok dengan predikat yang ditentukan.

function findIndex<T>(predicate: (x: T) => boolean, xs: T[]): number

Parameter

predicate

(x: T) => boolean

xs

T[]

Mengembalikan

number

format(any, any[])

Metode util.format() mengembalikan string yang diformat menggunakan argumen pertama sebagai string format printf-like yang dapat berisi penentu format nol atau lebih. Setiap penentu diganti dengan nilai yang dikonversi dari argumen yang sesuai. Penentu yang didukung adalah:

Jika penentu tidak memiliki argumen yang sesuai, itu tidak diganti:

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

Nilai yang bukan bagian dari string format diformat menggunakan util.inspect() jika jenisnya tidak string.

Jika ada lebih banyak argumen yang diteruskan ke metode util.format() daripada jumlah penentu, argumen tambahan digabungkan ke string yang dikembalikan, dipisahkan oleh spasi:

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

Jika argumen pertama tidak berisi penentu format yang valid, util.format() mengembalikan string yang merupakan penggabungan semua argumen yang dipisahkan oleh spasi:

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

Jika hanya satu argumen yang diteruskan ke util.format(), argumen dikembalikan apa adanya tanpa pemformatan apa pun:

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

util.format() adalah metode sinkron yang dimaksudkan sebagai alat penelusuran kesalahan. Beberapa nilai input dapat memiliki overhead performa signifikan yang dapat memblokir perulangan peristiwa. Gunakan fungsi ini dengan hati-hati dan jangan pernah berada di jalur kode panas.

function format(format?: any, param: any[]): string

Parameter

format

any

String format printf-like.

param

any[]

Mengembalikan

string

formatWithOptions(InspectOptions, any, any[])

Fungsi ini identik dengan format , kecuali karena dibutuhkan argumen inspectOptions yang menentukan opsi yang diteruskan ke memeriksa.

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.
function formatWithOptions(inspectOptions: InspectOptions, format?: any, param: any[]): string

Parameter

inspectOptions
InspectOptions
format

any

param

any[]

Mengembalikan

string

generateUUID()

Menghasilkan uuid 20 karakter.

function generateUUID(): string

Mengembalikan

string

getCallSites(number, GetCallSitesOptions)

Mengembalikan array objek situs panggilan yang berisi tumpukan fungsi pemanggil.

Tidak seperti mengakses , hasil yang error.stackdikembalikan dari API ini tidak mengganggu Error.prepareStackTrace.

import { getCallSites } from 'node:util';

function exampleFunction() {
  const callSites = 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.columnNumber}`);
  });
  // 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();

Dimungkinkan untuk membangun kembali lokasi asli dengan mengatur opsi sourceMap ke true. Jika peta sumber tidak tersedia, lokasi asli akan sama dengan lokasi saat ini. --enable-source-maps Ketika bendera diaktifkan, sourceMap akan benar secara default.

import { getCallSites } from 'node:util';

interface Foo {
  foo: string;
}

const callSites = 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
function getCallSites(frameCount?: number, options?: GetCallSitesOptions): CallSiteObject[]

Parameter

frameCount

number

Jumlah bingkai yang akan diambil sebagai objek situs panggilan. Default:10. Rentang yang diizinkan adalah antara 1 dan 200.

Mengembalikan

Array objek situs panggilan

getCallSites(GetCallSitesOptions)

function getCallSites(options: GetCallSitesOptions): CallSiteObject[]

Parameter

Mengembalikan

getRandomValue()

Mengembalikan angka acak

function getRandomValue(): number

Mengembalikan

number

getSystemErrorMap()

Mengembalikan Peta semua kode kesalahan sistem yang tersedia dari API Node.js. Pemetaan antara kode kesalahan dan nama kesalahan bergantung pada platform. Lihat Common System Errors untuk nama kesalahan umum.

fs.access('file/that/does/not/exist', (err) => {
  const errorMap = util.getSystemErrorMap();
  const name = errorMap.get(err.errno);
  console.error(name);  // ENOENT
});
function getSystemErrorMap(): Map<number, [string, string]>

Mengembalikan

Map<number, [string, string]>

getSystemErrorMessage(number)

Mengembalikan pesan string untuk kode kesalahan numerik yang berasal dari API Node.js. Pemetaan antara kode kesalahan dan pesan string bergantung pada platform.

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

Parameter

err

number

Mengembalikan

string

getSystemErrorName(number)

Mengembalikan nama string untuk kode kesalahan numerik yang berasal dari API Node.js. Pemetaan antara kode kesalahan dan nama kesalahan bergantung pada platform. Lihat Common System Errors untuk nama kesalahan umum.

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

Parameter

err

number

Mengembalikan

string

getTimeDiffInMilliseconds(Date, Date)

Mengembalikan interval waktu antara dua tanggal dalam milidetik

function getTimeDiffInMilliseconds(start: Date, end: Date): number

Parameter

start

Date

end

Date

Mengembalikan

number

inherits(unknown, unknown)

Penggunaan util.inherits() tidak disarankan. Gunakan class ES6 dan kata kunci extends untuk mendapatkan dukungan pewarisan tingkat bahasa. Perhatikan juga bahwa kedua gaya tersebut yang tidak kompatibel secara semantik.

Mewarisi metode prototipe dari satu konstruktor ke dalam yang lain. Prototipe constructor akan diatur ke objek baru yang dibuat dari superConstructor.

Ini terutama menambahkan beberapa validasi input di atas Object.setPrototypeOf(constructor.prototype, superConstructor.prototype). Sebagai kenyamanan tambahan, superConstructor dapat diakses melalui properti constructor.super_.

const util = require('node:util');
const EventEmitter = require('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!"

Contoh ES6 menggunakan class dan 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');
function inherits(constructor: unknown, superConstructor: unknown)

Parameter

constructor

unknown

superConstructor

unknown

inspect(any, InspectOptions)

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

Parameter

object

any

options
InspectOptions

Mengembalikan

string

isArray(unknown)

Peringatan

API ini sudah tidak digunakan lagi.

Since v4.0.0 - Use isArray instead.

Alias untuk Array.isArray().

Mengembalikan true jika object yang diberikan adalah Array. Jika tidak, kembalikan false.

import util from 'node:util';

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

Parameter

object

unknown

Mengembalikan

object is unknown[]

isCreate(string)

Memeriksa apakah jenis semat adalah untuk membuat

function isCreate(embedType: string): boolean

Parameter

embedType

string

Mengembalikan

boolean

isDeepStrictEqual(unknown, unknown, IsDeepStrictEqualOptions)

Mengembalikan true jika ada kesetaraan ketat yang mendalam antara val1 dan val2. Jika tidak, kembalikan false.

Lihat assert.deepStrictEqual() untuk informasi selengkapnya tentang kesetaraan ketat yang mendalam.

function isDeepStrictEqual(val1: unknown, val2: unknown, options?: IsDeepStrictEqualOptions): boolean

Parameter

val1

unknown

val2

unknown

Mengembalikan

boolean

isRDLEmbed(string)

Memeriksa apakah url semat adalah untuk laporan RDL.

function isRDLEmbed(embedUrl: string): boolean

Parameter

embedUrl

string

Mengembalikan

boolean

isSavedInternal(HttpPostMessage, string, Window)

Memeriksa apakah laporan disimpan.

function isSavedInternal(hpm: HttpPostMessage, uid: string, contentWindow: Window): Promise<boolean>

Parameter

hpm

HttpPostMessage

uid

string

contentWindow
Window

Mengembalikan

Promise<boolean>

parseArgs<T>(T)

Menyediakan API tingkat yang lebih tinggi untuk penguraian argumen baris perintah daripada berinteraksi dengan process.argv secara langsung. Mengambil spesifikasi untuk argumen yang diharapkan dan mengembalikan objek terstruktur dengan opsi dan posisi yang diurai.

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' } []
function parseArgs<T>(config?: T): ParsedResults<T>

Parameter

config

T

Digunakan untuk menyediakan argumen untuk penguraian dan untuk mengonfigurasi pengurai. config mendukung properti berikut:

Mengembalikan

ParsedResults<T>

Argumen baris perintah yang diurai:

parseEnv(string)

Stabilitas: 1.1 - Pengembangan aktif Mengingat contoh file .env:

import { parseEnv } from 'node:util';

parseEnv('HELLO=world\nHELLO=oh my\n');
// Returns: { HELLO: 'oh my' }
function parseEnv(content: string): Dict<string>

Parameter

content

string

Konten mentah dari file .env.

Mengembalikan

Dict<string>

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

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

Parameter

fn

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

Mengembalikan

() => Promise<TResult>

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

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

Parameter

fn

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

Mengembalikan

() => Promise<void>

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

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

Parameter

fn

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

Mengembalikan

(arg1: T1) => Promise<TResult>

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

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

Parameter

fn

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

Mengembalikan

(arg1: T1) => Promise<void>

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

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

Parameter

fn

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

Mengembalikan

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

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

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

Parameter

fn

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

Mengembalikan

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

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

function 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>

Parameter

fn

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

Mengembalikan

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

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

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

Parameter

fn

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

Mengembalikan

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

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

function 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>

Parameter

fn

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

Mengembalikan

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

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

function 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>

Parameter

fn

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

Mengembalikan

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

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

function 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>

Parameter

fn

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

Mengembalikan

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

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

function 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>

Parameter

fn

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

Mengembalikan

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

promisify(Function)

function promisify(fn: Function): Function

Parameter

fn

Function

Mengembalikan

Function

raiseCustomEvent(HTMLElement, string, any)

Menaikkan peristiwa kustom dengan data peristiwa pada elemen HTML yang ditentukan.

function raiseCustomEvent(element: HTMLElement, eventName: string, eventData: any)

Parameter

element

HTMLElement

eventName

string

eventData

any

remove<T>((x: T) => boolean, T[])

function remove<T>(predicate: (x: T) => boolean, xs: T[])

Parameter

predicate

(x: T) => boolean

xs

T[]

setTraceSigInt(boolean)

Aktifkan atau nonaktifkan pencetakan jejak tumpukan pada SIGINT. API hanya tersedia di utas utama.

function setTraceSigInt(enable: boolean)

Parameter

enable

boolean

stripVTControlCharacters(string)

Mengembalikan str dengan kode escape ANSI yang dihapus.

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

Parameter

str

string

Mengembalikan

string

styleText(InspectColor | (readonly InspectColor[]) | Object, string, StyleTextOptions)

Fungsi ini mengembalikan teks yang diformat mengingat yang format diteruskan untuk pencetakan di terminal. Ini mengetahui kemampuan dan tindakan terminal sesuai dengan konfigurasi yang ditetapkan melalui NO_COLORvariabel lingkungan , NODE_DISABLE_COLORS dan FORCE_COLOR .

import { styleText } from 'node:util';
import { stderr } from 'node:process';

const successMessage = styleText('green', 'Success!');
console.log(successMessage);

const errorMessage = styleText(
  'red',
  'Error! Error!',
  // Validate if process.stderr has TTY
  { stream: stderr },
);
console.error(errorMessage);

util.inspect.colors juga menyediakan format teks seperti italic, dan underline dan Anda dapat menggabungkan keduanya:

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

Saat meneruskan array format, urutan format yang diterapkan dibiarkan ke kanan sehingga gaya berikut mungkin menimpa yang sebelumnya.

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

Nilai none format khusus tidak menerapkan gaya tambahan ke teks.

Selain nama warna yang telah ditentukan sebelumnya, util.styleText() mendukung string warna heksa menggunakan urutan escape ANSI TrueColor (24-bit). Warna heks dapat ditentukan dalam format 3 digit (#RGB) atau 6 digit (#RRGGBB):

import { styleText } from 'node:util';

// 6-digit hex color
console.log(styleText('#ff5733', 'Orange text'));

// 3-digit hex color (shorthand)
console.log(styleText('#f00', 'Red text'));

Daftar lengkap format dapat ditemukan di pengubah .

function styleText(format: InspectColor | (readonly InspectColor[]) | Object, text: string, options?: StyleTextOptions): string

Parameter

format

InspectColor | (readonly InspectColor[]) | Object

Format teks atau Array format teks yang ditentukan dalam util.inspect.colors, atau warna heksa dalam #RGB bentuk atau #RRGGBB .

text

string

Teks yang akan diformat.

Mengembalikan

string

toUSVString(string)

Mengembalikan string setelah mengganti titik kode pengganti apa pun (atau setara, unit kode pengganti yang tidak berpasangan) dengan U+FFFD "karakter pengganti" Unicode.

function toUSVString(string: string): string

Parameter

string

string

Mengembalikan

string

transferableAbortController()

Membuat dan mengembalikan instans AbortController yang AbortSignal nya ditandai sebagai dapat ditransfer dan dapat digunakan dengan structuredClone() atau postMessage().

function transferableAbortController(): AbortController

Mengembalikan

AbortController

AbortController yang dapat ditransfer

transferableAbortSignal(AbortSignal)

Menandai AbortSignal yang diberikan sebagai dapat ditransfer sehingga dapat digunakan denganstructuredClone() dan postMessage().

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

Parameter

signal

AbortSignal

The AbortSignal

Mengembalikan

AbortSignal

AbortSignal yang sama

Detail Variabel

APINotSupportedForRDLError

APINotSupportedForRDLError: "This API is currently not supported for RDL reports"

Jenis

"This API is currently not supported for RDL reports"

EmbedUrlNotSupported

EmbedUrlNotSupported: "Embed URL is invalid for this scenario. Please use Power BI REST APIs to get the valid URL"

Jenis

"Embed URL is invalid for this scenario. Please use Power BI REST APIs to get the valid URL"

TextDecoder

TextDecoder: (label?: string, options?: TextDecoderOptions) => TextDecoder

Jenis

(label?: string, options?: TextDecoderOptions) => TextDecoder

TextEncoder

TextEncoder: () => TextEncoder

Jenis

() => TextEncoder

Document

Document: () => Document

Jenis

() => Document

HTMLIFrameElement

HTMLIFrameElement: () => HTMLIFrameElement

Jenis

() => HTMLIFrameElement

Window

Window: () => Window

Jenis

() => Window

config

config: { type: string, version: string }

Jenis

{ type: string, version: string }

invalidEmbedUrlErrorMessage

invalidEmbedUrlErrorMessage: string

Jenis

string

hpmFactory

hpmFactory: IHpmFactory

Jenis

IHpmFactory

routerFactory

routerFactory: IRouterFactory

Jenis

IRouterFactory

wpmpFactory

wpmpFactory: IWpmpFactory

Jenis

IWpmpFactory