typed-array-byte-offset (1.0.4)

Published 2026-02-24 14:07:45 +00:00 by atheaadmin

Installation

registry=
npm install typed-array-byte-offset@1.0.4
"typed-array-byte-offset": "1.0.4"

About this package

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

Dependencies

Dependencies

ID Version
available-typed-arrays ^1.0.7
call-bind ^1.0.8
for-each ^0.3.3
gopd ^1.2.0
has-proto ^1.2.0
is-typed-array ^1.1.15
reflect.getprototypeof ^1.0.9

Development Dependencies

ID Version
@arethetypeswrong/cli ^0.17.1
@ljharb/eslint-config ^21.1.1
@ljharb/tsconfig ^0.2.2
@types/call-bind ^1.0.5
@types/es-abstract ^1.17.9
@types/for-each ^0.3.3
@types/gopd ^1.0.3
@types/is-callable ^1.1.2
@types/make-arrow-function ^1.2.2
@types/make-generator-function ^2.0.3
@types/object-inspect ^1.13.0
@types/tape ^5.8.0
auto-changelog ^2.5.0
eslint =8.8.0
evalmd ^0.0.19
in-publish ^2.0.1
is-callable ^1.2.7
make-arrow-function ^1.2.0
make-generator-function ^2.0.0
npmignore ^0.3.1
nyc ^10.3.2
object-inspect ^1.13.3
possible-typed-array-names ^1.0.0
safe-publish-latest ^2.0.0
tape ^5.9.0
typescript next

Keywords

typed array byteOffset byte offset robust es Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array BigInt64Array BigUint64Array
Details
npm
2026-02-24 14:07:45 +00:00
1
Jordan Harband
MIT
latest
6.5 KiB
Assets (1)
Versions (1) View all
1.0.4 2026-02-24