1.0.0 • Published 1 year ago

@lambrioanpm/dolorem-eius-doloribus v1.0.0

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

ES2018ES2021spinnersqueryInt32Arrayfast-clonehttpsbindebsObject.getPrototypeOfpackage managersnsutilitieserrorrdspushclientdomArray.prototype.flatMapguidArrayBuffercloudfronturldefinecss variablegetoptmergeinkeysyntaxstringifiertrimEndespreecryptooptimistnpmbootstrap cssconcatloggerconfigurablelimitedenumerableES2015symbolsencryptionsetless.jspromisekarmabeanstalksearchmetadatashimprototypeupvestprivate dataconcatMaptimestarterlint.envlessdatastructurewrapimmutabletaskvariables in cssRegExp#flagscircularshelles2017connecthigher-orderduplexresolveflattenArray.prototype.filtermatchAllsqsfind-upweaksetobjtermdataqslook-upArrayBuffer.prototype.slicenegative zerosharedarraybuffernodeArray.prototype.containsObject.definePropertyiefullMicrosoftboundbrowserslistpropertiesInt16Arraypackagesnopedeleterfc4122bytelibphonenumbereslintconfigcollection.es6watchkeyssyntaxerrorECMAScript 2018commandervaluetyped arraydescriptorsproxycolordescriptorutil.inspectmoduletestingmochapathansifastifyfsbannercryptpreprocessorpostcss-pluginmkdirslazyroutingchannelclassnamesglobutilfindUint32ArraycliperformanceObject.isdescriptioncompilerreact-testing-libraryES2023forEachcall-bindequalitytsjwttypeofinternal slotcloudwatchfindupjasminetypesafecreatepropintrinsiccoerciblees8ECMAScript 2017jsdomECMAScript 2015callnodejsfetchttymodulesargparsereplaybyteOffsetrangeerrorjapanesehasreduxzodinputvisualjsonreducecore-jsbluebirdjoiprettyscheme-validationeslint-plugindayjsECMAScript 2019$.extendrequireprotobufJSON-SchemamixinsIteratorqueueInt8ArraytrimsuperagentUint16ArraythrottleidvariablesphonestylesheetrandomStreamartmonorepoflagsuninstallES5batchcharactersECMAScript 3negativeObject.assignnumberregular expressionarrayshookselbReactiveExtensionsobjectajaxpicomatchhelpersargvtostringtagfullwidthflagschemetakeES2017preserve-symlinkscharacterloggingESnextassertwritableserializeastbuffersesdefinePropertyfast-deep-copyopenisConcatSpreadablebddperformantObject.valuesworkspace:*speedArray.prototype.flatteniteratereadablestreamjswaitconsoleio-tsclonecacheajvcensorendpointstyleslimitairbnbsymlinksmkdirarraybufferredacts3browserlistcloudtrailstreamPushshrinkwrapgetPrototypeOfless mixinsfseventsWeakSetlastterminalextrastructuredClonematchformatexpressiones2015findLastreactES8WebSocketemrMaptoArrayiteratoremitinstallerstatelesssliceflatfiltertoSortedownredirecteventDispatcherlookecmascripttddtouchstylinginferencechromeoffsetfpsassignbyteLengthrateponyfillgetintrinsiccallbackcodescollectionhas-ownfile systemtesttoobjectautoscalingnested cssroutejestwalklrufast-copyECMAScript 2022eventsECMAScript 6expressdatefunctiondataviewsymbolzerodeepminimalfunctionalReflect.getPrototypeOfratelimitmapclassnameReactiveXsettersomecommandawaititerationlistenersfolderpruneparsenametsliblinkcheckECMAScript 7rm -frpnpm9AsyncIteratorPromisemimeavaeslintlivefileES2022BigUint64Arrayclass-validatorloadbalancingelasticacheclassesES2019l10nhasOwnPropertymkdirpmake dirkinesisidletraversewalkingdirstdlibmimetypeswatchFilecompareserializationcjktypesUint8ClampedArraybrowserreact-hook-formECMAScript 2016regularqueueMicrotaskprogressSetSymbol.toStringTagtelephoneTypeScript0configquerystringWeakMapspinnerlinewrappredictableWebSocketsgeteveryec2statefromstoragegatewayinspectsameValueZerorm -rfrequestpositivesortedi18nmrucomputed-typeseast-asian-widthrgbwarningapitoolsUint8ArraybcryptmiddlewareString.prototype.matchAllgetOwnPropertyDescriptoroptimizerequalcolorscss lessworkertapObjectentriesasynces7immeremojienvamazongroupcontainsECMAScript 2021mapreducedeep-clonesidewordwraprmdiromitTypeBoxcurlFunction.prototype.namecolourgradients csstypedvpclanguagesetImmediatestyledataViewJSONconsumenativediffxhrstyled-componentsbundlinghotreusecss-in-jstypeerrortypedarrayvaluesconcurrencyoption@@toStringTagdom-testing-librarycallboundBigInt64ArraytrimLeftschemaes-shim APIstringifyjsxdotenvdebugruntimewritermArray.prototype.includes256ES2016Object.keysstringimport__proto__settingsflatMaponcestreams2fast-deep-clonemime-dbpipesuperstructmakepackage.jsonslotenvironmentimportexportFloat32Arraycommand-linefigletjsonpathtrimRightesStreamsreducerwhichreal-timewafsafees6compile lessCSSshareddeep-copyparentsform-validationparserlesscsspolyfillefficientbusyawsUnderscorepromiseselectronmatchesassertionaccessibilityformmovetypedarraysformattingchromiumawesomesaucearraypropertylogdeterministicroute53multi-packagevalides2016xtermjsdifffunctionsreadcopyremovefixed-widthtesterdebuggerregexpauthenticationoutputES6whatwg[[Prototype]]symlinkredux-toolkitArray.prototype.findLastIndexdeepcloneArray.prototype.findLastdynamodbincludescoreelmworkflowstyleguideises-abstractwatcherreadableescapeweakmapglacierprotolengthES7es2018ObservablespluginapolloTypedArraydependenciesFloat64ArrayregexhasOwnaccessorshameventEmitterextensionlocationprefixrobustreact-hooksspeccloudsearchbundlerArraya11yswfagent-0webbreakECMAScript 5mobileextendautoprefixerhookformhttpfastfastcopyiamtc39columnHyBiassertsshebangtypescriptarktypeCSSStyleDeclarationpackagetextpostcssfluxwordbreakauthgetterlockfileinstallenderargumentutilitystableES2020asciitypanionindicatorformsArray.prototype.flatinvariantdroptoStringTagrapides5fastclonequotejavascriptObservablewidthgdprfindLastIndexthroat_.extendgradients css3code pointsRegExp.prototype.flagscallbindchaiexecstreamsuuidECMAScript 2020watchingparentpasswordURLRxSymbolviewless cssrecursivenamescorshardlinkschinesees-shimsESbuffersprivateestreetapeprotocol-buffersargscall-boundsequencebootstrap lessless compilergenericstrimStartgraphqlgroupByRFC-6455yupURLSearchParamsunicodeES3koreaneslintpluginECMAScript 2023Object.fromEntriesYAMLvalidationRxJS
1.0.0

1 year ago