1.0.0 • Published 13 days ago

@f1stnpm2/sed-nostrum-autem v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
13 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

jsdomargviterateeast-asian-widthasserthigher-orderES6whichfind-upFloat32ArrayflagconstchaifastcloneRFC-6455testingrmcallbacktrimStartECMAScript 7childairbnbarktypetaskspinnersirqcontainsvisualxssfindLastIndexstringifierappsortupObject.isimmutablezerocolourformattingletaccessortranspilerObservablesfromvaluesrequestdescriptorsopensmime-dbpopmotioneslintduplextimehttpswatchassertionUint32ArrayjsdiffgetOwnPropertyDescriptorArray.prototype.flatMapnegativeObject.keyszodcommand-linewalkreadablecopyECMAScript 2019deep-copysymlinksmodulesutil.inspectdebugartmkdirlimitIteratorlanguagecss lessarraybufferkeysRxJSterminalquerystringstructuredClonecompile lessprivate datakeyasyncestreeauthenticationpicomatchajaxopenextendfasteslintpluginpackagesStream.envopenerlazyclassesbabel-coresortedschemecryptoresolveformattslibfastifygetoptchromiumjasmineawesomesauceexeenderCSSclifileInt32Arrayes2015chinesebabelsharedemojiargumentfile systemextraredux-toolkitbootstrap lessnamesarraysprivateruntimewordwrapES7package managersequencecss variablegraphqlurlsyamljson-schema-validationforEachBigInt64ArrayTypeBoxquoteObjectsanitizeform-validationconcurrencyrm -rfprotocol-buffersfindLastidletyped arraygradients css3stylesredactposelesscsswidthastcolorsponyfillreducergroupes5es8websiteiterationlrudatastructureimmercallbindimportjstypeprefixcensorRxlogtesterrorutilityreal-timeES2020toolkitcorsyuprandombluebirdinstallersameValueZeropropertiesenvironmentURLes-shimsES2015Symbolbuffersfilterfpexpressnativepushsanitizationa11ydeepcopyArray.prototype.containsrapidjwtshellindicatorcodesmonorepopreprocessorbrowserslisttypesafecallconnectES2021setmovecoreapistyled-componentsnameratetsdatespecbddeditorObject.assignwhatwgsetterstreamcreatei18nWeakSetspinnerstylesheetescapeparsersignalerror-handlingslotcacheisuuidES2022prunelintES3globprogressprocessvariablesutildebuggerexitqueueMicrotaskmixinsRegExp#flagsworkspace:*autoprefixerECMAScript 5patchreadablestreamwgetObject.valuesdependency managerminimalescallboundbannertypeoframdatoStringTagreduxlinewrapdeep-clonehasmacosjQueryiteratordeepcloneless.jspromisefseventsstartertoSorteddeepquerydom-testing-libraryviewstatelesstapHyBitypedES2018syntaxerrorshamassertsstreamsSymbol.toStringTagstatusmkdirsUint16ArraydotenvdataViewequalityReflect.getPrototypeOfregexObject.definePropertytrimLefttextJSONauthqslibphonenumbersettingsmakelinuxnodeUnderscoreoffsettoobjecthookformframercompilerwatchingloadingflatMaplinkeventDispatcherObject.entriesdomTypeScriptprotobufmake dircommanderFloat64ArraystartserializekarmapureObject.getPrototypeOfcomputed-typesoperating-systemfixed-widthECMAScript 2015inputhandlersES5react animationexecutableoptimistweaksetcss nestingECMAScript 6npmurlsiginttypanionRegExp.prototype.flagsoptionincludestc39setImmediatewaittermmiddlewaregenericsvalidationsetPrototypeOfStyleSheetjsonpathtoArrayWeakMapbatchtypesECMAScript 3less compilerobjectlastperformancewrapemitcommandrequiresharedarraybufferes2018waapiES2019consoletraversetacitcode pointscryptnegative zerodependenciesmulti-packagedeterministicpathinterruptsjavascriptformaccessibilityURLSearchParamsfigletxtermnopeObservabledescriptorsuperagentdayjsparsesyntaxmimeextensiontrimEndfantasy-landcurljson-schema-validatorawaitcharacter0hooksdatachromereact-testing-libraryrobustArray.prototype.includesfullwidthdescriptionhelpers@@toStringTaglength$.extendgetmimetypescolumnsserializerreusefunctionsmatchestddless mixinses7findassignanimationeverycjkcharactersstyleguidehasOwnObject.fromEntriesBigUint64Arrayrm -frelectronnodejsconcattypedarrayreact posekoreanequales2017eventsES2017moduleexecvaliddefinePropertyjestsomejsxpropflattendeletees-abstractjsonschemafsstylingshimthree
1.0.0

13 days ago