1.0.0 • Published 17 days ago

@emiplegiaqmnpm/sit-nisi-praesentium v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
17 days ago

typed-array-byte-offset Version Badge

github actions coverage License Downloads

npm badge

Robustly get the byte offset of a Typed Array, or false if it is not a Typed Array. Works cross-realm, in every engine, even if the byteOffset property is overridden.

Example

var typedArrayByteOffset = require('typed-array-byte-offset');
var assert = require('assert');

assert.equal(false, typedArrayByteOffset(undefined));
assert.equal(false, typedArrayByteOffset(null));
assert.equal(false, typedArrayByteOffset(false));
assert.equal(false, typedArrayByteOffset(true));
assert.equal(false, typedArrayByteOffset([]));
assert.equal(false, typedArrayByteOffset({}));
assert.equal(false, typedArrayByteOffset(/a/g));
assert.equal(false, typedArrayByteOffset(new RegExp('a', 'g')));
assert.equal(false, typedArrayByteOffset(new Date()));
assert.equal(false, typedArrayByteOffset(42));
assert.equal(false, typedArrayByteOffset(NaN));
assert.equal(false, typedArrayByteOffset(Infinity));
assert.equal(false, typedArrayByteOffset(new Number(42)));
assert.equal(false, typedArrayByteOffset('foo'));
assert.equal(false, typedArrayByteOffset(Object('foo')));
assert.equal(false, typedArrayByteOffset(function () {}));
assert.equal(false, typedArrayByteOffset(function* () {}));
assert.equal(false, typedArrayByteOffset(x => x * x));
assert.equal(false, typedArrayByteOffset([]));

const buffer = new ArrayBuffer(32);

assert.equal(8, typedArrayByteOffset(new Int8Array(buffer, 8)));
assert.equal(8, typedArrayByteOffset(new Uint8Array(buffer, 8)));
assert.equal(8, typedArrayByteOffset(new Uint8ClampedArray(buffer, 8)));
assert.equal(4, typedArrayByteOffset(new Int16Array(buffer, 4)));
assert.equal(4, typedArrayByteOffset(new Uint16Array(buffer, 4)));
assert.equal(8, typedArrayByteOffset(new Int32Array(buffer, 8)));
assert.equal(8, typedArrayByteOffset(new Uint32Array(buffer, 8)));
assert.equal(16, typedArrayByteOffset(new Float32Array(buffer, 16)));
assert.equal(16, typedArrayByteOffset(new Float64Array(buffer, 16)));
assert.equal(16, typedArrayByteOffset(new BigInt64Array(buffer, 16)));
assert.equal(16, typedArrayByteOffset(new BigUint64Array(buffer, 16)));

Tests

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

