monorepo-next 9.2.2 → 9.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/cycle.js +29 -18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monorepo-next",
3
- "version": "9.2.2",
3
+ "version": "9.2.3",
4
4
  "description": "Detach monorepo packages from normal linking",
5
5
  "bin": {
6
6
  "next": "bin/next.js"
package/src/cycle.js CHANGED
@@ -13,29 +13,34 @@ function _getCycles({
13
13
  shouldDetectDevDependencies,
14
14
  }) {
15
15
  let { packageName } = _package;
16
+ let cycleTips = new Set();
16
17
 
17
18
  let hasVisitedNode = visitedNodes.has(packageName);
18
19
 
19
20
  if (hasVisitedNode) {
20
- let isCycle = branch.has(packageName);
21
+ return cycleTips;
22
+ }
21
23
 
22
- if (isCycle) {
23
- let existingGroup = {
24
- dependencyType,
25
- dependencyRange,
26
- packageName,
27
- };
24
+ let isCycle = branch.has(packageName);
28
25
 
29
- let newBranch = [...[...branch.values()].slice([...branch.keys()].indexOf(packageName)), existingGroup];
26
+ if (isCycle) {
27
+ let existingGroup = {
28
+ dependencyType,
29
+ dependencyRange,
30
+ packageName,
31
+ };
30
32
 
31
- let cycle = newBranch.map(({ dependencyType, packageName }) => {
32
- return [dependencyType, packageName];
33
- });
33
+ let newBranch = [...[...branch.values()].slice([...branch.keys()].indexOf(packageName)), existingGroup];
34
34
 
35
- cycles.add(cycle.flat().slice(1).join(' < '));
36
- }
35
+ let cycle = newBranch.map(({ dependencyType, packageName }) => {
36
+ return [dependencyType, packageName];
37
+ });
38
+
39
+ cycles.add(cycle.flat().slice(1).join(' < '));
37
40
 
38
- return;
41
+ cycleTips.add(packageName);
42
+
43
+ return cycleTips;
39
44
  }
40
45
 
41
46
  let newGroup = {
@@ -46,8 +51,6 @@ function _getCycles({
46
51
 
47
52
  let newBranch = new Map([...branch, [packageName, newGroup]]);
48
53
 
49
- visitedNodes.add(packageName);
50
-
51
54
  for (let dependencyType of dependencyTypes) {
52
55
  if (!shouldDetectDevDependencies && dependencyType === 'devDependencies') {
53
56
  continue;
@@ -59,7 +62,7 @@ function _getCycles({
59
62
  let dependencyRange = dependencies[packageName];
60
63
  let _package = packages[packageName];
61
64
 
62
- _getCycles({
65
+ cycleTips = new Set([...cycleTips, ..._getCycles({
63
66
  packages,
64
67
  _package,
65
68
  dependencyType,
@@ -68,9 +71,17 @@ function _getCycles({
68
71
  visitedNodes,
69
72
  cycles,
70
73
  shouldDetectDevDependencies,
71
- });
74
+ })]);
72
75
  }
73
76
  }
77
+
78
+ cycleTips.delete(packageName);
79
+
80
+ if (!cycleTips.size) {
81
+ visitedNodes.add(packageName);
82
+ }
83
+
84
+ return cycleTips;
74
85
  }
75
86
 
76
87
  function getCycles(workspaceMeta, {