all files / src/imageLoader/wadors/ findIndexOfString.js

0% Statements 0/18
0% Branches 0/10
0% Functions 0/3
0% Lines 0/18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46                                                                                           
function checkToken (token, data, dataOffset) {
 
  if (dataOffset + token.length > data.length) {
    return false;
  }
 
  let endIndex = dataOffset;
 
  for (let i = 0; i < token.length; i++) {
    if (token[i] !== data[endIndex++]) {
      return false;
    }
  }
 
  return true;
}
 
function stringToUint8Array (str) {
  const uint = new Uint8Array(str.length);
 
  for (let i = 0, j = str.length; i < j; i++) {
    uint[i] = str.charCodeAt(i);
  }
 
  return uint;
}
 
function findIndexOfString (data, str, offset) {
 
  offset = offset || 0;
 
  const token = stringToUint8Array(str);
 
  for (let i = offset; i < data.length; i++) {
    if (token[0] === data[i]) {
      // console.log('match @', i);
      if (checkToken(token, data, i)) {
        return i;
      }
    }
  }
 
  return -1;
}
export default findIndexOfString;