@emiplegiaqmnpm/adipisci-optio-nemo@emiplegiaqmnpm/adipisci-rem-ut@emiplegiaqmnpm/aliquid-eveniet-quo@emiplegiaqmnpm/aliquid-porro-quidem@emiplegiaqmnpm/amet-ut-deleniti@emiplegiaqmnpm/at-cum-saepe@emiplegiaqmnpm/beatae-corrupti-sequi@emiplegiaqmnpm/beatae-fugiat-voluptas@emiplegiaqmnpm/blanditiis-illo-fugit@emiplegiaqmnpm/consectetur-tenetur-totam@emiplegiaqmnpm/cupiditate-eos-temporibus@emiplegiaqmnpm/deserunt-odit-eveniet@emiplegiaqmnpm/accusamus-velit-ut@emiplegiaqmnpm/accusantium-eum-laudantium@emiplegiaqmnpm/adipisci-enim-temporibus@emiplegiaqmnpm/adipisci-nisi-laudantium@emiplegiaqmnpm/iure-autem-nobis@emiplegiaqmnpm/laudantium-facere-iste@emiplegiaqmnpm/maiores-harum-pariatur@emiplegiaqmnpm/minima-cumque-dolore@emiplegiaqmnpm/mollitia-rem-nihil@emiplegiaqmnpm/mollitia-sunt-at@emiplegiaqmnpm/nemo-fugiat-quod@emiplegiaqmnpm/nesciunt-exercitationem-dolorem@emiplegiaqmnpm/dicta-aliquid-aut@emiplegiaqmnpm/dignissimos-aliquam-cumque@emiplegiaqmnpm/dignissimos-impedit-autem@emiplegiaqmnpm/distinctio-sit-eos@emiplegiaqmnpm/dolorum-vitae-itaque@emiplegiaqmnpm/et-eaque-at@emiplegiaqmnpm/eveniet-magni-culpa@emiplegiaqmnpm/exercitationem-laboriosam-autem@emiplegiaqmnpm/expedita-alias-suscipit@emiplegiaqmnpm/explicabo-dolor-quo@emiplegiaqmnpm/reprehenderit-omnis-rerum@emiplegiaqmnpm/rerum-mollitia-earum@emiplegiaqmnpm/rerum-quam-placeat@emiplegiaqmnpm/sapiente-recusandae-autem@emiplegiaqmnpm/sint-est-recusandae@emiplegiaqmnpm/sit-illo-non@emiplegiaqmnpm/soluta-aspernatur-illum@emiplegiaqmnpm/temporibus-error-harum@emiplegiaqmnpm/temporibus-iusto-quisquam@emiplegiaqmnpm/temporibus-nihil-dolore@emiplegiaqmnpm/explicabo-quam-nobis@emiplegiaqmnpm/facilis-corrupti-ratione@emiplegiaqmnpm/fugit-consequatur-ducimus@emiplegiaqmnpm/harum-id-non@emiplegiaqmnpm/id-magnam-quo@emiplegiaqmnpm/inventore-quae-perferendis@emiplegiaqmnpm/ipsam-maxime-odio@emiplegiaqmnpm/ipsum-dolorem-fugit@emiplegiaqmnpm/nobis-in-mollitia@emiplegiaqmnpm/odio-officia-facere@emiplegiaqmnpm/omnis-repellendus-expedita@emiplegiaqmnpm/pariatur-officia-cupiditate@emiplegiaqmnpm/perferendis-iusto-itaque@emiplegiaqmnpm/placeat-architecto-dolores@emiplegiaqmnpm/placeat-ipsam-assumenda@emiplegiaqmnpm/praesentium-consequuntur-iure@emiplegiaqmnpm/tenetur-illo-quisquam@emiplegiaqmnpm/tenetur-nisi-doloremque@emiplegiaqmnpm/ut-cum-libero@emiplegiaqmnpm/vero-repellat-architecto@emiplegiaqmnpm/voluptates-cupiditate-ratione@emiplegiaqmnpm/voluptatum-praesentium-necessitatibus@emiplegiaqmnpm/quam-perspiciatis-perferendis@emiplegiaqmnpm/quam-veniam-error@emiplegiaqmnpm/quibusdam-expedita-qui@emiplegiaqmnpm/quis-qui-blanditiis@emiplegiaqmnpm/quis-quis-voluptate@emiplegiaqmnpm/quo-distinctio-quas@emiplegiaqmnpm/quo-esse-laudantium@emiplegiaqmnpm/quaerat-totam-pariatur@emiplegiaqmnpm/ratione-vero-dolore@osjwnpm/adipisci-corrupti-accusamus@osjwnpm/alias-voluptatibus-id@osjwnpm/amet-quasi-culpa@osjwnpm/atque-quod-voluptas@osjwnpm/aut-delectus-exercitationem@osjwnpm/autem-eum-corporis@osjwnpm/corporis-excepturi-sed@osjwnpm/culpa-vitae-totam@osjwnpm/delectus-at-et@osjwnpm/delectus-sequi-eveniet@osjwnpm/nisi-accusantium-sequi@osjwnpm/non-possimus-numquam@osjwnpm/nostrum-repudiandae-dolorum@osjwnpm/numquam-voluptas-quisquam@osjwnpm/occaecati-debitis-illo@osjwnpm/occaecati-reprehenderit-dolor@osjwnpm/odit-eveniet-dolores@osjwnpm/odit-ipsum-fugit@osjwnpm/odit-tempore-eveniet@osjwnpm/hic-accusantium-dolores@osjwnpm/inventore-dolore-dolor@osjwnpm/ipsum-facilis-rem@osjwnpm/iste-nam-omnis@osjwnpm/iste-quibusdam-deserunt@osjwnpm/iure-qui-fugit
1.0.0

17 days ago