@types/node
Version:
TypeScript definitions for node
559 lines (558 loc) • 23.8 kB
TypeScript
declare module "node:util/types" {
import { KeyObject, webcrypto } from "node:crypto";
/**
* Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or
* [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
*
* See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`.
*
* ```js
* util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
* util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
* ```
* @since v10.0.0
*/
function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike;
/**
* Returns `true` if the value is an `arguments` object.
*
* ```js
* function foo() {
* util.types.isArgumentsObject(arguments); // Returns true
* }
* ```
* @since v10.0.0
*/
function isArgumentsObject(object: unknown): object is IArguments;
/**
* Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance.
* This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is
* desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
*
* ```js
* util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
* util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
* ```
* @since v10.0.0
*/
function isArrayBuffer(object: unknown): object is ArrayBuffer;
/**
* Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) views, such as typed
* array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to
* [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
*
* ```js
* 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
* ```
* @since v10.0.0
*/
function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView;
/**
* Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function).
* This only reports back what the JavaScript engine is seeing;
* in particular, the return value may not match the original source code if
* a transpilation tool was used.
*
* ```js
* util.types.isAsyncFunction(function foo() {}); // Returns false
* util.types.isAsyncFunction(async function foo() {}); // Returns true
* ```
* @since v10.0.0
*/
function isAsyncFunction(object: unknown): boolean;
/**
* Returns `true` if the value is a `BigInt64Array` instance.
*
* ```js
* util.types.isBigInt64Array(new BigInt64Array()); // Returns true
* util.types.isBigInt64Array(new BigUint64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isBigInt64Array(value: unknown): value is BigInt64Array;
/**
* Returns `true` if the value is a BigInt object, e.g. created
* by `Object(BigInt(123))`.
*
* ```js
* util.types.isBigIntObject(Object(BigInt(123))); // Returns true
* util.types.isBigIntObject(BigInt(123)); // Returns false
* util.types.isBigIntObject(123); // Returns false
* ```
* @since v10.4.0
*/
function isBigIntObject(object: unknown): object is BigInt;
/**
* Returns `true` if the value is a `BigUint64Array` instance.
*
* ```js
* util.types.isBigUint64Array(new BigInt64Array()); // Returns false
* util.types.isBigUint64Array(new BigUint64Array()); // Returns true
* ```
* @since v10.0.0
*/
function isBigUint64Array(value: unknown): value is BigUint64Array;
/**
* Returns `true` if the value is a boolean object, e.g. created
* by `new Boolean()`.
*
* ```js
* 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
* ```
* @since v10.0.0
*/
function isBooleanObject(object: unknown): object is Boolean;
/**
* Returns `true` if the value is any boxed primitive object, e.g. created
* by `new Boolean()`, `new String()` or `Object(Symbol())`.
*
* For example:
*
* ```js
* 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
* ```
* @since v10.11.0
*/
function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol;
/**
* Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance.
*
* ```js
* const ab = new ArrayBuffer(20);
* util.types.isDataView(new DataView(ab)); // Returns true
* util.types.isDataView(new Float64Array()); // Returns false
* ```
*
* See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
* @since v10.0.0
*/
function isDataView(object: unknown): object is DataView;
/**
* Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
*
* ```js
* util.types.isDate(new Date()); // Returns true
* ```
* @since v10.0.0
*/
function isDate(object: unknown): object is Date;
/**
* Returns `true` if the value is a native `External` value.
*
* A native `External` value is a special type of object that contains a
* raw C++ pointer (`void*`) for access from native code, and has no other
* properties. Such objects are created either by Node.js internals or native
* addons. In JavaScript, they are
* [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a
* `null` prototype.
*
* ```c
* #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)
* ...
* ```
*
* ```js
* 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
* ```
*
* For further information on `napi_create_external`, refer to
* [`napi_create_external()`](https://nodejs.org/docs/latest-v25.x/api/n-api.html#napi_create_external).
* @since v10.0.0
*/
function isExternal(object: unknown): boolean;
/**
* Returns `true` if the value is a built-in [`Float16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float16Array) instance.
*
* ```js
* util.types.isFloat16Array(new ArrayBuffer()); // Returns false
* util.types.isFloat16Array(new Float16Array()); // Returns true
* util.types.isFloat16Array(new Float32Array()); // Returns false
* ```
* @since v24.0.0
*/
function isFloat16Array(object: unknown): object is Float16Array;
/**
* Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance.
*
* ```js
* util.types.isFloat32Array(new ArrayBuffer()); // Returns false
* util.types.isFloat32Array(new Float32Array()); // Returns true
* util.types.isFloat32Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isFloat32Array(object: unknown): object is Float32Array;
/**
* Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance.
*
* ```js
* util.types.isFloat64Array(new ArrayBuffer()); // Returns false
* util.types.isFloat64Array(new Uint8Array()); // Returns false
* util.types.isFloat64Array(new Float64Array()); // Returns true
* ```
* @since v10.0.0
*/
function isFloat64Array(object: unknown): object is Float64Array;
/**
* Returns `true` if the value is a generator function.
* This only reports back what the JavaScript engine is seeing;
* in particular, the return value may not match the original source code if
* a transpilation tool was used.
*
* ```js
* util.types.isGeneratorFunction(function foo() {}); // Returns false
* util.types.isGeneratorFunction(function* foo() {}); // Returns true
* ```
* @since v10.0.0
*/
function isGeneratorFunction(object: unknown): object is GeneratorFunction;
/**
* Returns `true` if the value is a generator object as returned from a
* built-in generator function.
* This only reports back what the JavaScript engine is seeing;
* in particular, the return value may not match the original source code if
* a transpilation tool was used.
*
* ```js
* function* foo() {}
* const generator = foo();
* util.types.isGeneratorObject(generator); // Returns true
* ```
* @since v10.0.0
*/
function isGeneratorObject(object: unknown): object is Generator;
/**
* Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance.
*
* ```js
* util.types.isInt8Array(new ArrayBuffer()); // Returns false
* util.types.isInt8Array(new Int8Array()); // Returns true
* util.types.isInt8Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isInt8Array(object: unknown): object is Int8Array;
/**
* Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance.
*
* ```js
* util.types.isInt16Array(new ArrayBuffer()); // Returns false
* util.types.isInt16Array(new Int16Array()); // Returns true
* util.types.isInt16Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isInt16Array(object: unknown): object is Int16Array;
/**
* Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance.
*
* ```js
* util.types.isInt32Array(new ArrayBuffer()); // Returns false
* util.types.isInt32Array(new Int32Array()); // Returns true
* util.types.isInt32Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isInt32Array(object: unknown): object is Int32Array;
/**
* Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
*
* ```js
* util.types.isMap(new Map()); // Returns true
* ```
* @since v10.0.0
*/
function isMap<T>(
object: T | {},
): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>)
: Map<unknown, unknown>;
/**
* Returns `true` if the value is an iterator returned for a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
*
* ```js
* 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
* ```
* @since v10.0.0
*/
function isMapIterator(object: unknown): boolean;
/**
* Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects).
*
* ```js
* import * as ns from './a.js';
*
* util.types.isModuleNamespaceObject(ns); // Returns true
* ```
* @since v10.0.0
*/
function isModuleNamespaceObject(value: unknown): boolean;
/**
* Returns `true` if the value was returned by the constructor of a
* [built-in `Error` type](https://tc39.es/ecma262/#sec-error-objects).
*
* ```js
* console.log(util.types.isNativeError(new Error())); // true
* console.log(util.types.isNativeError(new TypeError())); // true
* console.log(util.types.isNativeError(new RangeError())); // true
* ```
*
* Subclasses of the native error types are also native errors:
*
* ```js
* class MyError extends Error {}
* console.log(util.types.isNativeError(new MyError())); // true
* ```
*
* A value being `instanceof` a native error class is not equivalent to `isNativeError()`
* returning `true` for that value. `isNativeError()` returns `true` for errors
* which come from a different [realm](https://tc39.es/ecma262/#realm) while `instanceof Error` returns `false`
* for these errors:
*
* ```js
* 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
* ```
*
* Conversely, `isNativeError()` returns `false` for all objects which were not
* returned by the constructor of a native error. That includes values
* which are `instanceof` native errors:
*
* ```js
* const myError = { __proto__: Error.prototype };
* console.log(util.types.isNativeError(myError)); // false
* console.log(myError instanceof Error); // true
* ```
* @since v10.0.0
* @deprecated The `util.types.isNativeError` API is deprecated. Please use `Error.isError` instead.
*/
function isNativeError(object: unknown): object is Error;
/**
* Returns `true` if the value is a number object, e.g. created
* by `new Number()`.
*
* ```js
* util.types.isNumberObject(0); // Returns false
* util.types.isNumberObject(new Number(0)); // Returns true
* ```
* @since v10.0.0
*/
function isNumberObject(object: unknown): object is Number;
/**
* Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
*
* ```js
* util.types.isPromise(Promise.resolve(42)); // Returns true
* ```
* @since v10.0.0
*/
function isPromise(object: unknown): object is Promise<unknown>;
/**
* Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance.
*
* ```js
* const target = {};
* const proxy = new Proxy(target, {});
* util.types.isProxy(target); // Returns false
* util.types.isProxy(proxy); // Returns true
* ```
* @since v10.0.0
*/
function isProxy(object: unknown): boolean;
/**
* Returns `true` if the value is a regular expression object.
*
* ```js
* util.types.isRegExp(/abc/); // Returns true
* util.types.isRegExp(new RegExp('abc')); // Returns true
* ```
* @since v10.0.0
*/
function isRegExp(object: unknown): object is RegExp;
/**
* Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
*
* ```js
* util.types.isSet(new Set()); // Returns true
* ```
* @since v10.0.0
*/
function isSet<T>(
object: T | {},
): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>;
/**
* Returns `true` if the value is an iterator returned for a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
*
* ```js
* 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
* ```
* @since v10.0.0
*/
function isSetIterator(object: unknown): boolean;
/**
* Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
* This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is
* desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
*
* ```js
* util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false
* util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true
* ```
* @since v10.0.0
*/
function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer;
/**
* Returns `true` if the value is a string object, e.g. created
* by `new String()`.
*
* ```js
* util.types.isStringObject('foo'); // Returns false
* util.types.isStringObject(new String('foo')); // Returns true
* ```
* @since v10.0.0
*/
function isStringObject(object: unknown): object is String;
/**
* Returns `true` if the value is a symbol object, created
* by calling `Object()` on a `Symbol` primitive.
*
* ```js
* const symbol = Symbol('foo');
* util.types.isSymbolObject(symbol); // Returns false
* util.types.isSymbolObject(Object(symbol)); // Returns true
* ```
* @since v10.0.0
*/
function isSymbolObject(object: unknown): object is Symbol;
/**
* Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance.
*
* ```js
* util.types.isTypedArray(new ArrayBuffer()); // Returns false
* util.types.isTypedArray(new Uint8Array()); // Returns true
* util.types.isTypedArray(new Float64Array()); // Returns true
* ```
*
* See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
* @since v10.0.0
*/
function isTypedArray(object: unknown): object is NodeJS.TypedArray;
/**
* Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance.
*
* ```js
* util.types.isUint8Array(new ArrayBuffer()); // Returns false
* util.types.isUint8Array(new Uint8Array()); // Returns true
* util.types.isUint8Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isUint8Array(object: unknown): object is Uint8Array;
/**
* Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance.
*
* ```js
* util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
* util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
* util.types.isUint8ClampedArray(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray;
/**
* Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance.
*
* ```js
* util.types.isUint16Array(new ArrayBuffer()); // Returns false
* util.types.isUint16Array(new Uint16Array()); // Returns true
* util.types.isUint16Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isUint16Array(object: unknown): object is Uint16Array;
/**
* Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance.
*
* ```js
* util.types.isUint32Array(new ArrayBuffer()); // Returns false
* util.types.isUint32Array(new Uint32Array()); // Returns true
* util.types.isUint32Array(new Float64Array()); // Returns false
* ```
* @since v10.0.0
*/
function isUint32Array(object: unknown): object is Uint32Array;
/**
* Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance.
*
* ```js
* util.types.isWeakMap(new WeakMap()); // Returns true
* ```
* @since v10.0.0
*/
function isWeakMap(object: unknown): object is WeakMap<object, unknown>;
/**
* Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance.
*
* ```js
* util.types.isWeakSet(new WeakSet()); // Returns true
* ```
* @since v10.0.0
*/
function isWeakSet(object: unknown): object is WeakSet<object>;
/**
* Returns `true` if `value` is a `KeyObject`, `false` otherwise.
* @since v16.2.0
*/
function isKeyObject(object: unknown): object is KeyObject;
/**
* Returns `true` if `value` is a `CryptoKey`, `false` otherwise.
* @since v16.2.0
*/
function isCryptoKey(object: unknown): object is webcrypto.CryptoKey;
}
declare module "util/types" {
export * from "node:util/types";
}