🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

get-object-class

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

get-object-class

Get the class type of any object

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

get-object-class

A more explicit improvement on typeof

Installation

$ npm i get-object-class --save

Usage

// ES2015
import goc from 'get-object-class';

// CommonJS
const goc = require('get-object-class');

// script
const goc = window.getObjectClass;

Implementation

const array = [];
const promise = Promise.resolve();

console.log(goc(array)); // array
console.log(goc(promise)); // promise

Why do we need this?

Generally speaking, you can use the typeof operator to determine a number of object classes:

  • boolean
  • function
  • number
  • object
  • string
  • symbol
  • undefined

However, this list is quite limited, and things can get confusing for other classes of objects:

console.log(typeof new Date()); // object
console.log(typeof null); // object

This library rectifies that by giving you the specific object class for any object (if I missed one tell me, I'll add it):

  • Arguments => arguments
  • Array => array
  • ArrayBuffer => arraybuffer
  • Boolean => boolean
  • DataView => dataview
  • Date => date
  • Error => error
  • Float32Array => float32array
  • Float64Array => float64array
  • Function => function
  • GeneratorFunction => generatorfunction
  • global => global (specific to node)
  • Int8Array => int8array
  • Int16Array => int16array
  • Int32Array => int32array
  • JSON => json (tests the JSON object itself, not if the value is a valid JSON string)
  • Map => map
  • Math => math
  • Null => null
  • Number => number
  • Object => object
  • Promise => promise
  • RegExp => regexp
  • Set => set
  • String => string
  • Symbol => symbol
  • Uint8Array => uint8array
  • Uint8ClampedArray => uint8Clampedarray
  • Uint16Array => uint16array
  • Uint32Array => uint32array
  • WeakMap => weakmap
  • WeakSet => weakset
  • Window => window (specific to browser)

Checker functions

get-object-class also provides a checker function for each object class, example:

const array = [];
const boolean = true;

console.log(goc.isArray(array)); // true
console.log(goc.isBoolean(array)); // false

Keep in mind that the name of the function is driven by the PascalCase names in the list above:

const regexp = /foo/;

console.log(goc.isRegExp(regexp)); // true
console.log(goc.isFloat32Array(regexp)); // false
console.log(goc.isJSON(regexp)); // false

Development

Standard stuff, clone the repo and npm i to get the dependencies. npm scripts available:

  • build => builds the distributed JS with NODE_ENV=development and with sourcemaps
  • build-minified => builds the distributed JS with NODE_ENV=production and minified
  • compile-for-publish => runs the lint, test, transpile, build, and build-minified scripts
  • dev => runs the webpack dev server for the playground
  • lint => runs ESLint against files in the src folder
  • prepublish => if in publish, runs compile-for-publish
  • test => run ava with NODE_ENV=test
  • test:watch => runs test but with persistent watcher
  • transpile => runs Babel against files in src to files in lib

Keywords

typeof

FAQs

Package last updated on 05 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts