@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.
- package/README.md +3 -144
- package/package.json +5 -7
- package/src/command-line/affected.js +5 -5
- package/src/command-line/affected.js.map +1 -1
- package/src/command-line/daemon.js +7 -3
- package/src/command-line/daemon.js.map +1 -1
- package/src/command-line/dep-graph.js +13 -10
- package/src/command-line/dep-graph.js.map +1 -1
- package/src/command-line/format.js +13 -14
- package/src/command-line/format.js.map +1 -1
- package/src/command-line/nx-commands.js +1 -1
- package/src/command-line/nx-commands.js.map +1 -1
- package/src/command-line/reset.d.ts +1 -1
- package/src/command-line/reset.js +8 -12
- package/src/command-line/reset.js.map +1 -1
- package/src/command-line/run-many.js +2 -2
- package/src/command-line/run-many.js.map +1 -1
- package/src/command-line/run-one.js +2 -2
- package/src/command-line/run-one.js.map +1 -1
- package/src/core/affected-project-graph/locators/tsconfig-json-changes.js +8 -10
- package/src/core/affected-project-graph/locators/tsconfig-json-changes.js.map +1 -1
- package/src/core/dep-graph/3rdpartylicenses.txt +89 -7
- package/src/core/dep-graph/main.esm.js +1 -1
- package/src/core/dep-graph/main.esm.js.LICENSE.txt +0 -36
- package/src/core/dep-graph/styles.css +3 -1
- package/src/core/file-map-utils.d.ts +10 -0
- package/src/core/file-map-utils.js +80 -0
- package/src/core/file-map-utils.js.map +1 -0
- package/src/core/file-utils.d.ts +4 -16
- package/src/core/file-utils.js +17 -203
- package/src/core/file-utils.js.map +1 -1
- package/src/core/hasher/file-hasher-base.d.ts +12 -0
- package/src/core/hasher/file-hasher-base.js +66 -0
- package/src/core/hasher/file-hasher-base.js.map +1 -0
- package/src/core/hasher/file-hasher.d.ts +2 -24
- package/src/core/hasher/file-hasher.js +12 -86
- package/src/core/hasher/file-hasher.js.map +1 -1
- package/src/core/hasher/git-based-file-hasher.d.ts +10 -0
- package/src/core/hasher/git-based-file-hasher.js +50 -0
- package/src/core/hasher/git-based-file-hasher.js.map +1 -0
- package/src/core/hasher/git-hasher.d.ts +6 -24
- package/src/core/hasher/git-hasher.js +89 -147
- package/src/core/hasher/git-hasher.js.map +1 -1
- package/src/core/hasher/hasher.js +1 -0
- package/src/core/hasher/hasher.js.map +1 -1
- package/src/core/hasher/node-based-file-hasher.d.ts +7 -0
- package/src/core/hasher/node-based-file-hasher.js +78 -0
- package/src/core/hasher/node-based-file-hasher.js.map +1 -0
- package/src/core/nx-deps/nx-deps-cache.d.ts +0 -1
- package/src/core/nx-deps/nx-deps-cache.js +7 -9
- package/src/core/nx-deps/nx-deps-cache.js.map +1 -1
- package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.d.ts +2 -2
- package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.js.map +1 -1
- package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +2 -2
- package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js +2 -0
- package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js.map +1 -1
- package/src/core/project-graph/build-dependencies/explicit-project-dependencies.d.ts +2 -2
- package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js +1 -0
- package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js.map +1 -1
- package/src/core/project-graph/build-dependencies/typescript-import-locator.d.ts +2 -1
- package/src/core/project-graph/build-dependencies/typescript-import-locator.js +5 -1
- package/src/core/project-graph/build-dependencies/typescript-import-locator.js.map +1 -1
- package/src/core/project-graph/build-project-graph.js +5 -3
- package/src/core/project-graph/build-project-graph.js.map +1 -1
- package/src/core/project-graph/daemon/client/client.js +8 -3
- package/src/core/project-graph/daemon/client/client.js.map +1 -1
- package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.d.ts +0 -1
- package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js +71 -61
- package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js.map +1 -1
- package/src/core/project-graph/daemon/server/server.js +3 -1
- package/src/core/project-graph/daemon/server/server.js.map +1 -1
- package/src/core/project-graph/daemon/server/start.js +5 -2
- package/src/core/project-graph/daemon/server/start.js.map +1 -1
- package/src/core/project-graph/daemon/server/stop.js +5 -2
- package/src/core/project-graph/daemon/server/stop.js.map +1 -1
- package/src/core/project-graph/daemon/tmp-dir.d.ts +0 -4
- package/src/core/project-graph/daemon/tmp-dir.js +2 -45
- package/src/core/project-graph/daemon/tmp-dir.js.map +1 -1
- package/src/core/project-graph/operators.d.ts +0 -1
- package/src/core/project-graph/operators.js +1 -7
- package/src/core/project-graph/operators.js.map +1 -1
- package/src/core/project-graph/project-graph.js +2 -0
- package/src/core/project-graph/project-graph.js.map +1 -1
- package/src/core/target-project-locator.d.ts +2 -2
- package/src/core/target-project-locator.js +37 -23
- package/src/core/target-project-locator.js.map +1 -1
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js +3 -1
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js.map +1 -1
- package/src/generators/convert-to-nx-project/schema.d.ts +1 -0
- package/src/generators/convert-to-nx-project/schema.json +5 -0
- package/src/generators/init/files/prettier/__dot__prettierignore +1 -0
- package/src/generators/init/init.js +5 -1
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/npm-package/npm-package.js +1 -0
- package/src/generators/npm-package/npm-package.js.map +1 -1
- package/src/generators/workspace/files/__workspaceFile__.json__tmpl__ +0 -5
- package/src/generators/workspace/files/package.json__tmpl__ +1 -1
- package/src/tasks-runner/cache.d.ts +2 -1
- package/src/tasks-runner/cache.js +10 -7
- package/src/tasks-runner/cache.js.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +6 -6
- package/src/tasks-runner/forked-process-task-runner.js.map +1 -1
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +22 -0
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +334 -0
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js.map +1 -0
- package/src/tasks-runner/{empty-terminal-output-life-cycle.d.ts → life-cycles/empty-terminal-output-life-cycle.d.ts} +2 -2
- package/src/tasks-runner/{empty-terminal-output-life-cycle.js → life-cycles/empty-terminal-output-life-cycle.js} +3 -3
- package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js.map +1 -0
- package/src/tasks-runner/{neo-output → life-cycles}/pretty-time.d.ts +0 -0
- package/src/tasks-runner/{neo-output → life-cycles}/pretty-time.js +0 -0
- package/src/tasks-runner/life-cycles/pretty-time.js.map +1 -0
- 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
- package/src/tasks-runner/{run-many-terminal-output-life-cycle.js → life-cycles/static-run-many-terminal-output-life-cycle.js} +28 -15
- package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js.map +1 -0
- 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
- package/src/tasks-runner/{run-one-terminal-output-life-cycle.js → life-cycles/static-run-one-terminal-output-life-cycle.js} +26 -14
- package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js.map +1 -0
- package/src/tasks-runner/{task-timings-life-cycle.d.ts → life-cycles/task-profiling-life-cycle.d.ts} +4 -5
- package/src/tasks-runner/{task-timings-life-cycle.js → life-cycles/task-profiling-life-cycle.js} +10 -29
- package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js.map +1 -0
- package/src/tasks-runner/life-cycles/task-timings-life-cycle.d.ts +13 -0
- package/src/tasks-runner/life-cycles/task-timings-life-cycle.js +33 -0
- package/src/tasks-runner/life-cycles/task-timings-life-cycle.js.map +1 -0
- package/src/tasks-runner/run-command.js +18 -13
- package/src/tasks-runner/run-command.js.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +18 -7
- package/src/tasks-runner/task-orchestrator.js.map +1 -1
- package/src/tasks-runner/tasks-runner-v2.js +3 -1
- package/src/tasks-runner/tasks-runner-v2.js.map +1 -1
- package/src/tasks-runner/tasks-runner.d.ts +1 -1
- package/src/utilities/cache-directory.d.ts +1 -2
- package/src/utilities/cache-directory.js +3 -3
- package/src/utilities/cache-directory.js.map +1 -1
- package/src/utilities/is_ci.js +1 -0
- package/src/utilities/is_ci.js.map +1 -1
- package/src/utilities/output.d.ts +13 -5
- package/src/utilities/output.js +55 -34
- package/src/utilities/output.js.map +1 -1
- package/src/utilities/perf-logging.js +4 -3
- package/src/utilities/perf-logging.js.map +1 -1
- package/src/utils/ast-utils.js.map +1 -1
- package/src/utils/graph-utils.js +2 -1
- package/src/utils/graph-utils.js.map +1 -1
- package/src/utils/perf-logging.js +1 -1
- package/src/utils/perf-logging.js.map +1 -1
- package/src/utils/rules/visit-not-ignored-files.js.map +1 -1
- package/src/utils/runtime-lint-utils.js.map +1 -1
- package/src/utils/versions.js +1 -1
- package/src/core/hasher/spawn-process.d.ts +0 -6
- package/src/core/hasher/spawn-process.js +0 -27
- package/src/core/hasher/spawn-process.js.map +0 -1
- package/src/tasks-runner/empty-terminal-output-life-cycle.js.map +0 -1
- package/src/tasks-runner/neo-output/pretty-time.js.map +0 -1
- package/src/tasks-runner/neo-output/render.d.ts +0 -13
- package/src/tasks-runner/neo-output/render.js +0 -244
- package/src/tasks-runner/neo-output/render.js.map +0 -1
- package/src/tasks-runner/run-many-terminal-output-life-cycle.js.map +0 -1
- package/src/tasks-runner/run-one-terminal-output-life-cycle.js.map +0 -1
- 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 '
|
3
|
-
import { LifeCycle } from '
|
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("
|
5
|
-
const utils_1 = require("
|
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(
|
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"}
|
File without changes
|
File without changes
|
@@ -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 '
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
|
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.
|
4
|
-
const output_1 = require("
|
5
|
-
const utils_1 = require("
|
6
|
-
|
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) =>
|
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 =
|
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.
|
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: `
|
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(
|
99
|
+
output_1.output.logCommand(`${args.filter((a) => a !== 'run').join(' ')}`, cacheStatus);
|
87
100
|
process.stdout.write(terminalOutput);
|
88
101
|
}
|
89
102
|
}
|
90
|
-
exports.
|
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 '
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
|
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.
|
4
|
-
const output_1 = require("
|
5
|
-
const utils_1 = require("
|
6
|
-
|
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
|
-
|
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: `
|
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(
|
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.
|
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
|