@nrwl/workspace 13.4.5 → 13.5.0-beta.2

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 (159) hide show
  1. package/README.md +3 -144
  2. package/package.json +5 -7
  3. package/src/command-line/affected.js +5 -5
  4. package/src/command-line/affected.js.map +1 -1
  5. package/src/command-line/daemon.js +7 -3
  6. package/src/command-line/daemon.js.map +1 -1
  7. package/src/command-line/dep-graph.js +13 -10
  8. package/src/command-line/dep-graph.js.map +1 -1
  9. package/src/command-line/format.js +13 -14
  10. package/src/command-line/format.js.map +1 -1
  11. package/src/command-line/nx-commands.js +1 -1
  12. package/src/command-line/nx-commands.js.map +1 -1
  13. package/src/command-line/reset.d.ts +1 -1
  14. package/src/command-line/reset.js +8 -12
  15. package/src/command-line/reset.js.map +1 -1
  16. package/src/command-line/run-many.js +2 -2
  17. package/src/command-line/run-many.js.map +1 -1
  18. package/src/command-line/run-one.js +2 -2
  19. package/src/command-line/run-one.js.map +1 -1
  20. package/src/core/affected-project-graph/locators/tsconfig-json-changes.js +8 -10
  21. package/src/core/affected-project-graph/locators/tsconfig-json-changes.js.map +1 -1
  22. package/src/core/dep-graph/3rdpartylicenses.txt +89 -7
  23. package/src/core/dep-graph/main.esm.js +1 -1
  24. package/src/core/dep-graph/main.esm.js.LICENSE.txt +0 -36
  25. package/src/core/dep-graph/styles.css +3 -1
  26. package/src/core/file-map-utils.d.ts +10 -0
  27. package/src/core/file-map-utils.js +80 -0
  28. package/src/core/file-map-utils.js.map +1 -0
  29. package/src/core/file-utils.d.ts +4 -16
  30. package/src/core/file-utils.js +17 -203
  31. package/src/core/file-utils.js.map +1 -1
  32. package/src/core/hasher/file-hasher-base.d.ts +12 -0
  33. package/src/core/hasher/file-hasher-base.js +66 -0
  34. package/src/core/hasher/file-hasher-base.js.map +1 -0
  35. package/src/core/hasher/file-hasher.d.ts +2 -24
  36. package/src/core/hasher/file-hasher.js +12 -86
  37. package/src/core/hasher/file-hasher.js.map +1 -1
  38. package/src/core/hasher/git-based-file-hasher.d.ts +10 -0
  39. package/src/core/hasher/git-based-file-hasher.js +50 -0
  40. package/src/core/hasher/git-based-file-hasher.js.map +1 -0
  41. package/src/core/hasher/git-hasher.d.ts +6 -24
  42. package/src/core/hasher/git-hasher.js +89 -147
  43. package/src/core/hasher/git-hasher.js.map +1 -1
  44. package/src/core/hasher/hasher.js +1 -0
  45. package/src/core/hasher/hasher.js.map +1 -1
  46. package/src/core/hasher/node-based-file-hasher.d.ts +7 -0
  47. package/src/core/hasher/node-based-file-hasher.js +78 -0
  48. package/src/core/hasher/node-based-file-hasher.js.map +1 -0
  49. package/src/core/nx-deps/nx-deps-cache.d.ts +0 -1
  50. package/src/core/nx-deps/nx-deps-cache.js +7 -9
  51. package/src/core/nx-deps/nx-deps-cache.js.map +1 -1
  52. package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.d.ts +2 -2
  53. package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.js.map +1 -1
  54. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +2 -2
  55. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js +2 -0
  56. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js.map +1 -1
  57. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.d.ts +2 -2
  58. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js +1 -0
  59. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js.map +1 -1
  60. package/src/core/project-graph/build-dependencies/typescript-import-locator.d.ts +2 -1
  61. package/src/core/project-graph/build-dependencies/typescript-import-locator.js +5 -1
  62. package/src/core/project-graph/build-dependencies/typescript-import-locator.js.map +1 -1
  63. package/src/core/project-graph/build-project-graph.js +5 -3
  64. package/src/core/project-graph/build-project-graph.js.map +1 -1
  65. package/src/core/project-graph/daemon/client/client.js +8 -3
  66. package/src/core/project-graph/daemon/client/client.js.map +1 -1
  67. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.d.ts +0 -1
  68. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js +71 -61
  69. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js.map +1 -1
  70. package/src/core/project-graph/daemon/server/server.js +3 -1
  71. package/src/core/project-graph/daemon/server/server.js.map +1 -1
  72. package/src/core/project-graph/daemon/server/start.js +5 -2
  73. package/src/core/project-graph/daemon/server/start.js.map +1 -1
  74. package/src/core/project-graph/daemon/server/stop.js +5 -2
  75. package/src/core/project-graph/daemon/server/stop.js.map +1 -1
  76. package/src/core/project-graph/daemon/tmp-dir.d.ts +0 -4
  77. package/src/core/project-graph/daemon/tmp-dir.js +2 -45
  78. package/src/core/project-graph/daemon/tmp-dir.js.map +1 -1
  79. package/src/core/project-graph/operators.d.ts +0 -1
  80. package/src/core/project-graph/operators.js +1 -7
  81. package/src/core/project-graph/operators.js.map +1 -1
  82. package/src/core/project-graph/project-graph.js +2 -0
  83. package/src/core/project-graph/project-graph.js.map +1 -1
  84. package/src/core/target-project-locator.d.ts +2 -2
  85. package/src/core/target-project-locator.js +37 -23
  86. package/src/core/target-project-locator.js.map +1 -1
  87. package/src/generators/convert-to-nx-project/convert-to-nx-project.js +3 -1
  88. package/src/generators/convert-to-nx-project/convert-to-nx-project.js.map +1 -1
  89. package/src/generators/convert-to-nx-project/schema.d.ts +1 -0
  90. package/src/generators/convert-to-nx-project/schema.json +5 -0
  91. package/src/generators/init/files/prettier/__dot__prettierignore +1 -0
  92. package/src/generators/init/init.js +5 -1
  93. package/src/generators/init/init.js.map +1 -1
  94. package/src/generators/npm-package/npm-package.js +1 -0
  95. package/src/generators/npm-package/npm-package.js.map +1 -1
  96. package/src/generators/workspace/files/__workspaceFile__.json__tmpl__ +0 -5
  97. package/src/generators/workspace/files/package.json__tmpl__ +1 -1
  98. package/src/tasks-runner/cache.d.ts +2 -1
  99. package/src/tasks-runner/cache.js +10 -7
  100. package/src/tasks-runner/cache.js.map +1 -1
  101. package/src/tasks-runner/forked-process-task-runner.js +6 -6
  102. package/src/tasks-runner/forked-process-task-runner.js.map +1 -1
  103. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +22 -0
  104. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +334 -0
  105. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js.map +1 -0
  106. package/src/tasks-runner/{empty-terminal-output-life-cycle.d.ts → life-cycles/empty-terminal-output-life-cycle.d.ts} +2 -2
  107. package/src/tasks-runner/{empty-terminal-output-life-cycle.js → life-cycles/empty-terminal-output-life-cycle.js} +3 -3
  108. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js.map +1 -0
  109. package/src/tasks-runner/{neo-output → life-cycles}/pretty-time.d.ts +0 -0
  110. package/src/tasks-runner/{neo-output → life-cycles}/pretty-time.js +0 -0
  111. package/src/tasks-runner/life-cycles/pretty-time.js.map +1 -0
  112. package/src/tasks-runner/{run-many-terminal-output-life-cycle.d.ts → life-cycles/static-run-many-terminal-output-life-cycle.d.ts} +12 -4
  113. package/src/tasks-runner/{run-many-terminal-output-life-cycle.js → life-cycles/static-run-many-terminal-output-life-cycle.js} +28 -15
  114. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js.map +1 -0
  115. package/src/tasks-runner/{run-one-terminal-output-life-cycle.d.ts → life-cycles/static-run-one-terminal-output-life-cycle.d.ts} +12 -4
  116. package/src/tasks-runner/{run-one-terminal-output-life-cycle.js → life-cycles/static-run-one-terminal-output-life-cycle.js} +26 -14
  117. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js.map +1 -0
  118. package/src/tasks-runner/{task-timings-life-cycle.d.ts → life-cycles/task-profiling-life-cycle.d.ts} +4 -5
  119. package/src/tasks-runner/{task-timings-life-cycle.js → life-cycles/task-profiling-life-cycle.js} +10 -29
  120. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js.map +1 -0
  121. package/src/tasks-runner/life-cycles/task-timings-life-cycle.d.ts +13 -0
  122. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js +33 -0
  123. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js.map +1 -0
  124. package/src/tasks-runner/run-command.js +18 -13
  125. package/src/tasks-runner/run-command.js.map +1 -1
  126. package/src/tasks-runner/task-orchestrator.js +18 -7
  127. package/src/tasks-runner/task-orchestrator.js.map +1 -1
  128. package/src/tasks-runner/tasks-runner-v2.js +3 -1
  129. package/src/tasks-runner/tasks-runner-v2.js.map +1 -1
  130. package/src/tasks-runner/tasks-runner.d.ts +1 -1
  131. package/src/utilities/cache-directory.d.ts +1 -2
  132. package/src/utilities/cache-directory.js +3 -3
  133. package/src/utilities/cache-directory.js.map +1 -1
  134. package/src/utilities/is_ci.js +1 -0
  135. package/src/utilities/is_ci.js.map +1 -1
  136. package/src/utilities/output.d.ts +13 -5
  137. package/src/utilities/output.js +55 -34
  138. package/src/utilities/output.js.map +1 -1
  139. package/src/utilities/perf-logging.js +4 -3
  140. package/src/utilities/perf-logging.js.map +1 -1
  141. package/src/utils/ast-utils.js.map +1 -1
  142. package/src/utils/graph-utils.js +2 -1
  143. package/src/utils/graph-utils.js.map +1 -1
  144. package/src/utils/perf-logging.js +1 -1
  145. package/src/utils/perf-logging.js.map +1 -1
  146. package/src/utils/rules/visit-not-ignored-files.js.map +1 -1
  147. package/src/utils/runtime-lint-utils.js.map +1 -1
  148. package/src/utils/versions.js +1 -1
  149. package/src/core/hasher/spawn-process.d.ts +0 -6
  150. package/src/core/hasher/spawn-process.js +0 -27
  151. package/src/core/hasher/spawn-process.js.map +0 -1
  152. package/src/tasks-runner/empty-terminal-output-life-cycle.js.map +0 -1
  153. package/src/tasks-runner/neo-output/pretty-time.js.map +0 -1
  154. package/src/tasks-runner/neo-output/render.d.ts +0 -13
  155. package/src/tasks-runner/neo-output/render.js +0 -244
  156. package/src/tasks-runner/neo-output/render.js.map +0 -1
  157. package/src/tasks-runner/run-many-terminal-output-life-cycle.js.map +0 -1
  158. package/src/tasks-runner/run-one-terminal-output-life-cycle.js.map +0 -1
  159. package/src/tasks-runner/task-timings-life-cycle.js.map +0 -1
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDynamicOutputRenderer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const cli_spinners_1 = require("cli-spinners");
6
+ const os_1 = require("os");
7
+ const readline = require("readline");
8
+ const output_1 = require("../../utilities/output");
9
+ const pretty_time_1 = require("./pretty-time");
10
+ /**
11
+ * The following function is responsible for creating a life cycle with dynamic
12
+ * outputs, meaning previous outputs can be rewritten or modified as new outputs
13
+ * are added. It is therefore intended for use on a user's local machines.
14
+ *
15
+ * In CI environments the static equivalent of this life cycle should be used.
16
+ */
17
+ function createDynamicOutputRenderer({ projectNames, tasks, args, overrides, }) {
18
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
19
+ let resolveRenderIsDonePromise;
20
+ const renderIsDone = new Promise((resolve) => (resolveRenderIsDonePromise = resolve)).then(() => clearRenderInterval());
21
+ function clearRenderInterval() {
22
+ if (renderProjectRowsIntervalId) {
23
+ clearInterval(renderProjectRowsIntervalId);
24
+ }
25
+ }
26
+ function teardown() {
27
+ clearRenderInterval();
28
+ if (resolveRenderIsDonePromise) {
29
+ resolveRenderIsDonePromise();
30
+ }
31
+ }
32
+ process.on('exit', () => teardown());
33
+ process.on('SIGINT', () => teardown());
34
+ process.on('unhandledRejection', () => teardown());
35
+ process.on('uncaughtException', () => teardown());
36
+ const lifeCycle = {};
37
+ const isVerbose = overrides.verbose === true;
38
+ const start = process.hrtime();
39
+ const figures = yield Promise.resolve().then(() => require('figures'));
40
+ const totalTasks = tasks.length;
41
+ const totalProjects = projectNames.length;
42
+ const totalDependentTasks = totalTasks - totalProjects;
43
+ const targetName = args.target;
44
+ const projectRows = projectNames.map((projectName) => {
45
+ return {
46
+ projectName,
47
+ status: 'pending',
48
+ };
49
+ });
50
+ const tasksToTerminalOutputs = {};
51
+ const tasksToProcessStartTimes = {};
52
+ let hasTaskOutput = false;
53
+ let pinnedFooterNumLines = 0;
54
+ let totalCompletedTasks = 0;
55
+ let totalSuccessfulTasks = 0;
56
+ let totalFailedTasks = 0;
57
+ let totalCachedTasks = 0;
58
+ // Used to control the rendering of the spinner on each project row
59
+ let projectRowsCurrentFrame = 0;
60
+ let renderProjectRowsIntervalId;
61
+ const clearPinnedFooter = () => {
62
+ for (let i = 0; i < pinnedFooterNumLines; i++) {
63
+ readline.moveCursor(process.stdout, 0, -1);
64
+ readline.clearLine(process.stdout, 0);
65
+ }
66
+ };
67
+ const renderPinnedFooter = (lines, dividerColor = 'cyan') => {
68
+ let additionalLines = 0;
69
+ if (hasTaskOutput) {
70
+ output_1.output.addVerticalSeparator(dividerColor);
71
+ additionalLines += 3;
72
+ }
73
+ // Create vertical breathing room for cursor position under the pinned footer
74
+ lines.push('');
75
+ for (const line of lines) {
76
+ process.stdout.write(output_1.output.X_PADDING + line + os_1.EOL);
77
+ }
78
+ pinnedFooterNumLines = lines.length + additionalLines;
79
+ };
80
+ const printTaskResult = (task, status) => {
81
+ clearPinnedFooter();
82
+ // If this is the very first output, add some vertical breathing room
83
+ if (!hasTaskOutput) {
84
+ output_1.output.addNewline();
85
+ }
86
+ hasTaskOutput = true;
87
+ switch (status) {
88
+ case 'local-cache':
89
+ writeLine(`${output_1.output.colors.green(figures.tick) +
90
+ output_1.output.dim(' nx run ') +
91
+ task.id} ${output_1.output.colors.gray('[local cache]')}`);
92
+ if (isVerbose) {
93
+ writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
94
+ }
95
+ break;
96
+ case 'remote-cache':
97
+ writeLine(`${output_1.output.colors.green(figures.tick) +
98
+ output_1.output.dim(' nx run ') +
99
+ task.id} ${output_1.output.colors.gray('[remote cache]')}`);
100
+ if (isVerbose) {
101
+ writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
102
+ }
103
+ break;
104
+ case 'success': {
105
+ const timeTakenText = (0, pretty_time_1.prettyTime)(process.hrtime(tasksToProcessStartTimes[task.id]));
106
+ writeLine(output_1.output.colors.green(figures.tick) +
107
+ output_1.output.dim(' nx run ') +
108
+ task.id +
109
+ output_1.output.dim.gray(` (${timeTakenText})`));
110
+ if (isVerbose) {
111
+ writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
112
+ }
113
+ break;
114
+ }
115
+ case 'failure':
116
+ output_1.output.addNewline();
117
+ writeLine(output_1.output.colors.red(figures.cross) +
118
+ output_1.output.dim(' nx run ') +
119
+ output_1.output.colors.red(task.id));
120
+ writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
121
+ break;
122
+ }
123
+ delete tasksToTerminalOutputs[task.id];
124
+ renderPinnedFooter([]);
125
+ renderProjectRows();
126
+ };
127
+ const renderProjectRows = () => {
128
+ const max = cli_spinners_1.dots.frames.length - 1;
129
+ const curr = projectRowsCurrentFrame;
130
+ projectRowsCurrentFrame = curr >= max ? 0 : curr + 1;
131
+ const additionalFooterRows = [''];
132
+ const runningTasks = projectRows.filter((row) => row.status === 'running');
133
+ const remainingTasks = totalTasks - totalCompletedTasks;
134
+ if (runningTasks.length > 0) {
135
+ additionalFooterRows.push(output_1.output.dim(` ${output_1.output.colors.cyan(figures.arrowRight)} Executing ${runningTasks.length}/${remainingTasks} remaining tasks${runningTasks.length > 1 ? ' in parallel' : ''}...`));
136
+ additionalFooterRows.push('');
137
+ for (const projectRow of runningTasks) {
138
+ additionalFooterRows.push(` ${output_1.output.dim.cyan(cli_spinners_1.dots.frames[projectRowsCurrentFrame])} ${output_1.output.dim('nx run ') + projectRow.projectName + ':' + targetName}`);
139
+ }
140
+ /**
141
+ * Reduce layout thrashing by ensuring that there is a relatively consistent
142
+ * height for the area in which the task rows are rendered.
143
+ *
144
+ * We can look at the parallel flag to know how many rows are likely to be
145
+ * needed in the common case and always render that at least that many.
146
+ */
147
+ if (totalCompletedTasks !== totalTasks &&
148
+ Number.isInteger(args.parallel) &&
149
+ runningTasks.length < args.parallel) {
150
+ // Don't bother with this optimization if there are fewer tasks remaining than rows required
151
+ if (remainingTasks >= args.parallel) {
152
+ for (let i = runningTasks.length; i < args.parallel; i++) {
153
+ additionalFooterRows.push('');
154
+ }
155
+ }
156
+ }
157
+ }
158
+ if (totalSuccessfulTasks > 0 || totalFailedTasks > 0) {
159
+ additionalFooterRows.push('');
160
+ }
161
+ if (totalFailedTasks > 0) {
162
+ additionalFooterRows.push(` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} failed`);
163
+ }
164
+ if (totalSuccessfulTasks > 0) {
165
+ additionalFooterRows.push(` ${output_1.output.colors.green(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} succeeded ${output_1.output.colors.gray(`[${totalCachedTasks} read from cache]`)}`);
166
+ }
167
+ clearPinnedFooter();
168
+ if (additionalFooterRows.length > 1) {
169
+ let text = `Running target ${output_1.output.bold.cyan(targetName)} for ${output_1.output.bold.cyan(totalProjects)} projects`;
170
+ if (totalDependentTasks > 0) {
171
+ text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
172
+ }
173
+ const taskOverridesRows = [];
174
+ if (Object.keys(overrides).length > 0) {
175
+ const leftPadding = `${output_1.output.X_PADDING} `;
176
+ taskOverridesRows.push('');
177
+ taskOverridesRows.push(`${leftPadding}${output_1.output.dim.cyan('With additional flags:')}`);
178
+ Object.entries(overrides)
179
+ .map(([flag, value]) => output_1.output.dim.cyan(`${leftPadding} --${flag}=${value}`))
180
+ .forEach((arg) => taskOverridesRows.push(arg));
181
+ }
182
+ const pinnedFooterLines = [
183
+ output_1.output.applyNxPrefix('cyan', output_1.output.colors.cyan(text)),
184
+ ...taskOverridesRows,
185
+ ...additionalFooterRows,
186
+ ];
187
+ // Vertical breathing room when there isn't yet any output or divider
188
+ if (!hasTaskOutput) {
189
+ pinnedFooterLines.unshift('');
190
+ }
191
+ renderPinnedFooter(pinnedFooterLines);
192
+ }
193
+ else {
194
+ renderPinnedFooter([]);
195
+ }
196
+ };
197
+ lifeCycle.startCommand = () => {
198
+ if (totalProjects <= 0) {
199
+ let description = `with target ${output_1.output.colors.white.bold(targetName)}`;
200
+ if (args.configuration) {
201
+ description += ` that are configured for "${args.configuration}"`;
202
+ }
203
+ renderPinnedFooter([
204
+ '',
205
+ output_1.output.applyNxPrefix('gray', `No projects ${description} were run`),
206
+ ]);
207
+ resolveRenderIsDonePromise();
208
+ return;
209
+ }
210
+ renderPinnedFooter([]);
211
+ };
212
+ lifeCycle.startTasks = (tasks) => {
213
+ for (const task of tasks) {
214
+ tasksToProcessStartTimes[task.id] = process.hrtime();
215
+ }
216
+ for (const projectRow of projectRows) {
217
+ const matchedTask = tasks.find((t) => t.target.project === projectRow.projectName);
218
+ if (!matchedTask) {
219
+ continue;
220
+ }
221
+ projectRow.status = 'running';
222
+ }
223
+ if (!renderProjectRowsIntervalId) {
224
+ renderProjectRowsIntervalId = setInterval(renderProjectRows, 100);
225
+ }
226
+ };
227
+ lifeCycle.printTaskTerminalOutput = (task, _cacheStatus, output) => {
228
+ tasksToTerminalOutputs[task.id] = output;
229
+ };
230
+ lifeCycle.endTasks = (taskResults) => {
231
+ totalCompletedTasks++;
232
+ for (let t of taskResults) {
233
+ const matchingProjectRow = projectRows.find((pr) => pr.projectName === t.task.target.project);
234
+ if (matchingProjectRow) {
235
+ matchingProjectRow.status = t.status;
236
+ }
237
+ switch (t.status) {
238
+ case 'remote-cache':
239
+ case 'local-cache':
240
+ totalCachedTasks++;
241
+ case 'success':
242
+ totalSuccessfulTasks++;
243
+ break;
244
+ case 'failure':
245
+ totalFailedTasks++;
246
+ break;
247
+ }
248
+ printTaskResult(t.task, t.status);
249
+ }
250
+ if (totalCompletedTasks === totalTasks) {
251
+ clearRenderInterval();
252
+ const timeTakenText = (0, pretty_time_1.prettyTime)(process.hrtime(start));
253
+ clearPinnedFooter();
254
+ if (totalSuccessfulTasks === totalTasks) {
255
+ let text = `Successfully ran target ${output_1.output.bold(targetName)} for ${output_1.output.bold(totalProjects)} projects`;
256
+ if (totalDependentTasks > 0) {
257
+ text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
258
+ }
259
+ const taskOverridesRows = [];
260
+ if (Object.keys(overrides).length > 0) {
261
+ const leftPadding = `${output_1.output.X_PADDING} `;
262
+ taskOverridesRows.push('');
263
+ taskOverridesRows.push(`${leftPadding}${output_1.output.dim.green('With additional flags:')}`);
264
+ Object.entries(overrides)
265
+ .map(([flag, value]) => output_1.output.dim.green(`${leftPadding} --${flag}=${value}`))
266
+ .forEach((arg) => taskOverridesRows.push(arg));
267
+ }
268
+ const pinnedFooterLines = [
269
+ output_1.output.applyNxPrefix('green', output_1.output.colors.green(text) + output_1.output.dim.white(` (${timeTakenText})`)),
270
+ ...taskOverridesRows,
271
+ ];
272
+ if (totalCachedTasks > 0) {
273
+ pinnedFooterLines.push(output_1.output.colors.gray(`${os_1.EOL} Nx read the output from the cache instead of running the command for ${totalCachedTasks} out of ${totalTasks} tasks.`));
274
+ }
275
+ renderPinnedFooter(pinnedFooterLines, 'green');
276
+ }
277
+ else {
278
+ let text = `Ran target ${output_1.output.bold(targetName)} for ${output_1.output.bold(totalProjects)} projects`;
279
+ if (totalDependentTasks > 0) {
280
+ text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
281
+ }
282
+ const taskOverridesRows = [];
283
+ if (Object.keys(overrides).length > 0) {
284
+ const leftPadding = `${output_1.output.X_PADDING} `;
285
+ taskOverridesRows.push('');
286
+ taskOverridesRows.push(`${leftPadding}${output_1.output.dim.red('With additional flags:')}`);
287
+ Object.entries(overrides)
288
+ .map(([flag, value]) => output_1.output.dim.red(`${leftPadding} --${flag}=${value}`))
289
+ .forEach((arg) => taskOverridesRows.push(arg));
290
+ }
291
+ renderPinnedFooter([
292
+ output_1.output.applyNxPrefix('red', output_1.output.colors.red(text) + output_1.output.dim.white(` (${timeTakenText})`)),
293
+ ...taskOverridesRows,
294
+ '',
295
+ ` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} failed`,
296
+ ` ${output_1.output.colors.gray(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} succeeded ${output_1.output.colors.gray(`[${totalCachedTasks} read from cache]`)}`,
297
+ ], 'red');
298
+ }
299
+ resolveRenderIsDonePromise();
300
+ }
301
+ };
302
+ return { lifeCycle, renderIsDone };
303
+ });
304
+ }
305
+ exports.createDynamicOutputRenderer = createDynamicOutputRenderer;
306
+ function writeLine(line) {
307
+ const additionalXPadding = ' ';
308
+ process.stdout.write(output_1.output.X_PADDING + additionalXPadding + line + os_1.EOL);
309
+ }
310
+ function writeCommandOutputBlock(commandOutput) {
311
+ commandOutput = commandOutput || '';
312
+ const additionalXPadding = ' ';
313
+ const lines = commandOutput.split(os_1.EOL);
314
+ /**
315
+ * There's not much we can do in order to "neaten up" the outputs of
316
+ * commands we do not control, but at the very least we can trim excess
317
+ * newlines so that there isn't unncecessary vertical whitespace.
318
+ */
319
+ let totalTrailingEmptyLines = 0;
320
+ for (let i = lines.length - 1; i >= 0; i--) {
321
+ if (lines[i] !== '') {
322
+ break;
323
+ }
324
+ totalTrailingEmptyLines++;
325
+ }
326
+ if (totalTrailingEmptyLines > 1) {
327
+ const linesToRemove = totalTrailingEmptyLines - 1;
328
+ lines.splice(lines.length - linesToRemove, linesToRemove);
329
+ }
330
+ // Indent the command output to make it look more "designed" in the context of the dynamic output
331
+ process.stdout.write(lines.map((l) => `${output_1.output.X_PADDING}${additionalXPadding}${l}`).join(os_1.EOL) +
332
+ os_1.EOL);
333
+ }
334
+ //# sourceMappingURL=dynamic-run-many-terminal-output-life-cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-run-many-terminal-output-life-cycle.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Task } from '@nrwl/devkit';
2
- import { TaskCacheStatus } from '../utilities/output';
3
- import { LifeCycle } from './life-cycle';
2
+ import { TaskCacheStatus } from '../../utilities/output';
3
+ import type { LifeCycle } from '../life-cycle';
4
4
  export declare class EmptyTerminalOutputLifeCycle implements LifeCycle {
5
5
  printTaskTerminalOutput(task: Task, cacheStatus: TaskCacheStatus, terminalOutput: string): void;
6
6
  }
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EmptyTerminalOutputLifeCycle = void 0;
4
- const output_1 = require("../utilities/output");
5
- const utils_1 = require("./utils");
4
+ const output_1 = require("../../utilities/output");
5
+ const utils_1 = require("../utils");
6
6
  class EmptyTerminalOutputLifeCycle {
7
7
  printTaskTerminalOutput(task, cacheStatus, terminalOutput) {
8
8
  if (cacheStatus === output_1.TaskCacheStatus.NoCache) {
9
9
  const args = (0, utils_1.getCommandArgsForTask)(task);
10
- output_1.output.logCommand(`nx ${args.join(' ')}`, cacheStatus);
10
+ output_1.output.logCommand(`${args.filter((a) => a !== 'run').join(' ')}`, cacheStatus);
11
11
  process.stdout.write(terminalOutput);
12
12
  }
13
13
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-terminal-output-life-cycle.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.ts"],"names":[],"mappings":";;;AACA,mDAAiE;AACjE,oCAAiD;AAGjD,MAAa,4BAA4B;IACvC,uBAAuB,CACrB,IAAU,EACV,WAA4B,EAC5B,cAAsB;QAEtB,IAAI,WAAW,KAAK,wBAAe,CAAC,OAAO,EAAE;YAC3C,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,IAAI,CAAC,CAAC;YACzC,eAAM,CAAC,UAAU,CACf,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC9C,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACtC;IACH,CAAC;CACF;AAfD,oEAeC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-time.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/pretty-time.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
1
  import type { Task } from '@nrwl/devkit';
2
- import { TaskCacheStatus } from '../utilities/output';
3
- import { LifeCycle } from './life-cycle';
4
- import { TaskStatus } from './tasks-runner';
5
- export declare class RunManyTerminalOutputLifeCycle implements LifeCycle {
2
+ import { TaskCacheStatus } from '../../utilities/output';
3
+ import { TaskStatus } from '../tasks-runner';
4
+ import type { LifeCycle } from '../life-cycle';
5
+ /**
6
+ * The following life cycle's outputs are static, meaning no previous content
7
+ * is rewritten or modified as new outputs are added. It is therefore intended
8
+ * for use in CI environments.
9
+ *
10
+ * For the common case of a user executing a command on their local machine,
11
+ * the dynamic equivalent of this life cycle is usually preferable.
12
+ */
13
+ export declare class StaticRunManyTerminalOutputLifeCycle implements LifeCycle {
6
14
  private readonly projectNames;
7
15
  private readonly tasks;
8
16
  private readonly args;
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RunManyTerminalOutputLifeCycle = void 0;
4
- const output_1 = require("../utilities/output");
5
- const utils_1 = require("./utils");
6
- class RunManyTerminalOutputLifeCycle {
3
+ exports.StaticRunManyTerminalOutputLifeCycle = void 0;
4
+ const output_1 = require("../../utilities/output");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * The following life cycle's outputs are static, meaning no previous content
8
+ * is rewritten or modified as new outputs are added. It is therefore intended
9
+ * for use in CI environments.
10
+ *
11
+ * For the common case of a user executing a command on their local machine,
12
+ * the dynamic equivalent of this life cycle is usually preferable.
13
+ */
14
+ class StaticRunManyTerminalOutputLifeCycle {
7
15
  constructor(projectNames, tasks, args, taskOverrides) {
8
16
  this.projectNames = projectNames;
9
17
  this.tasks = tasks;
@@ -22,7 +30,7 @@ class RunManyTerminalOutputLifeCycle {
22
30
  output_1.output.logSingleLine(`No projects ${description} were run`);
23
31
  return;
24
32
  }
25
- const bodyLines = this.projectNames.map((affectedProject) => `${output_1.output.colors.gray('-')} ${affectedProject}`);
33
+ const bodyLines = this.projectNames.map((affectedProject) => ` ${output_1.output.colors.gray('-')} ${affectedProject}`);
26
34
  if (Object.keys(this.taskOverrides).length > 0) {
27
35
  bodyLines.push('');
28
36
  bodyLines.push(`${output_1.output.colors.gray('With flags:')}`);
@@ -30,33 +38,35 @@ class RunManyTerminalOutputLifeCycle {
30
38
  .map(([flag, value]) => ` --${flag}=${value}`)
31
39
  .forEach((arg) => bodyLines.push(arg));
32
40
  }
33
- let title = `${output_1.output.colors.gray('Running target')} ${this.args.target} ${output_1.output.colors.gray(`for`)} ${this.projectNames.length} project(s)`;
41
+ let title = `Running target ${output_1.output.bold(this.args.target)} for ${output_1.output.bold(this.projectNames.length)} project(s)`;
34
42
  const dependentTasksCount = this.tasks.length - this.projectNames.length;
35
43
  if (dependentTasksCount > 0) {
36
- title += ` ${output_1.output.colors.gray(`and`)} ${this.tasks.length - this.projectNames.length} task(s) ${output_1.output.colors.gray(`they depend on`)}`;
44
+ title += ` and ${output_1.output.bold(dependentTasksCount)} task(s) they depend on`;
37
45
  }
38
46
  title += ':';
39
47
  output_1.output.log({
48
+ color: 'cyan',
40
49
  title,
41
50
  bodyLines,
42
51
  });
43
- output_1.output.addVerticalSeparatorWithoutNewLines();
52
+ output_1.output.addVerticalSeparatorWithoutNewLines('cyan');
44
53
  }
45
54
  endCommand() {
46
55
  output_1.output.addNewline();
47
- output_1.output.addVerticalSeparatorWithoutNewLines();
48
56
  if (this.failedTasks.length === 0) {
57
+ output_1.output.addVerticalSeparatorWithoutNewLines('green');
49
58
  const bodyLines = this.cachedTasks.length > 0
50
59
  ? [
51
- output_1.output.colors.gray(`Nx read the output from cache instead of running the command for ${this.cachedTasks.length} out of ${this.tasks.length} tasks.`),
60
+ output_1.output.colors.gray(`Nx read the output from the cache instead of running the command for ${this.cachedTasks.length} out of ${this.tasks.length} tasks.`),
52
61
  ]
53
62
  : [];
54
63
  output_1.output.success({
55
- title: `Running target "${this.args.target}" succeeded`,
64
+ title: `Successfully ran target ${output_1.output.bold(this.args.target)} for ${output_1.output.bold(this.projectNames.length)} projects`,
56
65
  bodyLines,
57
66
  });
58
67
  }
59
68
  else {
69
+ output_1.output.addVerticalSeparatorWithoutNewLines('red');
60
70
  const bodyLines = [];
61
71
  if (this.skippedTasks.length > 0) {
62
72
  bodyLines.push(output_1.output.colors.gray('Tasks not run because their dependencies failed:'), '', ...this.skippedTasks.map((task) => `${output_1.output.colors.gray('-')} ${task.id}`), '');
@@ -76,16 +86,19 @@ class RunManyTerminalOutputLifeCycle {
76
86
  else if (t.status === 'skipped') {
77
87
  this.skippedTasks.push(t.task);
78
88
  }
79
- else if (t.status === 'cache') {
89
+ else if (t.status === 'local-cache') {
90
+ this.cachedTasks.push(t.task);
91
+ }
92
+ else if (t.status === 'remote-cache') {
80
93
  this.cachedTasks.push(t.task);
81
94
  }
82
95
  }
83
96
  }
84
97
  printTaskTerminalOutput(task, cacheStatus, terminalOutput) {
85
98
  const args = (0, utils_1.getCommandArgsForTask)(task);
86
- output_1.output.logCommand(`nx ${args.join(' ')}`, cacheStatus);
99
+ output_1.output.logCommand(`${args.filter((a) => a !== 'run').join(' ')}`, cacheStatus);
87
100
  process.stdout.write(terminalOutput);
88
101
  }
89
102
  }
90
- exports.RunManyTerminalOutputLifeCycle = RunManyTerminalOutputLifeCycle;
91
- //# sourceMappingURL=run-many-terminal-output-life-cycle.js.map
103
+ exports.StaticRunManyTerminalOutputLifeCycle = StaticRunManyTerminalOutputLifeCycle;
104
+ //# sourceMappingURL=static-run-many-terminal-output-life-cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-run-many-terminal-output-life-cycle.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
1
  import type { Task } from '@nrwl/devkit';
2
- import { TaskCacheStatus } from '../utilities/output';
3
- import { LifeCycle } from './life-cycle';
4
- import { TaskStatus } from './tasks-runner';
5
- export declare class RunOneTerminalOutputLifeCycle implements LifeCycle {
2
+ import { TaskCacheStatus } from '../../utilities/output';
3
+ import { TaskStatus } from '../tasks-runner';
4
+ import type { LifeCycle } from '../life-cycle';
5
+ /**
6
+ * The following life cycle's outputs are static, meaning no previous content
7
+ * is rewritten or modified as new outputs are added. It is therefore intended
8
+ * for use in CI environments.
9
+ *
10
+ * For the common case of a user executing a command on their local machine,
11
+ * the dynamic equivalent of this life cycle is usually preferable.
12
+ */
13
+ export declare class StaticRunOneTerminalOutputLifeCycle implements LifeCycle {
6
14
  private readonly initiatingProject;
7
15
  private readonly projectNames;
8
16
  private readonly tasks;
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RunOneTerminalOutputLifeCycle = void 0;
4
- const output_1 = require("../utilities/output");
5
- const utils_1 = require("./utils");
6
- class RunOneTerminalOutputLifeCycle {
3
+ exports.StaticRunOneTerminalOutputLifeCycle = void 0;
4
+ const output_1 = require("../../utilities/output");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * The following life cycle's outputs are static, meaning no previous content
8
+ * is rewritten or modified as new outputs are added. It is therefore intended
9
+ * for use in CI environments.
10
+ *
11
+ * For the common case of a user executing a command on their local machine,
12
+ * the dynamic equivalent of this life cycle is usually preferable.
13
+ */
14
+ class StaticRunOneTerminalOutputLifeCycle {
7
15
  constructor(initiatingProject, projectNames, tasks, args) {
8
16
  this.initiatingProject = initiatingProject;
9
17
  this.projectNames = projectNames;
@@ -20,10 +28,10 @@ class RunOneTerminalOutputLifeCycle {
20
28
  const numberOfDeps = this.tasks.length - 1;
21
29
  if (numberOfDeps > 0) {
22
30
  output_1.output.log({
23
- title: `${output_1.output.colors.gray('Running target')} ${this.args.target} ${output_1.output.colors.gray('for project')} ${this.initiatingProject} ${output_1.output.colors.gray(`and`)} ${numberOfDeps} task(s) ${output_1.output.colors.gray(`that it depends on.`)}
24
- `,
31
+ color: 'cyan',
32
+ title: `Running target ${output_1.output.bold(this.args.target)} for project ${output_1.output.bold(this.initiatingProject)} and ${output_1.output.bold(numberOfDeps)} task(s) it depends on`,
25
33
  });
26
- output_1.output.addVerticalSeparatorWithoutNewLines();
34
+ output_1.output.addVerticalSeparatorWithoutNewLines('cyan');
27
35
  }
28
36
  }
29
37
  endCommand() {
@@ -32,19 +40,20 @@ class RunOneTerminalOutputLifeCycle {
32
40
  return;
33
41
  }
34
42
  output_1.output.addNewline();
35
- output_1.output.addVerticalSeparatorWithoutNewLines();
36
43
  if (this.failedTasks.length === 0) {
44
+ output_1.output.addVerticalSeparatorWithoutNewLines('green');
37
45
  const bodyLines = this.cachedTasks.length > 0
38
46
  ? [
39
- output_1.output.colors.gray(`Nx read the output from cache instead of running the command for ${this.cachedTasks.length} out of ${this.tasks.length} tasks.`),
47
+ output_1.output.colors.gray(`Nx read the output from the cache instead of running the command for ${this.cachedTasks.length} out of ${this.tasks.length} tasks.`),
40
48
  ]
41
49
  : [];
42
50
  output_1.output.success({
43
- title: `Running target "${this.args.target}" succeeded`,
51
+ title: `Successfully ran target ${output_1.output.bold(this.args.target)} for project ${output_1.output.bold(this.initiatingProject)}`,
44
52
  bodyLines,
45
53
  });
46
54
  }
47
55
  else {
56
+ output_1.output.addVerticalSeparatorWithoutNewLines('red');
48
57
  const bodyLines = [
49
58
  output_1.output.colors.gray('Failed tasks:'),
50
59
  '',
@@ -66,7 +75,10 @@ class RunOneTerminalOutputLifeCycle {
66
75
  else if (t.status === 'skipped') {
67
76
  this.skippedTasks.push(t.task);
68
77
  }
69
- else if (t.status === 'cache') {
78
+ else if (t.status === 'local-cache') {
79
+ this.cachedTasks.push(t.task);
80
+ }
81
+ else if (t.status === 'remote-cache') {
70
82
  this.cachedTasks.push(t.task);
71
83
  }
72
84
  }
@@ -75,10 +87,10 @@ class RunOneTerminalOutputLifeCycle {
75
87
  if (cacheStatus === output_1.TaskCacheStatus.NoCache ||
76
88
  task.target.project === this.initiatingProject) {
77
89
  const args = (0, utils_1.getCommandArgsForTask)(task);
78
- output_1.output.logCommand(`nx ${args.join(' ')}`, cacheStatus);
90
+ output_1.output.logCommand(`${args.filter((a) => a !== 'run').join(' ')}`, cacheStatus);
79
91
  process.stdout.write(terminalOutput);
80
92
  }
81
93
  }
82
94
  }
83
- exports.RunOneTerminalOutputLifeCycle = RunOneTerminalOutputLifeCycle;
84
- //# sourceMappingURL=run-one-terminal-output-life-cycle.js.map
95
+ exports.StaticRunOneTerminalOutputLifeCycle = StaticRunOneTerminalOutputLifeCycle;
96
+ //# sourceMappingURL=static-run-one-terminal-output-life-cycle.js.map