nx 22.6.0-beta.0 → 22.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -11
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.js +38 -10
- package/src/executors/run-commands/running-tasks.d.ts +1 -1
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +23 -17
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +1 -5
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts.map +1 -1
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +15 -5
- package/src/tasks-runner/pseudo-terminal.d.ts +2 -2
- package/src/tasks-runner/pseudo-terminal.d.ts.map +1 -1
- package/src/tasks-runner/pseudo-terminal.js +7 -5
- package/src/tasks-runner/running-tasks/batch-process.d.ts +2 -1
- package/src/tasks-runner/running-tasks/batch-process.d.ts.map +1 -1
- package/src/tasks-runner/running-tasks/batch-process.js +5 -4
- package/src/tasks-runner/running-tasks/node-child-process.d.ts +2 -1
- package/src/tasks-runner/running-tasks/node-child-process.d.ts.map +1 -1
- package/src/tasks-runner/running-tasks/node-child-process.js +8 -5
- package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +5 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx",
|
|
3
|
-
"version": "22.6.0-beta.
|
|
3
|
+
"version": "22.6.0-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
|
|
6
6
|
"repository": {
|
|
@@ -84,16 +84,16 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"optionalDependencies": {
|
|
87
|
-
"@nx/nx-darwin-arm64": "22.6.0-beta.
|
|
88
|
-
"@nx/nx-darwin-x64": "22.6.0-beta.
|
|
89
|
-
"@nx/nx-freebsd-x64": "22.6.0-beta.
|
|
90
|
-
"@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.
|
|
91
|
-
"@nx/nx-linux-arm64-gnu": "22.6.0-beta.
|
|
92
|
-
"@nx/nx-linux-arm64-musl": "22.6.0-beta.
|
|
93
|
-
"@nx/nx-linux-x64-gnu": "22.6.0-beta.
|
|
94
|
-
"@nx/nx-linux-x64-musl": "22.6.0-beta.
|
|
95
|
-
"@nx/nx-win32-arm64-msvc": "22.6.0-beta.
|
|
96
|
-
"@nx/nx-win32-x64-msvc": "22.6.0-beta.
|
|
87
|
+
"@nx/nx-darwin-arm64": "22.6.0-beta.1",
|
|
88
|
+
"@nx/nx-darwin-x64": "22.6.0-beta.1",
|
|
89
|
+
"@nx/nx-freebsd-x64": "22.6.0-beta.1",
|
|
90
|
+
"@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.1",
|
|
91
|
+
"@nx/nx-linux-arm64-gnu": "22.6.0-beta.1",
|
|
92
|
+
"@nx/nx-linux-arm64-musl": "22.6.0-beta.1",
|
|
93
|
+
"@nx/nx-linux-x64-gnu": "22.6.0-beta.1",
|
|
94
|
+
"@nx/nx-linux-x64-musl": "22.6.0-beta.1",
|
|
95
|
+
"@nx/nx-win32-arm64-msvc": "22.6.0-beta.1",
|
|
96
|
+
"@nx/nx-win32-x64-msvc": "22.6.0-beta.1"
|
|
97
97
|
},
|
|
98
98
|
"nx-migrations": {
|
|
99
99
|
"migrations": "./migrations.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-graph-incremental-recomputation.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,YAAY,EAIb,MAAM,mCAAmC,CAAC;AAe3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAEL,uBAAuB,EACxB,MAAM,uDAAuD,CAAC;AAS/D,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAClD;AAGD,eAAO,IAAI,gBAAgB,EACvB;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,cAAc,EAAE,yBAAyB,CAAC;CAC3C,GACD,SAAS,CAAC;AACd,eAAO,IAAI,0BAA0B,EAAE,YAAY,GAAG,SAAS,CAAC;AAChE,eAAO,IAAI,mBAAmB,EAAE,YAAY,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"project-graph-incremental-recomputation.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,YAAY,EAIb,MAAM,mCAAmC,CAAC;AAe3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAEL,uBAAuB,EACxB,MAAM,uDAAuD,CAAC;AAS/D,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAClD;AAGD,eAAO,IAAI,gBAAgB,EACvB;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,cAAc,EAAE,yBAAyB,CAAC;CAC3C,GACD,SAAS,CAAC;AACd,eAAO,IAAI,0BAA0B,EAAE,YAAY,GAAG,SAAS,CAAC;AAChE,eAAO,IAAI,mBAAmB,EAAE,YAAY,GAAG,SAAS,CAAC;AAoBzD,wBAAsB,sCAAsC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAgF9F;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,QAiDvB;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,CACR,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,uBAAuB,EACnC,KAAK,EAAE,KAAK,GAAG,IAAI,KAChB,IAAI,QAGV"}
|
|
@@ -21,13 +21,17 @@ const logger_1 = require("../logger");
|
|
|
21
21
|
const error_types_1 = require("../../project-graph/error-types");
|
|
22
22
|
const get_plugins_1 = require("../../project-graph/plugins/get-plugins");
|
|
23
23
|
let cachedSerializedProjectGraphPromise;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// Maps file path to a version counter that increments on each modification.
|
|
25
|
+
// This lets us detect mid-flight re-modifications when clearing processed files.
|
|
26
|
+
const collectedUpdatedFiles = new Map();
|
|
27
|
+
const collectedDeletedFiles = new Map();
|
|
26
28
|
const projectGraphRecomputationListeners = new Set();
|
|
27
29
|
let storedWorkspaceConfigHash;
|
|
28
30
|
let waitPeriod = 100;
|
|
29
31
|
let scheduledTimeoutId;
|
|
30
32
|
let knownExternalNodes = {};
|
|
33
|
+
let fileChangeCounter = 0;
|
|
34
|
+
let recomputationGeneration = 0;
|
|
31
35
|
async function getCachedSerializedProjectGraphPromise() {
|
|
32
36
|
try {
|
|
33
37
|
let wasScheduled = false;
|
|
@@ -91,13 +95,14 @@ async function getCachedSerializedProjectGraphPromise() {
|
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
function addUpdatedAndDeletedFiles(createdFiles, updatedFiles, deletedFiles) {
|
|
98
|
+
++fileChangeCounter;
|
|
94
99
|
for (let f of [...createdFiles, ...updatedFiles]) {
|
|
95
100
|
collectedDeletedFiles.delete(f);
|
|
96
|
-
collectedUpdatedFiles.
|
|
101
|
+
collectedUpdatedFiles.set(f, fileChangeCounter);
|
|
97
102
|
}
|
|
98
103
|
for (let f of deletedFiles) {
|
|
99
104
|
collectedUpdatedFiles.delete(f);
|
|
100
|
-
collectedDeletedFiles.
|
|
105
|
+
collectedDeletedFiles.set(f, fileChangeCounter);
|
|
101
106
|
}
|
|
102
107
|
// Notify file change listeners immediately when files change
|
|
103
108
|
if (createdFiles.length > 0 ||
|
|
@@ -153,8 +158,6 @@ async function processCollectedUpdatedAndDeletedFiles({ projects, externalNodes,
|
|
|
153
158
|
exports.fileMapWithFiles = await (0, retrieve_workspace_files_1.retrieveWorkspaceFiles)(workspace_root_1.workspaceRoot, projectRootMap);
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
|
-
collectedUpdatedFiles.clear();
|
|
157
|
-
collectedDeletedFiles.clear();
|
|
158
161
|
}
|
|
159
162
|
catch (e) {
|
|
160
163
|
// this is expected
|
|
@@ -170,16 +173,21 @@ async function processCollectedUpdatedAndDeletedFiles({ projects, externalNodes,
|
|
|
170
173
|
}
|
|
171
174
|
}
|
|
172
175
|
async function processFilesAndCreateAndSerializeProjectGraph(plugins) {
|
|
176
|
+
const myGeneration = ++recomputationGeneration;
|
|
177
|
+
// Helper to check if this recomputation is stale (a newer one has started)
|
|
178
|
+
const isStale = () => myGeneration !== recomputationGeneration;
|
|
173
179
|
try {
|
|
174
180
|
perf_hooks_1.performance.mark('hash-watched-changes-start');
|
|
175
|
-
const
|
|
176
|
-
const
|
|
181
|
+
const updatedFilesSnapshot = new Map(collectedUpdatedFiles);
|
|
182
|
+
const deletedFilesSnapshot = new Map(collectedDeletedFiles);
|
|
183
|
+
const updatedFiles = [...updatedFilesSnapshot.keys()];
|
|
184
|
+
const deletedFiles = [...deletedFilesSnapshot.keys()];
|
|
177
185
|
let updatedFileHashes = (0, workspace_context_1.updateFilesInContext)(workspace_root_1.workspaceRoot, updatedFiles, deletedFiles);
|
|
178
186
|
perf_hooks_1.performance.mark('hash-watched-changes-end');
|
|
179
187
|
perf_hooks_1.performance.measure('hash changed files from watcher', 'hash-watched-changes-start', 'hash-watched-changes-end');
|
|
180
188
|
logger_1.serverLogger.requestLog(`Updated workspace context based on watched changes, recomputing project graph...`);
|
|
181
|
-
logger_1.serverLogger.requestLog(
|
|
182
|
-
logger_1.serverLogger.requestLog(
|
|
189
|
+
logger_1.serverLogger.requestLog(updatedFiles);
|
|
190
|
+
logger_1.serverLogger.requestLog(deletedFiles);
|
|
183
191
|
const nxJson = (0, nx_json_1.readNxJson)(workspace_root_1.workspaceRoot);
|
|
184
192
|
global.NX_GRAPH_CREATION = true;
|
|
185
193
|
let projectConfigurationsResult;
|
|
@@ -196,7 +204,27 @@ async function processFilesAndCreateAndSerializeProjectGraph(plugins) {
|
|
|
196
204
|
throw e;
|
|
197
205
|
}
|
|
198
206
|
}
|
|
207
|
+
// Early exit if a newer recomputation has started - chain to the newer one
|
|
208
|
+
if (isStale()) {
|
|
209
|
+
return cachedSerializedProjectGraphPromise;
|
|
210
|
+
}
|
|
199
211
|
await processCollectedUpdatedAndDeletedFiles(projectConfigurationsResult, updatedFileHashes, deletedFiles);
|
|
212
|
+
// Only remove files whose version matches the snapshot — if the version
|
|
213
|
+
// is higher, the file was modified again mid-flight and needs reprocessing.
|
|
214
|
+
for (const [f, version] of updatedFilesSnapshot) {
|
|
215
|
+
if (collectedUpdatedFiles.get(f) === version) {
|
|
216
|
+
collectedUpdatedFiles.delete(f);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
for (const [f, version] of deletedFilesSnapshot) {
|
|
220
|
+
if (collectedDeletedFiles.get(f) === version) {
|
|
221
|
+
collectedDeletedFiles.delete(f);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Early exit if a newer recomputation has started - chain to the newer one
|
|
225
|
+
if (isStale()) {
|
|
226
|
+
return cachedSerializedProjectGraphPromise;
|
|
227
|
+
}
|
|
200
228
|
const g = await createAndSerializeProjectGraph(projectConfigurationsResult);
|
|
201
229
|
delete global.NX_GRAPH_CREATION;
|
|
202
230
|
const errors = [...(projectConfigurationsError?.errors ?? [])];
|
|
@@ -24,7 +24,7 @@ export declare class ParallelRunningTasks implements RunningTask {
|
|
|
24
24
|
export declare class SeriallyRunningTasks implements RunningTask {
|
|
25
25
|
private readonly tuiEnabled;
|
|
26
26
|
private readonly taskId;
|
|
27
|
-
private
|
|
27
|
+
private terminalOutputChunks;
|
|
28
28
|
private currentProcess;
|
|
29
29
|
private exitCallbacks;
|
|
30
30
|
private code;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACP,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM;IAejC,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAY/D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAId,GAAG;YAwCH,aAAa;CAsD5B;AAsKD,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"}
|
|
@@ -143,7 +143,7 @@ class SeriallyRunningTasks {
|
|
|
143
143
|
constructor(options, context, tuiEnabled, taskId) {
|
|
144
144
|
this.tuiEnabled = tuiEnabled;
|
|
145
145
|
this.taskId = taskId;
|
|
146
|
-
this.
|
|
146
|
+
this.terminalOutputChunks = [];
|
|
147
147
|
this.currentProcess = null;
|
|
148
148
|
this.exitCallbacks = [];
|
|
149
149
|
this.code = 0;
|
|
@@ -153,19 +153,21 @@ class SeriallyRunningTasks {
|
|
|
153
153
|
this.error = e;
|
|
154
154
|
})
|
|
155
155
|
.finally(() => {
|
|
156
|
+
const terminalOutput = this.terminalOutputChunks.join('');
|
|
157
|
+
this.terminalOutputChunks = [];
|
|
156
158
|
for (const cb of this.exitCallbacks) {
|
|
157
|
-
cb(this.code,
|
|
159
|
+
cb(this.code, terminalOutput);
|
|
158
160
|
}
|
|
159
161
|
});
|
|
160
162
|
}
|
|
161
163
|
getResults() {
|
|
162
164
|
return new Promise((res, rej) => {
|
|
163
|
-
this.onExit((code) => {
|
|
165
|
+
this.onExit((code, terminalOutput) => {
|
|
164
166
|
if (this.error) {
|
|
165
167
|
rej(this.error);
|
|
166
168
|
}
|
|
167
169
|
else {
|
|
168
|
-
res({ code, terminalOutput
|
|
170
|
+
res({ code, terminalOutput });
|
|
169
171
|
}
|
|
170
172
|
});
|
|
171
173
|
});
|
|
@@ -192,15 +194,14 @@ class SeriallyRunningTasks {
|
|
|
192
194
|
}
|
|
193
195
|
});
|
|
194
196
|
let { code, terminalOutput } = await childProcess.getResults();
|
|
195
|
-
this.terminalOutput
|
|
197
|
+
this.terminalOutputChunks.push(terminalOutput);
|
|
196
198
|
this.code = code;
|
|
197
199
|
if (code !== 0) {
|
|
198
200
|
const output = `Warning: command "${c.command}" exited with non-zero status code`;
|
|
199
|
-
terminalOutput += output;
|
|
200
201
|
if (options.streamOutput) {
|
|
201
202
|
process.stderr.write(output);
|
|
202
203
|
}
|
|
203
|
-
this.
|
|
204
|
+
this.terminalOutputChunks.push(output);
|
|
204
205
|
// Stop running commands
|
|
205
206
|
break;
|
|
206
207
|
}
|
|
@@ -232,14 +233,15 @@ class RunningNodeProcess {
|
|
|
232
233
|
constructor(commandConfig, color, cwd, env, readyWhenStatus, streamOutput = true, envFile, taskId) {
|
|
233
234
|
this.readyWhenStatus = readyWhenStatus;
|
|
234
235
|
this.taskId = taskId;
|
|
235
|
-
this.
|
|
236
|
+
this.terminalOutputChunks = [];
|
|
236
237
|
this.exitCallbacks = [];
|
|
237
238
|
this.outputCallbacks = [];
|
|
238
239
|
env = processEnv(color, cwd, env, envFile);
|
|
239
240
|
this.command = commandConfig.command;
|
|
240
|
-
|
|
241
|
+
const header = pc.dim('> ') + commandConfig.command + '\r\n\r\n';
|
|
242
|
+
this.terminalOutputChunks.push(header);
|
|
241
243
|
if (streamOutput) {
|
|
242
|
-
process.stdout.write(
|
|
244
|
+
process.stdout.write(header);
|
|
243
245
|
}
|
|
244
246
|
this.childProcess = (0, child_process_1.exec)(commandConfig.command, {
|
|
245
247
|
maxBuffer: run_commands_impl_1.LARGE_BUFFER,
|
|
@@ -292,7 +294,7 @@ class RunningNodeProcess {
|
|
|
292
294
|
addListeners(commandConfig, streamOutput) {
|
|
293
295
|
this.childProcess.stdout.on('data', (data) => {
|
|
294
296
|
const output = addColorAndPrefix(data, commandConfig);
|
|
295
|
-
this.
|
|
297
|
+
this.terminalOutputChunks.push(output);
|
|
296
298
|
this.triggerOutputListeners(output);
|
|
297
299
|
if (streamOutput) {
|
|
298
300
|
process.stdout.write(output);
|
|
@@ -300,13 +302,13 @@ class RunningNodeProcess {
|
|
|
300
302
|
if (this.readyWhenStatus.length &&
|
|
301
303
|
isReady(this.readyWhenStatus, data.toString())) {
|
|
302
304
|
for (const cb of this.exitCallbacks) {
|
|
303
|
-
cb(0, this.
|
|
305
|
+
cb(0, this.terminalOutputChunks.join(''));
|
|
304
306
|
}
|
|
305
307
|
}
|
|
306
308
|
});
|
|
307
309
|
this.childProcess.stderr.on('data', (err) => {
|
|
308
310
|
const output = addColorAndPrefix(err, commandConfig);
|
|
309
|
-
this.
|
|
311
|
+
this.terminalOutputChunks.push(output);
|
|
310
312
|
this.triggerOutputListeners(output);
|
|
311
313
|
if (streamOutput) {
|
|
312
314
|
process.stderr.write(output);
|
|
@@ -314,24 +316,28 @@ class RunningNodeProcess {
|
|
|
314
316
|
if (this.readyWhenStatus.length &&
|
|
315
317
|
isReady(this.readyWhenStatus, err.toString())) {
|
|
316
318
|
for (const cb of this.exitCallbacks) {
|
|
317
|
-
cb(1, this.
|
|
319
|
+
cb(1, this.terminalOutputChunks.join(''));
|
|
318
320
|
}
|
|
319
321
|
}
|
|
320
322
|
});
|
|
321
323
|
this.childProcess.on('error', (err) => {
|
|
322
324
|
const output = addColorAndPrefix(err.toString(), commandConfig);
|
|
323
|
-
this.
|
|
325
|
+
this.terminalOutputChunks.push(output);
|
|
324
326
|
if (streamOutput) {
|
|
325
327
|
process.stderr.write(output);
|
|
326
328
|
}
|
|
329
|
+
const terminalOutput = this.terminalOutputChunks.join('');
|
|
330
|
+
this.terminalOutputChunks = [];
|
|
327
331
|
for (const cb of this.exitCallbacks) {
|
|
328
|
-
cb(1,
|
|
332
|
+
cb(1, terminalOutput);
|
|
329
333
|
}
|
|
330
334
|
});
|
|
331
335
|
this.childProcess.on('exit', (code) => {
|
|
332
336
|
if (!this.readyWhenStatus.length || isReady(this.readyWhenStatus)) {
|
|
337
|
+
const terminalOutput = this.terminalOutputChunks.join('');
|
|
338
|
+
this.terminalOutputChunks = [];
|
|
333
339
|
for (const cb of this.exitCallbacks) {
|
|
334
|
-
cb(code,
|
|
340
|
+
cb(code, terminalOutput);
|
|
335
341
|
}
|
|
336
342
|
}
|
|
337
343
|
});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forked-process-task-runner.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/forked-process-task-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAGL,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAOzC,qBAAa,uBAAuB;IAShC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,SAAgB;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,eAAe,CAA6B;gBAGjC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,OAAO;IAGhC,IAAI;IAKG,mBAAmB,CAC9B,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,KAAK,EAC/D,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,YAAY,CAAC;IAgDjB,qBAAqB;IASf,iBAAiB,CAC5B,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,GAAG,GACJ,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC;IAgBV,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,GAAG,EACH,qBAAqB,GACtB,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QACvB,qBAAqB,EAAE,OAAO,CAAC;KAChC,GACA,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC;YAiC5B,oBAAoB;YAapB,6BAA6B;
|
|
1
|
+
{"version":3,"file":"forked-process-task-runner.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/forked-process-task-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAGL,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAOzC,qBAAa,uBAAuB;IAShC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,SAAgB;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,eAAe,CAA6B;gBAGjC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,OAAO;IAGhC,IAAI;IAKG,mBAAmB,CAC9B,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,KAAK,EAC/D,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,YAAY,CAAC;IAgDjB,qBAAqB;IASf,iBAAiB,CAC5B,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,GAAG,GACJ,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC;IAgBV,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,GAAG,EACH,qBAAqB,GACtB,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QACvB,qBAAqB,EAAE,OAAO,CAAC;KAChC,GACA,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC;YAiC5B,oBAAoB;YAapB,6BAA6B;IA6D3C,OAAO,CAAC,8BAA8B;IAmEtC,OAAO,CAAC,8BAA8B;IA2EtC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;IAO/B,OAAO,CAAC,0BAA0B;CAwCnC"}
|
|
@@ -153,11 +153,7 @@ class ForkedProcessTaskRunner {
|
|
|
153
153
|
isVerbose: this.verbose,
|
|
154
154
|
});
|
|
155
155
|
this.processes.add(p);
|
|
156
|
-
|
|
157
|
-
p.onOutput((msg) => {
|
|
158
|
-
terminalOutput += msg;
|
|
159
|
-
});
|
|
160
|
-
p.onExit((code) => {
|
|
156
|
+
p.onExit((code, terminalOutput) => {
|
|
161
157
|
if (!this.tuiEnabled && code > 128) {
|
|
162
158
|
process.exit(code);
|
|
163
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-summary-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/tui-summary-life-cycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAc/C,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,0BAA0B,GAC3B,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,0BAA0B,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACnD;
|
|
1
|
+
{"version":3,"file":"tui-summary-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/tui-summary-life-cycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAc/C,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,0BAA0B,GAC3B,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,0BAA0B,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACnD;eA+fkC,SAAS;;EAC3C"}
|
|
@@ -26,18 +26,22 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
26
26
|
const failedTasks = new Set();
|
|
27
27
|
const inProgressTasks = new Set();
|
|
28
28
|
const stoppedTasks = new Set();
|
|
29
|
+
// Chunks accumulated progressively during task execution
|
|
30
|
+
const taskOutputChunks = {};
|
|
31
|
+
// Finalized output strings set on task completion — read by summary print functions
|
|
29
32
|
const tasksToTerminalOutputs = {};
|
|
30
33
|
const tasksToTaskStatus = {};
|
|
31
34
|
const taskIdsInTheOrderTheyStart = [];
|
|
35
|
+
const getTerminalOutput = (taskId) => tasksToTerminalOutputs[taskId] ?? taskOutputChunks[taskId]?.join('') ?? '';
|
|
32
36
|
lifeCycle.startTasks = (tasks) => {
|
|
33
37
|
for (let t of tasks) {
|
|
34
|
-
|
|
38
|
+
taskOutputChunks[t.id] ??= [];
|
|
35
39
|
taskIdsInTheOrderTheyStart.push(t.id);
|
|
36
40
|
inProgressTasks.add(t.id);
|
|
37
41
|
}
|
|
38
42
|
};
|
|
39
43
|
lifeCycle.appendTaskOutput = (taskId, output) => {
|
|
40
|
-
|
|
44
|
+
taskOutputChunks[taskId].push(output);
|
|
41
45
|
};
|
|
42
46
|
// TODO(@AgentEnder): The following 2 methods should be one but will need more refactoring
|
|
43
47
|
lifeCycle.printTaskTerminalOutput = (task, taskStatus, output) => {
|
|
@@ -57,7 +61,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
57
61
|
}
|
|
58
62
|
};
|
|
59
63
|
lifeCycle.endTasks = (taskResults) => {
|
|
60
|
-
for (const { task, status } of taskResults) {
|
|
64
|
+
for (const { task, status, terminalOutput } of taskResults) {
|
|
61
65
|
totalCompletedTasks++;
|
|
62
66
|
inProgressTasks.delete(task.id);
|
|
63
67
|
switch (status) {
|
|
@@ -75,6 +79,12 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
75
79
|
failedTasks.add(task.id);
|
|
76
80
|
break;
|
|
77
81
|
}
|
|
82
|
+
// Store the final string directly — shares the same reference as
|
|
83
|
+
// TaskResultsLifeCycle, old chunks become GC-eligible
|
|
84
|
+
if (terminalOutput !== undefined) {
|
|
85
|
+
tasksToTerminalOutputs[task.id] = terminalOutput;
|
|
86
|
+
delete taskOutputChunks[task.id];
|
|
87
|
+
}
|
|
78
88
|
}
|
|
79
89
|
};
|
|
80
90
|
lifeCycle.endCommand = () => {
|
|
@@ -118,7 +128,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
118
128
|
// above the summary, since run-one should print all task results.
|
|
119
129
|
for (const taskId of taskIdsInTheOrderTheyStart) {
|
|
120
130
|
const taskStatus = tasksToTaskStatus[taskId];
|
|
121
|
-
const terminalOutput =
|
|
131
|
+
const terminalOutput = getTerminalOutput(taskId);
|
|
122
132
|
output_1.output.logCommandOutput(taskId, taskStatus, terminalOutput);
|
|
123
133
|
}
|
|
124
134
|
// Print vertical separator
|
|
@@ -196,7 +206,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
196
206
|
// First pass: Print task outputs and collect checklist lines
|
|
197
207
|
for (const taskId of sortedTaskIds) {
|
|
198
208
|
const taskStatus = tasksToTaskStatus[taskId];
|
|
199
|
-
const terminalOutput =
|
|
209
|
+
const terminalOutput = getTerminalOutput(taskId);
|
|
200
210
|
// Task Status is null?
|
|
201
211
|
if (!taskStatus) {
|
|
202
212
|
output_1.output.logCommandOutput(taskId, taskStatus, terminalOutput);
|
|
@@ -36,13 +36,13 @@ export declare class PseudoTtyProcess implements RunningTask {
|
|
|
36
36
|
isAlive: boolean;
|
|
37
37
|
private exitCallbacks;
|
|
38
38
|
private outputCallbacks;
|
|
39
|
-
private
|
|
39
|
+
private terminalOutputChunks;
|
|
40
40
|
constructor(rustPseudoTerminal: RustPseudoTerminal, childProcess: ChildProcess);
|
|
41
41
|
getResults(): Promise<{
|
|
42
42
|
code: number;
|
|
43
43
|
terminalOutput: string;
|
|
44
44
|
}>;
|
|
45
|
-
onExit(callback: (code: number) => void): void;
|
|
45
|
+
onExit(callback: (code: number, terminalOutput: string) => void): void;
|
|
46
46
|
onOutput(callback: (message: string) => void): void;
|
|
47
47
|
getPid(): number | undefined;
|
|
48
48
|
kill(s?: NodeJS.Signals): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pseudo-terminal.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/pseudo-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAW,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,wBAAgB,oBAAoB,CAAC,gBAAgB,GAAE,OAAe,kBASrE;AAGD,qBAAa,cAAc;IAcb,OAAO,CAAC,kBAAkB;IAbtC,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,cAAc,CAA+B;IAErD,MAAM,CAAC,WAAW;gBAIE,kBAAkB,EAAE,kBAAkB;IAEpD,IAAI;IAQV,QAAQ,CAAC,IAAI,EAAE,MAAM;IAWrB,UAAU,CACR,OAAO,EAAE,MAAM,EACf,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,GACJ,GAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,GAAG,CAAC,EAAE,OAAO,CAAC;KACV;IAiBF,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IA2BH,qBAAqB,CAAC,OAAO,EAAE,YAAY;IAI3C,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;CAGhE;AAED,qBAAa,gBAAiB,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"pseudo-terminal.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/pseudo-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAW,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,wBAAgB,oBAAoB,CAAC,gBAAgB,GAAE,OAAe,kBASrE;AAGD,qBAAa,cAAc;IAcb,OAAO,CAAC,kBAAkB;IAbtC,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,cAAc,CAA+B;IAErD,MAAM,CAAC,WAAW;gBAIE,kBAAkB,EAAE,kBAAkB;IAEpD,IAAI;IAQV,QAAQ,CAAC,IAAI,EAAE,MAAM;IAWrB,UAAU,CACR,OAAO,EAAE,MAAM,EACf,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,GACJ,GAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,GAAG,CAAC,EAAE,OAAO,CAAC;KACV;IAiBF,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IA2BH,qBAAqB,CAAC,OAAO,EAAE,YAAY;IAI3C,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;CAGhE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAUzC,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,YAAY;IAVtB,OAAO,UAAQ;IAEf,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,oBAAoB,CAAgB;gBAGnC,kBAAkB,EAAE,kBAAkB,EACrC,YAAY,EAAE,YAAY;IAmB9B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAa9B,kBAAkB;CAGnB;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEnD,kBAAkB,EAAE,kBAAkB;IAE7C,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;gBAHV,kBAAkB,EAAE,kBAAkB,EAC7C,aAAa,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,eAAe;IAKpC,IAAI,CAAC,OAAO,EAAE,YAAY;CAG3B"}
|
|
@@ -79,22 +79,24 @@ class PseudoTtyProcess {
|
|
|
79
79
|
this.isAlive = true;
|
|
80
80
|
this.exitCallbacks = [];
|
|
81
81
|
this.outputCallbacks = [];
|
|
82
|
-
this.
|
|
82
|
+
this.terminalOutputChunks = [];
|
|
83
83
|
childProcess.onOutput((output) => {
|
|
84
|
-
this.
|
|
84
|
+
this.terminalOutputChunks.push(output);
|
|
85
85
|
this.outputCallbacks.forEach((cb) => cb(output));
|
|
86
86
|
});
|
|
87
87
|
childProcess.onExit((message) => {
|
|
88
88
|
this.isAlive = false;
|
|
89
89
|
const code = messageToCode(message);
|
|
90
90
|
childProcess.cleanup();
|
|
91
|
-
this.
|
|
91
|
+
const terminalOutput = this.terminalOutputChunks.join('');
|
|
92
|
+
this.terminalOutputChunks = [];
|
|
93
|
+
this.exitCallbacks.forEach((cb) => cb(code, terminalOutput));
|
|
92
94
|
});
|
|
93
95
|
}
|
|
94
96
|
async getResults() {
|
|
95
97
|
return new Promise((res) => {
|
|
96
|
-
this.onExit((code) => {
|
|
97
|
-
res({ code, terminalOutput
|
|
98
|
+
this.onExit((code, terminalOutput) => {
|
|
99
|
+
res({ code, terminalOutput });
|
|
98
100
|
});
|
|
99
101
|
});
|
|
100
102
|
}
|
|
@@ -8,7 +8,8 @@ export declare class BatchProcess {
|
|
|
8
8
|
private batchResultsCallbacks;
|
|
9
9
|
private taskResultsCallbacks;
|
|
10
10
|
private outputCallbacks;
|
|
11
|
-
private
|
|
11
|
+
private terminalOutputChunks;
|
|
12
|
+
private joinedTerminalOutput;
|
|
12
13
|
constructor(childProcess: ChildProcess, executorName: string);
|
|
13
14
|
onExit(cb: (code: number) => void): void;
|
|
14
15
|
onBatchResults(cb: (results: BatchResults) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/batch-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAGL,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"batch-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/batch-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAGL,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,YAAY;IAWrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAXtB,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,qBAAqB,CAA8C;IAC3E,OAAO,CAAC,oBAAoB,CAErB;IACP,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAqB;gBAGvC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM;IAqE9B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAIjC,cAAc,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;IAIlD,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI;IAI5D,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBzC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAMnC,iBAAiB,IAAI,MAAM;CAI5B"}
|
|
@@ -11,7 +11,7 @@ class BatchProcess {
|
|
|
11
11
|
this.batchResultsCallbacks = [];
|
|
12
12
|
this.taskResultsCallbacks = [];
|
|
13
13
|
this.outputCallbacks = [];
|
|
14
|
-
this.
|
|
14
|
+
this.terminalOutputChunks = [];
|
|
15
15
|
this.childProcess.on('message', (message) => {
|
|
16
16
|
switch (message.type) {
|
|
17
17
|
case batch_messages_1.BatchMessageType.CompleteTask: {
|
|
@@ -48,7 +48,7 @@ class BatchProcess {
|
|
|
48
48
|
if (this.childProcess.stdout) {
|
|
49
49
|
this.childProcess.stdout.on('data', (chunk) => {
|
|
50
50
|
const output = chunk.toString();
|
|
51
|
-
this.
|
|
51
|
+
this.terminalOutputChunks.push(output);
|
|
52
52
|
// Maintain current terminal output behavior
|
|
53
53
|
process.stdout.write(chunk);
|
|
54
54
|
// Notify callbacks for TUI
|
|
@@ -61,7 +61,7 @@ class BatchProcess {
|
|
|
61
61
|
if (this.childProcess.stderr) {
|
|
62
62
|
this.childProcess.stderr.on('data', (chunk) => {
|
|
63
63
|
const output = chunk.toString();
|
|
64
|
-
this.
|
|
64
|
+
this.terminalOutputChunks.push(output);
|
|
65
65
|
// Maintain current terminal output behavior
|
|
66
66
|
process.stderr.write(chunk);
|
|
67
67
|
// Notify callbacks for TUI
|
|
@@ -108,7 +108,8 @@ class BatchProcess {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
getTerminalOutput() {
|
|
111
|
-
|
|
111
|
+
this.joinedTerminalOutput ??= this.terminalOutputChunks.join('');
|
|
112
|
+
return this.joinedTerminalOutput;
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
exports.BatchProcess = BatchProcess;
|
|
@@ -2,7 +2,8 @@ import type { ChildProcess, Serializable } from 'child_process';
|
|
|
2
2
|
import type { RunningTask } from './running-task';
|
|
3
3
|
export declare class NodeChildProcessWithNonDirectOutput implements RunningTask {
|
|
4
4
|
private childProcess;
|
|
5
|
-
private
|
|
5
|
+
private terminalOutputChunks;
|
|
6
|
+
private joinedTerminalOutput;
|
|
6
7
|
private exitCallbacks;
|
|
7
8
|
private outputCallbacks;
|
|
8
9
|
private exitCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-child-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/node-child-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,mCAAoC,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"node-child-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/node-child-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,mCAAoC,YAAW,WAAW;IAUnE,OAAO,CAAC,YAAY;IATtB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAClC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA8DrE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI;IAIzD,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAerE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;CAOpC;AA2DD,qBAAa,gCAAiC,YAAW,WAAW;IAQhE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAR7B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAqD;IAE1E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,MAAM;IAqBrC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;IAInD,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,WAAW;IAMX,iBAAiB;IAKjB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;CAOpC"}
|
|
@@ -9,7 +9,7 @@ const exit_codes_1 = require("../../utils/exit-codes");
|
|
|
9
9
|
class NodeChildProcessWithNonDirectOutput {
|
|
10
10
|
constructor(childProcess, { streamOutput, prefix }) {
|
|
11
11
|
this.childProcess = childProcess;
|
|
12
|
-
this.
|
|
12
|
+
this.terminalOutputChunks = [];
|
|
13
13
|
this.exitCallbacks = [];
|
|
14
14
|
this.outputCallbacks = [];
|
|
15
15
|
if (streamOutput) {
|
|
@@ -38,8 +38,11 @@ class NodeChildProcessWithNonDirectOutput {
|
|
|
38
38
|
if (code === null)
|
|
39
39
|
code = (0, exit_codes_1.signalToCode)(signal);
|
|
40
40
|
this.exitCode = code;
|
|
41
|
+
// Join once and cache before notifying exit callbacks
|
|
42
|
+
this.joinedTerminalOutput = this.terminalOutputChunks.join('');
|
|
43
|
+
this.terminalOutputChunks = [];
|
|
41
44
|
for (const cb of this.exitCallbacks) {
|
|
42
|
-
cb(code, this.
|
|
45
|
+
cb(code, this.joinedTerminalOutput);
|
|
43
46
|
}
|
|
44
47
|
});
|
|
45
48
|
// Re-emit any messages from the task process
|
|
@@ -50,7 +53,7 @@ class NodeChildProcessWithNonDirectOutput {
|
|
|
50
53
|
});
|
|
51
54
|
this.childProcess.stdout.on('data', (chunk) => {
|
|
52
55
|
const output = chunk.toString();
|
|
53
|
-
this.
|
|
56
|
+
this.terminalOutputChunks.push(output);
|
|
54
57
|
// Stream output to TUI via callbacks
|
|
55
58
|
for (const cb of this.outputCallbacks) {
|
|
56
59
|
cb(output);
|
|
@@ -58,7 +61,7 @@ class NodeChildProcessWithNonDirectOutput {
|
|
|
58
61
|
});
|
|
59
62
|
this.childProcess.stderr.on('data', (chunk) => {
|
|
60
63
|
const output = chunk.toString();
|
|
61
|
-
this.
|
|
64
|
+
this.terminalOutputChunks.push(output);
|
|
62
65
|
// Stream output to TUI via callbacks
|
|
63
66
|
for (const cb of this.outputCallbacks) {
|
|
64
67
|
cb(output);
|
|
@@ -75,7 +78,7 @@ class NodeChildProcessWithNonDirectOutput {
|
|
|
75
78
|
if (typeof this.exitCode === 'number') {
|
|
76
79
|
return {
|
|
77
80
|
code: this.exitCode,
|
|
78
|
-
terminalOutput: this.
|
|
81
|
+
terminalOutput: this.joinedTerminalOutput ?? this.terminalOutputChunks.join(''),
|
|
79
82
|
};
|
|
80
83
|
}
|
|
81
84
|
return new Promise((res) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AASnD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAC;AAUxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,qBAAa,gBAAgB;IAgDzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAzDtC,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,uBAAuB,CAG7B;IAEF,OAAO,CAAC,mBAAmB,CAElB;IACT,OAAO,CAAC,aAAa,CAInB;IAGF,OAAO,CAAC,QAAQ,CAGd;IACF,OAAO,CAAC,eAAe,CAAwC;IAE/D,OAAO,CAAC,mBAAmB,CAAkD;IAE7E,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,gBAAgB,CAAmC;IAE3D,OAAO,CAAC,cAAc,CAEf;IACP,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,sBAAsB,CAAkC;IAChE,OAAO,CAAC,uBAAuB,CAAkC;IAEjE,OAAO,CAAC,wBAAwB,CAAqB;gBAKlC,MAAM,EAAE,UAAU,EAClB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,eAAe,EAAE,IAAI,EAAE,EACvB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GAAG,yBAAyB,EAC3C,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,mBAAmB,GAAE,SAAqB;IAGvD,IAAI;IAiBJ,GAAG;;;IA6CF,SAAS;YAIF,wCAAwC;IAwDtD,OAAO,CAAC,YAAY;YAUN,WAAW;YAoBX,qBAAqB;IAgB5B,wBAAwB;YAajB,kBAAkB;YAUlB,iBAAiB;IAuClB,wBAAwB,CACnC,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;YAsFV,QAAQ;IA8FhB,uBAAuB,CAC3B,cAAc,EAAE,OAAO,EACvB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;YAkER,OAAO;YAsJP,sBAAsB;IA2C9B,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;YA4GvC,WAAW;YAQX,YAAY;YA6FZ,kCAAkC;IAQhD,OAAO,CAAC,QAAQ;YA0CF,iBAAiB;IAuB/B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;YAIH,0BAA0B;YAQ1B,iBAAiB;YAQjB,OAAO;IA6BrB,OAAO,CAAC,8BAA8B;CA6BvC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GAAG,yBAAyB,EAC3C,SAAS,EAAE,SAAS,UAqBrB"}
|
|
@@ -402,23 +402,11 @@ class TaskOrchestrator {
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
if (!streamOutput) {
|
|
405
|
-
if
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
});
|
|
411
|
-
runningTask.onExit((code) => {
|
|
412
|
-
this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
|
|
413
|
-
(0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
runningTask.onExit((code, terminalOutput) => {
|
|
418
|
-
this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
|
|
419
|
-
(0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
|
|
420
|
-
});
|
|
421
|
-
}
|
|
405
|
+
// TODO: shouldn't this be checking if the task is continuous before writing anything to disk or calling printTaskTerminalOutput?
|
|
406
|
+
runningTask.onExit((code, terminalOutput) => {
|
|
407
|
+
this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
|
|
408
|
+
(0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
|
|
409
|
+
});
|
|
422
410
|
}
|
|
423
411
|
return runningTask;
|
|
424
412
|
}
|