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 const freeProcess = moduleExports && freeGlobal.process
/** Used to access faster Node.js helpers. */ /** Used to access faster Node.js helpers. */
const nodeUtil = ((() => { const nodeTypes = ((() => {
try { 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) {} } catch (e) {}
})()) })())
export default nodeUtil export default nodeTypes

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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