{"version":3,"file":"typeOf.cjs","sources":["../../src/types/typeOf.ts"],"sourcesContent":["import { VALUE_TYPES } from './data';\nimport { constructorName } from './helpers';\nimport { isArguments } from './isArguments';\nimport { isBuffer } from './isBuffer';\nimport { isDate } from './isDate';\nimport { isError } from './isError';\nimport { isGeneratorFunction, isGeneratorObject } from './isGenerator';\nimport { isRegExp } from './isRegExp';\nimport type { ValueType } from './types';\nexport type { ValueType } from './types';\n\n/**\n * Determines the type of the given value\n */\nexport function typeOf(value: any): ValueType | string {\n  if (value === void 0) {\n    return VALUE_TYPES.undefined;\n  }\n\n  if (value === null) {\n    return VALUE_TYPES.null;\n  }\n\n  let type: string = typeof value;\n\n  if (type === 'boolean') {\n    return VALUE_TYPES.boolean;\n  }\n\n  if (type === 'string') {\n    return VALUE_TYPES.string;\n  }\n\n  if (type === 'number') {\n    return VALUE_TYPES.number;\n  }\n\n  if (type === 'symbol') {\n    return VALUE_TYPES.symbol;\n  }\n\n  if (type === 'function') {\n    return isGeneratorFunction(value)\n      ? VALUE_TYPES.generatorfunction\n      : VALUE_TYPES.function;\n  }\n\n  if (Array.isArray(value)) {\n    return VALUE_TYPES.array;\n  }\n\n  if (isBuffer(value)) {\n    return VALUE_TYPES.buffer;\n  }\n\n  if (isArguments(value)) {\n    return VALUE_TYPES.arguments;\n  }\n\n  if (isDate(value)) {\n    return VALUE_TYPES.date;\n  }\n\n  if (isError(value)) {\n    return VALUE_TYPES.error;\n  }\n\n  if (isRegExp(value)) {\n    return VALUE_TYPES.regexp;\n  }\n\n  switch (constructorName(value)) {\n    case 'Symbol': {\n      return VALUE_TYPES.symbol;\n    }\n    case 'Promise': {\n      return VALUE_TYPES.promise;\n    }\n    case 'WeakMap': {\n      return VALUE_TYPES.weakmap;\n    }\n    case 'WeakSet': {\n      return VALUE_TYPES.weakset;\n    }\n    case 'Map': {\n      return VALUE_TYPES.map;\n    }\n    case 'Set': {\n      return VALUE_TYPES.set;\n    }\n    case 'Int8Array': {\n      return VALUE_TYPES.int8array;\n    }\n    case 'Uint8Array': {\n      return VALUE_TYPES.uint8array;\n    }\n    case 'Uint8ClampedArray': {\n      return VALUE_TYPES.uint8clampedarray;\n    }\n    case 'Int16Array': {\n      return VALUE_TYPES.int16array;\n    }\n    case 'Uint16Array': {\n      return VALUE_TYPES.uint16array;\n    }\n    case 'Int32Array': {\n      return VALUE_TYPES.int32array;\n    }\n    case 'Uint32Array': {\n      return VALUE_TYPES.uint32array;\n    }\n    case 'Float32Array': {\n      return VALUE_TYPES.float32array;\n    }\n    case 'Float64Array': {\n      return VALUE_TYPES.float64array;\n    }\n    case 'BigInt64Array': {\n      return VALUE_TYPES.bigint64array;\n    }\n    case 'BigUint64Array': {\n      return VALUE_TYPES.biguint64array;\n    }\n  }\n\n  if (isGeneratorObject(value)) {\n    return VALUE_TYPES.generator;\n  }\n\n  type = toString.call(value) as string;\n\n  switch (type) {\n    case '[object Object]': {\n      return VALUE_TYPES.object;\n    }\n    case '[object Map Iterator]': {\n      return VALUE_TYPES.mapiterator;\n    }\n    case '[object Set Iterator]': {\n      return VALUE_TYPES.setiterator;\n    }\n    case '[object String Iterator]': {\n      return VALUE_TYPES.stringiterator;\n    }\n    case '[object Array Iterator]': {\n      return VALUE_TYPES.arrayiterator;\n    }\n  }\n\n  return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n"],"names":["VALUE_TYPES","isGeneratorFunction","isBuffer","isArguments","isDate","isError","isRegExp","constructorName","isGeneratorObject"],"mappings":"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"}