UNPKG

next

Version:

The React Framework

69 lines (68 loc) 2.04 kB
/** * Find the starting index of Uint8Array `b` within Uint8Array `a`. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { indexOfUint8Array: null, isEquivalentUint8Arrays: null, removeFromUint8Array: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { indexOfUint8Array: function() { return indexOfUint8Array; }, isEquivalentUint8Arrays: function() { return isEquivalentUint8Arrays; }, removeFromUint8Array: function() { return removeFromUint8Array; } }); function indexOfUint8Array(a, b) { if (b.length === 0) return 0; if (a.length === 0 || b.length > a.length) return -1; // start iterating through `a` for(let i = 0; i <= a.length - b.length; i++){ let completeMatch = true; // from index `i`, iterate through `b` and check for mismatch for(let j = 0; j < b.length; j++){ // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`. if (a[i + j] !== b[j]) { completeMatch = false; break; } } if (completeMatch) { return i; } } return -1; } function isEquivalentUint8Arrays(a, b) { if (a.length !== b.length) return false; for(let i = 0; i < a.length; i++){ if (a[i] !== b[i]) return false; } return true; } function removeFromUint8Array(a, b) { const tagIndex = indexOfUint8Array(a, b); if (tagIndex === 0) return a.subarray(b.length); if (tagIndex > -1) { const removed = new Uint8Array(a.length - b.length); removed.set(a.slice(0, tagIndex)); removed.set(a.slice(tagIndex + b.length), tagIndex); return removed; } else { return a; } } //# sourceMappingURL=uint8array-helpers.js.map