internal: use util.types to migrate DEP0103 in Node.js (#3704)

- Use require('util').types instead of using process.binding('util')
  to get the type checking helpers
- Rename nodeUtil to nodeTypes since that is what it is for

Refs: https://github.com/nodejs/node/pull/18415
This commit is contained in:
Joyee Cheung
2018-03-23 22:31:36 +08:00
committed by John-David Dalton
parent 6e4cdc0c5e
commit 363fef0efc
7 changed files with 21 additions and 15 deletions

View File

@@ -13,10 +13,16 @@ const moduleExports = freeModule && freeModule.exports === freeExports
const freeProcess = moduleExports && freeGlobal.process
/** Used to access faster Node.js helpers. */
const nodeUtil = ((() => {
const nodeTypes = ((() => {
try {
return freeProcess && freeProcess.binding && freeProcess.binding('util')
/* Detect public `util.types` helpers for Node.js v10+. */
/* Node.js deprecation code: DEP0103. */
const typesHelper = freeModule && freeModule.require && freeModule.require('util').types
return typesHelper
? typesHelper
/* Legacy process.binding('util') for Node.js earlier than v10. */
: freeProcess && freeProcess.binding && freeProcess.binding('util')
} catch (e) {}
})())
export default nodeUtil
export default nodeTypes

View File

@@ -1,9 +1,9 @@
import baseGetTag from './.internal/baseGetTag.js'
import isObjectLike from './isObjectLike.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
/* Node.js helper references. */
const nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer
const nodeIsArrayBuffer = nodeTypes && nodeTypes.isArrayBuffer
/**
* Checks if `value` is classified as an `ArrayBuffer` object.

View File

@@ -1,9 +1,9 @@
import baseGetTag from './.internal/baseGetTag.js'
import isObjectLike from './isObjectLike.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
/* Node.js helper references. */
const nodeIsDate = nodeUtil && nodeUtil.isDate
const nodeIsDate = nodeTypes && nodeTypes.isDate
/**
* Checks if `value` is classified as a `Date` object.

View File

@@ -1,9 +1,9 @@
import getTag from './.internal/getTag.js'
import isObjectLike from './isObjectLike.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
/* Node.js helper references. */
const nodeIsMap = nodeUtil && nodeUtil.isMap
const nodeIsMap = nodeTypes && nodeTypes.isMap
/**
* Checks if `value` is classified as a `Map` object.

View File

@@ -1,9 +1,9 @@
import baseGetTag from './.internal/baseGetTag.js'
import isObjectLike from './isObjectLike.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
/* Node.js helper references. */
const nodeIsRegExp = nodeUtil && nodeUtil.isRegExp
const nodeIsRegExp = nodeTypes && nodeTypes.isRegExp
/**
* Checks if `value` is classified as a `RegExp` object.

View File

@@ -1,9 +1,9 @@
import getTag from './.internal/getTag.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
import isObjectLike from './isObjectLike'
/* Node.js helper references. */
const nodeIsSet = nodeUtil && nodeUtil.isSet
const nodeIsSet = nodeTypes && nodeTypes.isSet
/**
* Checks if `value` is classified as a `Set` object.

View File

@@ -1,12 +1,12 @@
import getTag from './.internal/getTag.js'
import nodeUtil from './.internal/nodeUtil.js'
import nodeTypes from './.internal/nodeTypes.js'
import isObjectLike from './isObjectLike'
/** Used to match `toStringTag` values of typed arrays. */
const reTypedTag = /^\[object (?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)\]$/
/* Node.js helper references. */
const nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray
const nodeIsTypedArray = nodeTypes && nodeTypes.isTypedArray
/**
* Checks if `value` is classified as a typed array.