lib: expose all type checks from the internal types module
Combine all type checks on the internal types module and do not use the types binding anywhere else anymore. This makes sure all of those checks exist when required. PR-URL: https://github.com/nodejs/node/pull/25149 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com>
This commit is contained in:
parent
d385e2cc5a
commit
5ac30c99a9
@ -37,7 +37,6 @@ const {
|
||||
kMaxLength,
|
||||
kStringMaxLength
|
||||
} = internalBinding('buffer');
|
||||
const { isAnyArrayBuffer } = internalBinding('types');
|
||||
const {
|
||||
getOwnNonIndexProperties,
|
||||
propertyFilter: {
|
||||
@ -52,6 +51,7 @@ const {
|
||||
kIsEncodingSymbol
|
||||
} = require('internal/util');
|
||||
const {
|
||||
isAnyArrayBuffer,
|
||||
isArrayBufferView,
|
||||
isUint8Array
|
||||
} = require('internal/util/types');
|
||||
|
@ -228,7 +228,7 @@ function startup() {
|
||||
// TODO(addaleax): Turn into a full runtime deprecation.
|
||||
const pendingDeprecation = getOptionValue('--pending-deprecation');
|
||||
const utilBinding = internalBinding('util');
|
||||
const types = internalBinding('types');
|
||||
const types = NativeModule.require('internal/util/types');
|
||||
for (const name of [
|
||||
'isArrayBuffer', 'isArrayBufferView', 'isAsyncFunction',
|
||||
'isDataView', 'isDate', 'isExternal', 'isMap', 'isMapIterator',
|
||||
|
@ -21,11 +21,10 @@ const {
|
||||
customInspectSymbol: inspect
|
||||
} = require('internal/util');
|
||||
|
||||
const { isArrayBufferView } = require('internal/util/types');
|
||||
|
||||
const {
|
||||
isArrayBuffer
|
||||
} = internalBinding('types');
|
||||
isArrayBuffer,
|
||||
isArrayBufferView
|
||||
} = require('internal/util/types');
|
||||
|
||||
const {
|
||||
encodeUtf8String
|
||||
|
@ -14,7 +14,7 @@ const {
|
||||
} = internalBinding('util');
|
||||
const {
|
||||
isNativeError
|
||||
} = internalBinding('types');
|
||||
} = require('internal/util/types');
|
||||
|
||||
const { errmap } = internalBinding('uv');
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
const { compare } = internalBinding('buffer');
|
||||
const { isArrayBufferView } = require('internal/util/types');
|
||||
const {
|
||||
isAnyArrayBuffer,
|
||||
isArrayBufferView,
|
||||
isDate,
|
||||
isMap,
|
||||
isRegExp,
|
||||
@ -15,7 +15,7 @@ const {
|
||||
isBooleanObject,
|
||||
isBigIntObject,
|
||||
isSymbolObject
|
||||
} = internalBinding('types');
|
||||
} = require('internal/util/types');
|
||||
const {
|
||||
getOwnNonIndexProperties,
|
||||
propertyFilter: {
|
||||
|
@ -27,8 +27,6 @@ const {
|
||||
isStackOverflowError
|
||||
} = require('internal/errors');
|
||||
|
||||
const types = internalBinding('types');
|
||||
Object.assign(types, require('internal/util/types'));
|
||||
const {
|
||||
isAnyArrayBuffer,
|
||||
isArrayBuffer,
|
||||
@ -38,6 +36,8 @@ const {
|
||||
isExternal,
|
||||
isMap,
|
||||
isMapIterator,
|
||||
isModuleNamespaceObject,
|
||||
isNativeError,
|
||||
isPromise,
|
||||
isSet,
|
||||
isSetIterator,
|
||||
@ -61,7 +61,7 @@ const {
|
||||
isFloat64Array,
|
||||
isBigInt64Array,
|
||||
isBigUint64Array
|
||||
} = types;
|
||||
} = require('internal/util/types');
|
||||
|
||||
const ReflectApply = Reflect.apply;
|
||||
|
||||
@ -385,9 +385,9 @@ function getKeys(value, showHidden) {
|
||||
try {
|
||||
keys = Object.keys(value);
|
||||
} catch (err) {
|
||||
if (types.isNativeError(err) &&
|
||||
if (isNativeError(err) &&
|
||||
err.name === 'ReferenceError' &&
|
||||
types.isModuleNamespaceObject(value)) {
|
||||
isModuleNamespaceObject(value)) {
|
||||
keys = Object.getOwnPropertyNames(value);
|
||||
} else {
|
||||
throw err;
|
||||
@ -693,7 +693,7 @@ function formatRaw(ctx, value, recurseTimes) {
|
||||
} else if (isWeakMap(value)) {
|
||||
braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`;
|
||||
formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection;
|
||||
} else if (types.isModuleNamespaceObject(value)) {
|
||||
} else if (isModuleNamespaceObject(value)) {
|
||||
braces[0] = `[${tag}] {`;
|
||||
formatter = formatNamespaceObject;
|
||||
skip = true;
|
||||
@ -880,7 +880,7 @@ function formatNamespaceObject(ctx, value, recurseTimes, keys) {
|
||||
output[i] = formatProperty(ctx, value, recurseTimes, keys[i],
|
||||
kObjectType);
|
||||
} catch (err) {
|
||||
if (!(types.isNativeError(err) && err.name === 'ReferenceError')) {
|
||||
if (!(isNativeError(err) && err.name === 'ReferenceError')) {
|
||||
throw err;
|
||||
}
|
||||
// Use the existing functionality. This makes sure the indentation and
|
||||
|
@ -70,6 +70,7 @@ function isBigUint64Array(value) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
...internalBinding('types'),
|
||||
isArrayBufferView,
|
||||
isTypedArray,
|
||||
isUint8Array,
|
||||
|
12
lib/util.js
12
lib/util.js
@ -31,13 +31,7 @@ const {
|
||||
const { validateNumber } = require('internal/validators');
|
||||
const { TextDecoder, TextEncoder } = require('internal/encoding');
|
||||
const { isBuffer } = require('buffer').Buffer;
|
||||
|
||||
const types = internalBinding('types');
|
||||
Object.assign(types, require('internal/util/types'));
|
||||
const {
|
||||
isRegExp,
|
||||
isDate,
|
||||
} = types;
|
||||
const types = require('internal/util/types');
|
||||
|
||||
const {
|
||||
deprecate,
|
||||
@ -432,9 +426,9 @@ module.exports = exports = {
|
||||
isString,
|
||||
isSymbol,
|
||||
isUndefined,
|
||||
isRegExp,
|
||||
isRegExp: types.isRegExp,
|
||||
isObject,
|
||||
isDate,
|
||||
isDate: types.isDate,
|
||||
isError(e) {
|
||||
return objectToString(e) === '[object Error]' || e instanceof Error;
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user