GitHub - inspect-js/is-data-view: Is this value a JS DataView? This module works cross-realm/iframe, does not depend on instanceof or mutable properties, and despite ES6 Symbol.toStringTag. (original) (raw)

is-data-view Version Badge

github actions coverage License Downloads

npm badge

Is this value a JS DataView? This module works cross-realm/iframe, does not depend on instanceof or mutable properties, and despite ES6 Symbol.toStringTag.

Example

var isDataView = require('is-data-view'); var assert = require('assert');

assert.equal(false, isDataView(undefined)); assert.equal(false, isDataView(null)); assert.equal(false, isDataView(false)); assert.equal(false, isDataView(true)); assert.equal(false, isDataView([])); assert.equal(false, isDataView({})); assert.equal(false, isDataView(/a/g)); assert.equal(false, isDataView(new RegExp('a', 'g'))); assert.equal(false, isDataView(new Date())); assert.equal(false, isDataView(42)); assert.equal(false, isDataView(NaN)); assert.equal(false, isDataView(Infinity)); assert.equal(false, isDataView(new Number(42))); assert.equal(false, isDataView('foo')); assert.equal(false, isDataView(Object('foo'))); assert.equal(false, isDataView(function () {})); assert.equal(false, isDataView(function* () {})); assert.equal(false, isDataView(x => x * x)); assert.equal(false, isDataView([])); assert.equal(false, isDataView(new Int8Array())); assert.equal(false, isDataView(new Uint8Array())); assert.equal(false, isDataView(new Uint8ClampedArray())); assert.equal(false, isDataView(new Int16Array())); assert.equal(false, isDataView(new Uint16Array())); assert.equal(false, isDataView(new Int32Array())); assert.equal(false, isDataView(new Uint32Array())); assert.equal(false, isDataView(new Float32Array())); assert.equal(false, isDataView(new Float64Array())); assert.equal(false, isDataView(new BigInt64Array())); assert.equal(false, isDataView(new BigUint64Array()));

assert.ok(isDataView(new DataView(new ArrayBuffer(0))));

Tests

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