• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mongodb-js / devtools-shared / 15214103202

23 May 2025 03:41PM CUT coverage: 72.383%. Remained the same
15214103202

Pull #541

github

lerouxb
make shell-api a peer dep
Pull Request #541: chore: make shell-api a peer dep

1478 of 2319 branches covered (63.73%)

Branch coverage included in aggregate %.

3203 of 4148 relevant lines covered (77.22%)

592.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

7.14
/packages/monorepo-tools/src/utils/semver-helpers.ts
1
import semver from 'semver';
1✔
2

3
export function intersects(range: string[]) {
1✔
4
  for (const [idx, v1] of Object.entries(range)) {
×
5
    for (const v2 of range.slice(Number(idx) + 1)) {
×
6
      try {
×
7
        if (!semver.intersects(v1, v2)) {
×
8
          return false;
×
9
        }
10
      } catch (e) {
11
        return false;
×
12
      }
13
    }
14
  }
15
  return true;
×
16
}
17

18
export function calculateReplacements(ranges: string[]): Map<string, string> {
1✔
19
  const replacements = new Map();
×
20
  const highestRange = getHighestRange(ranges);
×
21

22
  for (const range of ranges) {
×
23
    try {
×
24
      if (semver.subset(highestRange ?? '', range)) {
×
25
        replacements.set(range, highestRange);
×
26
      }
27
    } catch (e) {
28
      // Range is probably not valid, let's proceed as if there is no
29
      // replacement for it
30
    }
31
  }
32

33
  return replacements;
×
34
}
35

36
export function getHighestRange(ranges: string[]): string | null {
1✔
37
  const validRanges = ranges.filter(
×
38
    (range) => semver.validRange(range) && range !== '*',
×
39
  );
40

41
  const sortedRanges = validRanges.sort((v1, v2) => {
×
42
    const res = semver.compare(
×
43
      semver.minVersion(v2) ?? '',
×
44
      semver.minVersion(v1) ?? '',
×
45
    );
46

47
    if (res === 1 || res === -1) {
×
48
      return res;
×
49
    }
50

51
    if (semver.valid(v1) && !semver.valid(v2)) {
×
52
      return 1;
×
53
    }
54

55
    if (!semver.valid(v1) && semver.valid(v2)) {
×
56
      return -1;
×
57
    }
58

59
    return 0;
×
60
  });
61

62
  return sortedRanges[0] || null;
×
63
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc