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

mongodb-js / devtools-shared / 14333329172

08 Apr 2025 12:19PM CUT coverage: 72.194%. First build
14333329172

Pull #526

github

lerouxb
reformat unrelated code
Pull Request #526: fix(mongodb-cloud-info): if the host's IP is not in a cloud's range, check if the CNAME resolves to AWS. COMPASS-8932

1444 of 2269 branches covered (63.64%)

Branch coverage included in aggregate %.

9 of 9 new or added lines in 1 file covered. (100.0%)

3071 of 3985 relevant lines covered (77.06%)

636.56 hits per line

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

11.11
/packages/monorepo-tools/src/utils/workspace-dependencies.ts
1
import path from 'path';
1✔
2
import type { PackageInfo } from './get-packages-in-topological-order';
3
import { getPackagesInTopologicalOrder } from './get-packages-in-topological-order';
1✔
4
import { findMonorepoRoot } from './find-monorepo-root';
1✔
5

6
export type DepType = 'prod' | 'dev' | 'optional' | 'peer';
7

8
export async function collectWorkspacesMeta() {
1✔
9
  const monorepoRoot = await findMonorepoRoot();
×
10
  const workspaces: Pick<PackageInfo, 'location'>[] =
11
    await getPackagesInTopologicalOrder(monorepoRoot);
×
12

13
  return new Map(
×
14
    workspaces
15
      .concat({ location: monorepoRoot })
16
      .map(({ location }) => [
×
17
        location,
18
        { ...require(path.join(location, 'package.json')), location },
19
      ]),
20
  );
21
}
22

23
function getDepType(
24
  dependency: string,
25
  version: string,
26
  pkgJson: Record<string, any>,
27
): DepType | null {
28
  return pkgJson.devDependencies &&
×
29
    pkgJson.devDependencies[dependency] === version
30
    ? 'dev'
31
    : pkgJson.peerDependencies &&
×
32
        pkgJson.peerDependencies[dependency] === version
33
      ? 'peer'
34
      : pkgJson.optionalDependencies &&
×
35
          pkgJson.optionalDependencies[dependency] === version
36
        ? 'optional'
37
        : pkgJson.dependencies && pkgJson.dependencies[dependency] === version
×
38
          ? 'prod'
39
          : null;
40
}
41

42
export type WorkspaceDependencyInfo = {
43
  version: string;
44
  from: string;
45
  workspace: string;
46
  type: DepType;
47
};
48
export function collectWorkspacesDependencies(
1✔
49
  workspaces: Map<
50
    string,
51
    {
52
      dependencies?: any;
53
      devDependencies?: any;
54
      peerDependencies?: any;
55
      optionalDependencies?: any;
56
      name: string;
57
    }
58
  >,
59
) {
60
  const dependencies = new Map<string, WorkspaceDependencyInfo[]>();
×
61

62
  for (const [location, pkgJson] of workspaces) {
×
63
    for (const [dependency, versionRange] of [
×
64
      ...Object.entries(pkgJson.dependencies || {}),
×
65
      ...Object.entries(pkgJson.devDependencies || {}),
×
66
      ...filterOutStarDeps(Object.entries(pkgJson.peerDependencies || {})),
×
67
      ...filterOutStarDeps(Object.entries(pkgJson.optionalDependencies || {})),
×
68
    ]) {
69
      const item = {
×
70
        version: versionRange as string,
71
        workspace: pkgJson.name,
72
        from: location,
73
        type: getDepType(dependency, versionRange as string, pkgJson)!,
74
      };
75

76
      if (dependencies.has(dependency)) {
×
77
        dependencies.get(dependency)!.push(item);
×
78
      } else {
79
        dependencies.set(dependency, [item]);
×
80
      }
81
    }
82
  }
83

84
  return dependencies;
×
85
}
86

87
function filterOutStarDeps(entries: [string, string][]) {
88
  return entries.filter(([, v]) => v !== '*');
×
89
}
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