@lage-run/cli 0.16.5 → 0.16.6

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.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,22 @@
2
2
  "name": "@lage-run/cli",
3
3
  "entries": [
4
4
  {
5
- "date": "Thu, 21 Dec 2023 09:48:33 GMT",
5
+ "date": "Mon, 26 Feb 2024 16:18:42 GMT",
6
+ "version": "0.16.6",
7
+ "tag": "@lage-run/cli_v0.16.6",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "sverre.johansen@gmail.com",
12
+ "package": "@lage-run/cli",
13
+ "commit": "9346c9d5b06973485c23cd3269228f91b0d79cbb",
14
+ "comment": "Fix undefined dependencies in info output"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Thu, 21 Dec 2023 09:49:09 GMT",
6
21
  "version": "0.16.5",
7
22
  "tag": "@lage-run/cli_v0.16.5",
8
23
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
1
  # Change Log - @lage-run/cli
2
2
 
3
- This log was last generated on Thu, 21 Dec 2023 09:48:33 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 26 Feb 2024 16:18:42 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.16.6
8
+
9
+ Mon, 26 Feb 2024 16:18:42 GMT
10
+
11
+ ### Patches
12
+
13
+ - Fix undefined dependencies in info output (sverre.johansen@gmail.com)
14
+
7
15
  ## 0.16.5
8
16
 
9
- Thu, 21 Dec 2023 09:48:33 GMT
17
+ Thu, 21 Dec 2023 09:49:09 GMT
10
18
 
11
19
  ### Patches
12
20
 
@@ -76,13 +76,12 @@ function prepareAndGetFilteredPackages(config, logger, root, options, packageInf
76
76
  }
77
77
  function processTargets(targets, packageInfos, config) {
78
78
  const packageTasks = new Map(); // Initialize the map with the correct type
79
+ const dependenciesCache = new Map();
79
80
  for (const target of targets.values()){
80
81
  if (shouldSkipTarget(target, packageInfos)) {
81
82
  continue;
82
83
  }
83
- const startIdIndex = target.dependencies.indexOf((0, _targetgraph.getStartTargetId)());
84
- target.dependencies.splice(startIdIndex, 1);
85
- const packageTask = generatePackageTask(target, config);
84
+ const packageTask = generatePackageTask(target, targets, packageInfos, dependenciesCache, config);
86
85
  if (packageTask) {
87
86
  // Check if the packageTask is defined before accessing its properties
88
87
  const packageName = packageTask.package;
@@ -94,22 +93,48 @@ function processTargets(targets, packageInfos, config) {
94
93
  }
95
94
  return packageTasks;
96
95
  }
96
+ function isTargetNoop(target, packageInfos) {
97
+ return !packageInfos[target.packageName]?.scripts?.[target.task];
98
+ }
97
99
  function shouldSkipTarget(target, packageInfos) {
98
- return target.id === (0, _targetgraph.getStartTargetId)() || !packageInfos[target.packageName ?? ""]?.scripts?.[target.task];
100
+ return target.id === (0, _targetgraph.getStartTargetId)() || isTargetNoop(target, packageInfos);
99
101
  }
100
- function generatePackageTask(target, config) {
102
+ function generatePackageTask(target, targets, packageInfos, dependenciesCache, config) {
101
103
  const command = generateCommand(target, config);
102
104
  const workingDirectory = getWorkingDirectory(target);
105
+ const dependenciesSet = resolveDependencies(target.dependencies, targets, packageInfos, dependenciesCache);
103
106
  const packageTask = {
104
107
  id: target.id,
105
108
  command,
106
- dependencies: target.dependencies,
109
+ dependencies: [
110
+ ...dependenciesSet
111
+ ],
107
112
  workingDirectory,
108
113
  package: target.packageName,
109
114
  task: target.task
110
115
  };
111
116
  return packageTask;
112
117
  }
118
+ function resolveDependencies(dependencies, targets, packageInfos, dependenciesCache) {
119
+ const result = new Set();
120
+ for (const dependency of dependencies){
121
+ if (dependency === (0, _targetgraph.getStartTargetId)()) {
122
+ continue;
123
+ }
124
+ if (!dependenciesCache.has(dependency)) {
125
+ const dependencyTarget = targets.get(dependency);
126
+ if (isTargetNoop(dependencyTarget, packageInfos)) {
127
+ dependenciesCache.set(dependency, resolveDependencies(dependencyTarget.dependencies, targets, packageInfos, dependenciesCache));
128
+ } else {
129
+ dependenciesCache.set(dependency, new Set([
130
+ dependency
131
+ ]));
132
+ }
133
+ }
134
+ dependenciesCache.get(dependency)?.forEach((dependency)=>result.add(dependency));
135
+ }
136
+ return result;
137
+ }
113
138
  function generateCommand(target, config) {
114
139
  const npmClient = config.npmClient ?? "npm";
115
140
  const command = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lage-run/cli",
3
- "version": "0.16.5",
3
+ "version": "0.16.6",
4
4
  "description": "Command Line Interface for Lage",
5
5
  "repository": {
6
6
  "type": "git",