Have ideas to improve npm?Join in the discussion! »

    which-collection

    1.0.1 • Public • Published

    which-collection Version Badge

    Build Status dependency status dev dependency status License Downloads

    npm badge

    Which kind of Collection (Map, Set, WeakMap, WeakSet) is this JavaScript value? Works cross-realm, without instanceof, and despite Symbol.toStringTag.

    Example

    var whichCollection = require('which-collection');
    var assert = require('assert');
     
    assert.equal(false, whichCollection(undefined));
    assert.equal(false, whichCollection(null));
    assert.equal(false, whichCollection(false));
    assert.equal(false, whichCollection(true));
    assert.equal(false, whichCollection([]));
    assert.equal(false, whichCollection({}));
    assert.equal(false, whichCollection(/a/g));
    assert.equal(false, whichCollection(new RegExp('a', 'g')));
    assert.equal(false, whichCollection(new Date()));
    assert.equal(false, whichCollection(42));
    assert.equal(false, whichCollection(NaN));
    assert.equal(false, whichCollection(Infinity));
    assert.equal(false, whichCollection(new Number(42)));
    assert.equal(false, whichCollection(42n));
    assert.equal(false, whichCollection(Object(42n)));
    assert.equal(false, whichCollection('foo'));
    assert.equal(false, whichCollection(Object('foo')));
    assert.equal(false, whichCollection(function () {}));
    assert.equal(false, whichCollection(function* () {}));
    assert.equal(false, whichCollection(x => x * x));
    assert.equal(false, whichCollection([]));
     
    assert.equal('Map', whichCollection(new Map()));
    assert.equal('Set', whichCollection(new Set()));
    assert.equal('WeakMap', whichCollection(new WeakMap()));
    assert.equal('WeakSet', whichCollection(new WeakSet()));

    Tests

    Simply clone the repo, npm install, and run npm test

    Install

    npm i which-collection

    DownloadsWeekly Downloads

    960,081

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    10.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • avatar