Sha256: bf3341e566cd4c51fbc67d3e67ff197256f15dccd2ff78e55f2fc51ff9ef9dab

Contents?: true

Size: 1.45 KB

Versions: 17

Compression:

Stored size: 1.45 KB

Contents

// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of
function miniKindOf(val) {
  if (val === void 0) return 'undefined'
  if (val === null) return 'null'

  const type = typeof val
  switch (type) {
    case 'boolean':
    case 'string':
    case 'number':
    case 'symbol':
    case 'function': {
      return type
    }
    default:
      break
  }

  if (Array.isArray(val)) return 'array'
  if (isDate(val)) return 'date'
  if (isError(val)) return 'error'

  const constructorName = ctorName(val)
  switch (constructorName) {
    case 'Symbol':
    case 'Promise':
    case 'WeakMap':
    case 'WeakSet':
    case 'Map':
    case 'Set':
      return constructorName
    default:
      break
  }

  // other
  return type.slice(8, -1).toLowerCase().replace(/\s/g, '')
}

function ctorName(val) {
  return typeof val.constructor === 'function' ? val.constructor.name : null
}

function isError(val) {
  return (
    val instanceof Error ||
    (typeof val.message === 'string' &&
      val.constructor &&
      typeof val.constructor.stackTraceLimit === 'number')
  )
}

function isDate(val) {
  if (val instanceof Date) return true
  return (
    typeof val.toDateString === 'function' &&
    typeof val.getDate === 'function' &&
    typeof val.setDate === 'function'
  )
}

export function kindOf(val) {
  let typeOfVal = typeof val

  if (process.env.NODE_ENV !== 'production') {
    typeOfVal = miniKindOf(val)
  }

  return typeOfVal
}

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
isomorfeus-redux-4.2.0 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.18 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.17 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.16 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.15 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.14 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.13 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.12 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.11 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.10 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.9 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.8 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.7 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.6 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.5 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.4 node_modules/redux/src/utils/kindOf.js
isomorfeus-redux-4.1.3 node_modules/redux/src/utils/kindOf.js