@nrwl/workspace 13.4.5 → 13.5.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
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