All files match-star.ts

80% Statements 12/15
70% Branches 7/10
100% Functions 1/1
80% Lines 12/15
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          1x 14x     14x 3x   11x 11x     11x 11x 11x 1x   10x     10x      
/**
 * Matches pattern with a single star against search.
 * Star must match at least one character to be considered a match.
 * @returns the part of search that * matches, or undefined if no match.
 */
export function matchStar(pattern: string, search: string): string | undefined {
  Iif (search.length < pattern.length) {
    return undefined
  }
  if (pattern === '*') {
    return search
  }
  const star = pattern.indexOf('*');
  Iif (star === -1) {
    return undefined
  }
  const part1 = pattern.substring(0, star);
  const part2 = pattern.substring(star + 1);
  if (search.substr(0, star) !== part1) {
    return undefined
  }
  Iif (search.substr(search.length - part2.length) !== part2) {
    return undefined
  }
  return search.substr(star, search.length - part2.length)
}