nx 22.6.0 → 22.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/nx.js +19 -11
- package/package.json +11 -12
- package/release/changelog-renderer/index.d.ts +2 -1
- package/release/changelog-renderer/index.d.ts.map +1 -1
- package/schemas/nx-schema.json +102 -0
- package/src/adapter/ngcli-adapter.d.ts +8 -5
- package/src/adapter/ngcli-adapter.d.ts.map +1 -1
- package/src/adapter/ngcli-adapter.js +33 -19
- package/src/ai/clone-ai-config-repo.d.ts.map +1 -1
- package/src/ai/clone-ai-config-repo.js +2 -0
- package/src/command-line/add/add.js +1 -1
- package/src/command-line/examples.d.ts +7 -0
- package/src/command-line/examples.d.ts.map +1 -1
- package/src/command-line/examples.js +29 -1
- package/src/command-line/exec/exec.js +3 -3
- package/src/command-line/format/format.js +3 -3
- package/src/command-line/generate/generate.d.ts.map +1 -1
- package/src/command-line/generate/generate.js +1 -1
- package/src/command-line/graph/graph.js +1 -1
- package/src/command-line/init/command-object.js +1 -21
- package/src/command-line/init/configure-plugins.js +1 -1
- package/src/command-line/init/implementation/angular/integrated-workspace.js +1 -1
- package/src/command-line/init/implementation/angular/legacy-angular-versions.js +2 -2
- package/src/command-line/init/implementation/deduce-default-base.js +5 -5
- package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +2 -2
- package/src/command-line/init/implementation/dot-nx/nxw.js +1 -1
- package/src/command-line/init/implementation/utils.d.ts +1 -2
- package/src/command-line/init/implementation/utils.d.ts.map +1 -1
- package/src/command-line/init/implementation/utils.js +1 -15
- package/src/command-line/init/init-v1.d.ts +0 -3
- package/src/command-line/init/init-v1.d.ts.map +1 -1
- package/src/command-line/init/init-v1.js +1 -27
- package/src/command-line/init/init-v2.d.ts +0 -1
- package/src/command-line/init/init-v2.d.ts.map +1 -1
- package/src/command-line/init/init-v2.js +7 -35
- package/src/command-line/mcp/mcp.d.ts.map +1 -1
- package/src/command-line/mcp/mcp.js +2 -0
- package/src/command-line/migrate/migrate-ui-api.d.ts.map +1 -1
- package/src/command-line/migrate/migrate-ui-api.js +13 -0
- package/src/command-line/migrate/migrate.d.ts.map +1 -1
- package/src/command-line/migrate/migrate.js +41 -23
- package/src/command-line/migrate/run-migration-process.js +2 -0
- package/src/command-line/nx-cloud/connect/view-logs.js +1 -1
- package/src/command-line/nx-commands.js +65 -65
- package/src/command-line/release/config/version-plans.js +1 -1
- package/src/command-line/release/utils/exec-command.js +1 -1
- package/src/command-line/release/utils/launch-editor.js +2 -2
- package/src/command-line/release/utils/remote-release-clients/github.d.ts +1 -0
- package/src/command-line/release/utils/remote-release-clients/github.d.ts.map +1 -1
- package/src/command-line/release/utils/remote-release-clients/github.js +39 -2
- package/src/command-line/release/utils/remote-release-clients/gitlab.d.ts.map +1 -1
- package/src/command-line/release/utils/remote-release-clients/gitlab.js +1 -0
- package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
- package/src/command-line/release/version/release-group-processor.js +2 -4
- package/src/command-line/release/version.js +1 -1
- package/src/command-line/run/run-one.d.ts.map +1 -1
- package/src/command-line/run/run-one.js +1 -1
- package/src/command-line/run/run.d.ts.map +1 -1
- package/src/command-line/run/run.js +2 -2
- package/src/command-line/show/target.js +5 -2
- package/src/command-line/watch/watch.js +1 -1
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.d.ts +2 -2
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +3 -2
- package/src/daemon/client/generate-help-output.js +1 -1
- package/src/daemon/server/handle-configure-ai-agents.js +11 -4
- package/src/daemon/server/handle-hash-tasks.d.ts +1 -0
- package/src/daemon/server/handle-hash-tasks.d.ts.map +1 -1
- package/src/daemon/server/handle-hash-tasks.js +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-listener-sockets.d.ts +1 -1
- package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -1
- package/src/daemon/server/shutdown-utils.js +1 -1
- package/src/devkit-internals.d.ts +3 -2
- package/src/devkit-internals.d.ts.map +1 -1
- package/src/devkit-internals.js +5 -4
- package/src/executors/run-commands/run-commands.impl.d.ts.map +1 -1
- package/src/executors/run-commands/run-commands.impl.js +60 -7
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +1 -5
- package/src/executors/run-script/run-script.impl.js +1 -1
- package/src/executors/utils/convert-nx-executor.js +2 -2
- package/src/generators/utils/project-configuration.js +4 -4
- package/src/hasher/hash-plan-inspector.d.ts.map +1 -1
- package/src/hasher/hash-plan-inspector.js +1 -1
- package/src/hasher/native-task-hasher-impl.d.ts +2 -2
- package/src/hasher/native-task-hasher-impl.d.ts.map +1 -1
- package/src/hasher/native-task-hasher-impl.js +6 -6
- package/src/hasher/task-hasher.d.ts +4 -4
- package/src/hasher/task-hasher.d.ts.map +1 -1
- package/src/hasher/task-hasher.js +9 -6
- package/src/native/index.d.ts +1 -1
- package/src/native/nx.wasm32-wasi.debug.wasm +0 -0
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +1 -1
- package/src/plugins/js/lock-file/bun-parser.js +1 -1
- package/src/plugins/js/lock-file/lock-file.d.ts.map +1 -1
- package/src/plugins/js/lock-file/lock-file.js +3 -1
- package/src/project-graph/build-project-graph.d.ts +1 -1
- package/src/project-graph/build-project-graph.d.ts.map +1 -1
- package/src/project-graph/build-project-graph.js +2 -2
- package/src/project-graph/error-types.d.ts +2 -1
- package/src/project-graph/error-types.d.ts.map +1 -1
- package/src/project-graph/file-utils.d.ts.map +1 -1
- package/src/project-graph/file-utils.js +4 -2
- package/src/project-graph/nx-deps-cache.d.ts +1 -1
- package/src/project-graph/nx-deps-cache.d.ts.map +1 -1
- package/src/project-graph/plugins/isolation/isolated-plugin.js +5 -5
- package/src/project-graph/project-graph.d.ts +2 -2
- package/src/project-graph/utils/project-configuration/name-substitution-manager.d.ts +23 -18
- package/src/project-graph/utils/project-configuration/name-substitution-manager.d.ts.map +1 -1
- package/src/project-graph/utils/project-configuration/name-substitution-manager.js +129 -87
- package/src/project-graph/utils/project-configuration/project-nodes-manager.d.ts +40 -0
- package/src/project-graph/utils/project-configuration/project-nodes-manager.d.ts.map +1 -0
- package/src/project-graph/utils/project-configuration/project-nodes-manager.js +264 -0
- package/src/project-graph/utils/project-configuration/target-merging.d.ts +32 -0
- package/src/project-graph/utils/project-configuration/target-merging.d.ts.map +1 -0
- package/src/project-graph/utils/project-configuration/target-merging.js +332 -0
- package/src/project-graph/utils/project-configuration/target-normalization.d.ts +13 -0
- package/src/project-graph/utils/project-configuration/target-normalization.d.ts.map +1 -0
- package/src/project-graph/utils/project-configuration/target-normalization.js +177 -0
- package/src/project-graph/utils/project-configuration-utils.d.ts +16 -41
- package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
- package/src/project-graph/utils/project-configuration-utils.js +56 -734
- package/src/tasks-runner/cache.js +1 -1
- package/src/tasks-runner/default-tasks-runner.js +1 -1
- package/src/tasks-runner/life-cycle.d.ts +4 -0
- package/src/tasks-runner/life-cycle.d.ts.map +1 -1
- 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 +4 -0
- package/src/tasks-runner/task-orchestrator.d.ts +12 -4
- package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +123 -68
- package/src/tasks-runner/tasks-schedule.d.ts +1 -1
- package/src/tasks-runner/tasks-schedule.d.ts.map +1 -1
- package/src/tasks-runner/tasks-schedule.js +14 -3
- package/src/tasks-runner/utils.d.ts +2 -2
- package/src/tasks-runner/utils.d.ts.map +1 -1
- package/src/tasks-runner/utils.js +5 -7
- package/src/utils/ab-testing.js +1 -1
- package/src/utils/analytics-prompt.d.ts.map +1 -1
- package/src/utils/analytics-prompt.js +2 -0
- package/src/utils/child-process.d.ts.map +1 -1
- package/src/utils/child-process.js +1 -2
- package/src/utils/command-line-utils.js +3 -3
- package/src/utils/default-base.js +1 -1
- package/src/utils/git-utils.d.ts.map +1 -1
- package/src/utils/git-utils.index-filter.js +2 -2
- package/src/utils/git-utils.js +6 -5
- package/src/utils/git-utils.tree-filter.js +1 -1
- package/src/utils/machine-id-cache.d.ts.map +1 -1
- package/src/utils/machine-id-cache.js +72 -2
- package/src/utils/package-json.js +2 -2
- package/src/utils/package-manager.d.ts.map +1 -1
- package/src/utils/package-manager.js +8 -13
- package/src/utils/provenance.d.ts.map +1 -1
- package/src/utils/provenance.js +2 -2
- package/src/utils/require-nx-key.js +1 -1
- package/src/utils/serialize-overrides-into-command-line.d.ts.map +1 -1
- package/src/utils/serialize-overrides-into-command-line.js +3 -4
- package/src/utils/shell-quoting.d.ts +11 -0
- package/src/utils/shell-quoting.d.ts.map +1 -0
- package/src/utils/shell-quoting.js +41 -0
- package/src/utils/split-target.d.ts +13 -2
- package/src/utils/split-target.d.ts.map +1 -1
- package/src/utils/split-target.js +180 -31
- package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.d.ts +0 -2
- package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.js +0 -21
- package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.d.ts +0 -2
- package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +0 -20
- package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.d.ts +0 -2
- package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.js +0 -17
- package/src/command-line/init/implementation/react/check-for-uncommitted-changes.d.ts +0 -2
- package/src/command-line/init/implementation/react/check-for-uncommitted-changes.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/check-for-uncommitted-changes.js +0 -20
- package/src/command-line/init/implementation/react/clean-up-files.d.ts +0 -2
- package/src/command-line/init/implementation/react/clean-up-files.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/clean-up-files.js +0 -30
- package/src/command-line/init/implementation/react/index.d.ts +0 -5
- package/src/command-line/init/implementation/react/index.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/index.js +0 -77
- package/src/command-line/init/implementation/react/read-name-from-package-json.d.ts +0 -2
- package/src/command-line/init/implementation/react/read-name-from-package-json.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/read-name-from-package-json.js +0 -16
- package/src/command-line/init/implementation/react/rename-js-to-jsx.d.ts +0 -2
- package/src/command-line/init/implementation/react/rename-js-to-jsx.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/rename-js-to-jsx.js +0 -22
- package/src/command-line/init/implementation/react/tsconfig-setup.d.ts +0 -2
- package/src/command-line/init/implementation/react/tsconfig-setup.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/tsconfig-setup.js +0 -108
- package/src/command-line/init/implementation/react/write-vite-config.d.ts +0 -2
- package/src/command-line/init/implementation/react/write-vite-config.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/write-vite-config.js +0 -53
- package/src/command-line/init/implementation/react/write-vite-index-html.d.ts +0 -2
- package/src/command-line/init/implementation/react/write-vite-index-html.d.ts.map +0 -1
- package/src/command-line/init/implementation/react/write-vite-index-html.js +0 -24
|
@@ -54,7 +54,7 @@ class RemoteCacheV2 {
|
|
|
54
54
|
}
|
|
55
55
|
exports.RemoteCacheV2 = RemoteCacheV2;
|
|
56
56
|
const defaultTasksRunner = async (tasks, options, context) => {
|
|
57
|
-
const threadCount = (0, task_orchestrator_1.
|
|
57
|
+
const { total: threadCount } = (0, task_orchestrator_1.getThreadPoolSize)(options, context.taskGraph);
|
|
58
58
|
await options.lifeCycle.startCommand(threadCount);
|
|
59
59
|
try {
|
|
60
60
|
return await runAllTasks(options, context);
|
|
@@ -3,6 +3,10 @@ import { BatchInfo, BatchStatus, ExternalObject, TaskStatus as NativeTaskStatus
|
|
|
3
3
|
import { TaskStatus } from './tasks-runner';
|
|
4
4
|
/**
|
|
5
5
|
* The result of a completed {@link Task}
|
|
6
|
+
*
|
|
7
|
+
* Task timing information (start and end timestamps) is available
|
|
8
|
+
* on the {@link Task} object itself via {@link Task.startTime} and
|
|
9
|
+
* {@link Task.endTime}.
|
|
6
10
|
*/
|
|
7
11
|
export interface TaskResult {
|
|
8
12
|
task: Task;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"life-cycle.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/life-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,WAAW,EACX,cAAc,EACd,UAAU,IAAI,gBAAgB,EAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C
|
|
1
|
+
{"version":3,"file":"life-cycle.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/life-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;eA8gBkC,SAAS;;EAC3C"}
|
|
@@ -44,6 +44,10 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
lifeCycle.appendTaskOutput = (taskId, output) => {
|
|
47
|
+
// Task already completed and output was finalized by endTasks — discard late-arriving data
|
|
48
|
+
if (!taskOutputChunks[taskId]) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
47
51
|
taskOutputChunks[taskId].push(output);
|
|
48
52
|
};
|
|
49
53
|
// TODO(@AgentEnder): The following 2 methods should be one but will need more refactoring
|
|
@@ -35,6 +35,7 @@ export declare class TaskOrchestrator {
|
|
|
35
35
|
private completedTasks;
|
|
36
36
|
private waitingForTasks;
|
|
37
37
|
private groups;
|
|
38
|
+
private continuousTasksStarted;
|
|
38
39
|
private bailed;
|
|
39
40
|
private resolveStopPromise;
|
|
40
41
|
private stopRequested;
|
|
@@ -42,14 +43,16 @@ export declare class TaskOrchestrator {
|
|
|
42
43
|
private runningRunCommandsTasks;
|
|
43
44
|
private runningDiscreteTasks;
|
|
44
45
|
private discreteTaskExitHandled;
|
|
45
|
-
private
|
|
46
|
+
private continuousTaskExitHandled;
|
|
47
|
+
private cleanupPromise;
|
|
46
48
|
constructor(hasher: TaskHasher, initiatingProject: string | undefined, initiatingTasks: Task[], projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, options: NxArgs & DefaultTasksRunnerOptions, bail: boolean, daemon: DaemonClient, outputStyle: string, taskGraphForHashing?: TaskGraph);
|
|
47
49
|
init(): Promise<void>;
|
|
48
50
|
run(): Promise<{
|
|
49
51
|
[id: string]: TaskStatus;
|
|
50
52
|
}>;
|
|
51
53
|
nextBatch(): Batch;
|
|
52
|
-
private
|
|
54
|
+
private executeDiscreteTaskLoop;
|
|
55
|
+
private executeContinuousTaskLoop;
|
|
53
56
|
private processTasks;
|
|
54
57
|
private processTask;
|
|
55
58
|
processAllScheduledTasks(): void;
|
|
@@ -90,11 +93,16 @@ export declare class TaskOrchestrator {
|
|
|
90
93
|
private openGroup;
|
|
91
94
|
private shouldCopyOutputsFromCache;
|
|
92
95
|
private recordOutputsHash;
|
|
93
|
-
private
|
|
96
|
+
private handleContinuousTaskExit;
|
|
94
97
|
private completeContinuousTask;
|
|
95
98
|
private cleanup;
|
|
99
|
+
private performCleanup;
|
|
96
100
|
private setupSignalHandlers;
|
|
97
101
|
private cleanUpUnneededContinuousTasks;
|
|
98
102
|
}
|
|
99
|
-
export declare function
|
|
103
|
+
export declare function getThreadPoolSize(options: NxArgs & DefaultTasksRunnerOptions, taskGraph: TaskGraph): {
|
|
104
|
+
discrete: number;
|
|
105
|
+
continuous: number;
|
|
106
|
+
total: number;
|
|
107
|
+
};
|
|
100
108
|
//# sourceMappingURL=task-orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"AAKA,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;AAIvD,OAAO,EAAa,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAS9D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAUrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAC;AAIxD,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;
|
|
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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TaskOrchestrator = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.getThreadPoolSize = getThreadPoolSize;
|
|
5
5
|
const events_1 = require("events");
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const pc = require("picocolors");
|
|
@@ -57,6 +57,7 @@ class TaskOrchestrator {
|
|
|
57
57
|
this.completedTasks = {};
|
|
58
58
|
this.waitingForTasks = [];
|
|
59
59
|
this.groups = [];
|
|
60
|
+
this.continuousTasksStarted = 0;
|
|
60
61
|
this.bailed = false;
|
|
61
62
|
this.resolveStopPromise = null;
|
|
62
63
|
this.stopRequested = false;
|
|
@@ -64,7 +65,8 @@ class TaskOrchestrator {
|
|
|
64
65
|
this.runningRunCommandsTasks = new Map();
|
|
65
66
|
this.runningDiscreteTasks = new Map();
|
|
66
67
|
this.discreteTaskExitHandled = new Map();
|
|
67
|
-
this.
|
|
68
|
+
this.continuousTaskExitHandled = new Map();
|
|
69
|
+
this.cleanupPromise = null;
|
|
68
70
|
}
|
|
69
71
|
async init() {
|
|
70
72
|
this.setupSignalHandlers();
|
|
@@ -85,14 +87,17 @@ class TaskOrchestrator {
|
|
|
85
87
|
async run() {
|
|
86
88
|
await this.init();
|
|
87
89
|
perf_hooks_1.performance.mark('task-execution:start');
|
|
88
|
-
const
|
|
90
|
+
const { discrete, continuous, total } = getThreadPoolSize(this.options, this.taskGraph);
|
|
89
91
|
const threads = [];
|
|
90
|
-
process.stdout.setMaxListeners(
|
|
91
|
-
process.stderr.setMaxListeners(
|
|
92
|
-
process.setMaxListeners(
|
|
92
|
+
process.stdout.setMaxListeners(total + events_1.defaultMaxListeners);
|
|
93
|
+
process.stderr.setMaxListeners(total + events_1.defaultMaxListeners);
|
|
94
|
+
process.setMaxListeners(total + events_1.defaultMaxListeners);
|
|
93
95
|
// initial seeding of the queue
|
|
94
|
-
for (let i = 0; i <
|
|
95
|
-
threads.push(this.
|
|
96
|
+
for (let i = 0; i < discrete; ++i) {
|
|
97
|
+
threads.push(this.executeDiscreteTaskLoop());
|
|
98
|
+
}
|
|
99
|
+
for (let i = 0; i < continuous; ++i) {
|
|
100
|
+
threads.push(this.executeContinuousTaskLoop(continuous));
|
|
96
101
|
}
|
|
97
102
|
await Promise.race([
|
|
98
103
|
Promise.all(threads),
|
|
@@ -123,47 +128,62 @@ class TaskOrchestrator {
|
|
|
123
128
|
nextBatch() {
|
|
124
129
|
return this.tasksSchedule.nextBatch();
|
|
125
130
|
}
|
|
126
|
-
async
|
|
127
|
-
// completed all the tasks
|
|
128
|
-
if (!this.tasksSchedule.hasTasks() || this.bailed || this.stopRequested) {
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
+
async executeDiscreteTaskLoop() {
|
|
131
132
|
const doNotSkipCache = this.options.skipNxCache === false ||
|
|
132
133
|
this.options.skipNxCache === undefined;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
134
|
+
while (true) {
|
|
135
|
+
// completed all the tasks
|
|
136
|
+
if (!this.tasksSchedule.hasTasks() || this.bailed || this.stopRequested) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
this.processAllScheduledTasks();
|
|
140
|
+
const batch = this.nextBatch();
|
|
141
|
+
if (batch) {
|
|
142
|
+
const groupId = this.closeGroup();
|
|
143
|
+
await this.applyFromCacheOrRunBatch(doNotSkipCache, batch, groupId);
|
|
144
|
+
this.openGroup(groupId);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const task = this.tasksSchedule.nextTask((t) => !t.continuous);
|
|
148
|
+
if (task) {
|
|
149
|
+
const groupId = this.closeGroup();
|
|
150
|
+
await this.applyFromCacheOrRunTask(doNotSkipCache, task, groupId);
|
|
151
|
+
this.openGroup(groupId);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
// block until some other task completes, then try again
|
|
155
|
+
await new Promise((res) => this.waitingForTasks.push(res));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async executeContinuousTaskLoop(continuousTaskCount) {
|
|
159
|
+
while (true) {
|
|
160
|
+
// completed all the tasks
|
|
161
|
+
if (!this.tasksSchedule.hasTasks() || this.bailed || this.stopRequested) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
this.processAllScheduledTasks();
|
|
165
|
+
const task = this.tasksSchedule.nextTask((t) => t.continuous);
|
|
166
|
+
if (task) {
|
|
167
|
+
// Use a separate groupId space (parallel..parallel+N) so continuous tasks
|
|
168
|
+
// don't consume discrete group slots
|
|
169
|
+
const groupId = this.options.parallel + this.continuousTasksStarted++;
|
|
145
170
|
const runningTask = await this.startContinuousTask(task, groupId);
|
|
146
171
|
if (this.initializingTaskIds.has(task.id)) {
|
|
147
|
-
await
|
|
148
|
-
runningTask.onExit((code) => {
|
|
149
|
-
if (!this.tuiEnabled) {
|
|
150
|
-
if (code > 128) {
|
|
151
|
-
process.exit(code);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
res();
|
|
155
|
-
});
|
|
156
|
-
});
|
|
172
|
+
await this.continuousTaskExitHandled.get(task.id);
|
|
157
173
|
}
|
|
174
|
+
// all continuous tasks have been started, thread can exit
|
|
175
|
+
if (this.continuousTasksStarted >= continuousTaskCount) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
continue;
|
|
158
179
|
}
|
|
159
|
-
|
|
160
|
-
|
|
180
|
+
// all continuous tasks have been started, thread can exit
|
|
181
|
+
if (this.continuousTasksStarted >= continuousTaskCount) {
|
|
182
|
+
return null;
|
|
161
183
|
}
|
|
162
|
-
|
|
163
|
-
|
|
184
|
+
// block until some other task completes, then try again
|
|
185
|
+
await new Promise((res) => this.waitingForTasks.push(res));
|
|
164
186
|
}
|
|
165
|
-
// block until some other task completes, then try again
|
|
166
|
-
return new Promise((res) => this.waitingForTasks.push(res)).then(() => this.executeNextBatchOfTasksUsingTaskSchedule());
|
|
167
187
|
}
|
|
168
188
|
processTasks(taskIds) {
|
|
169
189
|
for (const taskId of taskIds) {
|
|
@@ -370,7 +390,6 @@ class TaskOrchestrator {
|
|
|
370
390
|
task.startTime = result.startTime;
|
|
371
391
|
task.endTime = result.endTime;
|
|
372
392
|
return {
|
|
373
|
-
...result,
|
|
374
393
|
code: result.success ? 0 : 1,
|
|
375
394
|
task,
|
|
376
395
|
status: (result.success ? 'success' : 'failure'),
|
|
@@ -609,7 +628,12 @@ class TaskOrchestrator {
|
|
|
609
628
|
groupId,
|
|
610
629
|
ownsRunningTasksService: false,
|
|
611
630
|
});
|
|
612
|
-
this.
|
|
631
|
+
this.continuousTaskExitHandled.set(task.id, new Promise((resolve) => {
|
|
632
|
+
runningTask.onExit(async (code) => {
|
|
633
|
+
await this.handleContinuousTaskExit(code, task, groupId, false);
|
|
634
|
+
resolve();
|
|
635
|
+
});
|
|
636
|
+
}));
|
|
613
637
|
// task is already running by another process, we schedule the next tasks
|
|
614
638
|
// and release the threads
|
|
615
639
|
await this.scheduleNextTasksAndReleaseThreads();
|
|
@@ -635,7 +659,12 @@ class TaskOrchestrator {
|
|
|
635
659
|
groupId,
|
|
636
660
|
ownsRunningTasksService: true,
|
|
637
661
|
});
|
|
638
|
-
this.
|
|
662
|
+
this.continuousTaskExitHandled.set(task.id, new Promise((resolve) => {
|
|
663
|
+
childProcess.onExit(async (code) => {
|
|
664
|
+
await this.handleContinuousTaskExit(code, task, groupId, true);
|
|
665
|
+
resolve();
|
|
666
|
+
});
|
|
667
|
+
}));
|
|
639
668
|
await this.scheduleNextTasksAndReleaseThreads();
|
|
640
669
|
return childProcess;
|
|
641
670
|
}
|
|
@@ -821,22 +850,20 @@ class TaskOrchestrator {
|
|
|
821
850
|
}
|
|
822
851
|
}
|
|
823
852
|
// endregion utils
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
}
|
|
839
|
-
});
|
|
853
|
+
async handleContinuousTaskExit(code, task, groupId, ownsRunningTasksService) {
|
|
854
|
+
// If cleanup already completed this task, nothing left to do
|
|
855
|
+
if (this.completedTasks[task.id] !== undefined) {
|
|
856
|
+
return;
|
|
857
|
+
}
|
|
858
|
+
const stoppingReason = this.runningContinuousTasks.get(task.id)?.stoppingReason;
|
|
859
|
+
if (stoppingReason || exit_codes_1.EXPECTED_TERMINATION_SIGNALS.has(code)) {
|
|
860
|
+
const reason = stoppingReason === 'fulfilled' ? 'fulfilled' : 'interrupted';
|
|
861
|
+
await this.completeContinuousTask(task, groupId, ownsRunningTasksService, reason);
|
|
862
|
+
}
|
|
863
|
+
else {
|
|
864
|
+
console.error(`Task "${task.id}" is continuous but exited with code ${code}`);
|
|
865
|
+
await this.completeContinuousTask(task, groupId, ownsRunningTasksService, 'crashed');
|
|
866
|
+
}
|
|
840
867
|
}
|
|
841
868
|
async completeContinuousTask(task, groupId, ownsRunningTasksService, reason) {
|
|
842
869
|
if (this.completedTasks[task.id] !== undefined)
|
|
@@ -863,10 +890,13 @@ class TaskOrchestrator {
|
|
|
863
890
|
}
|
|
864
891
|
}
|
|
865
892
|
async cleanup() {
|
|
866
|
-
if (this.
|
|
867
|
-
return;
|
|
893
|
+
if (this.cleanupPromise) {
|
|
894
|
+
return this.cleanupPromise;
|
|
868
895
|
}
|
|
869
|
-
this.
|
|
896
|
+
this.cleanupPromise = this.performCleanup();
|
|
897
|
+
return this.cleanupPromise;
|
|
898
|
+
}
|
|
899
|
+
async performCleanup() {
|
|
870
900
|
// Mark all running tasks for intentional stop
|
|
871
901
|
const reason = this.stopRequested ? 'interrupted' : 'fulfilled';
|
|
872
902
|
for (const entry of this.runningContinuousTasks.values()) {
|
|
@@ -916,6 +946,28 @@ class TaskOrchestrator {
|
|
|
916
946
|
setupSignalHandlers() {
|
|
917
947
|
process.once('SIGINT', () => {
|
|
918
948
|
this.stopRequested = true;
|
|
949
|
+
if (!this.tuiEnabled) {
|
|
950
|
+
// Synchronously remove DB entries before async cleanup to prevent
|
|
951
|
+
// new nx processes from seeing stale "Waiting for ..." messages.
|
|
952
|
+
// This replicates the cleanup that process.exit() + Rust Drop
|
|
953
|
+
// previously provided.
|
|
954
|
+
for (const [taskId, { ownsRunningTasksService }] of this
|
|
955
|
+
.runningContinuousTasks) {
|
|
956
|
+
if (ownsRunningTasksService) {
|
|
957
|
+
this.runningTasksService?.removeRunningTask(taskId);
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
// Silence output — pnpm (and similar wrappers) may exit before nx
|
|
961
|
+
// finishes cleanup, returning the shell prompt. Any output after
|
|
962
|
+
// that point would appear after the prompt.
|
|
963
|
+
const noop = (_chunk, _encoding, callback) => {
|
|
964
|
+
if (callback)
|
|
965
|
+
callback();
|
|
966
|
+
return true;
|
|
967
|
+
};
|
|
968
|
+
process.stdout.write = noop;
|
|
969
|
+
process.stderr.write = noop;
|
|
970
|
+
}
|
|
919
971
|
this.cleanup().finally(() => {
|
|
920
972
|
if (this.resolveStopPromise) {
|
|
921
973
|
this.resolveStopPromise();
|
|
@@ -926,6 +978,7 @@ class TaskOrchestrator {
|
|
|
926
978
|
});
|
|
927
979
|
});
|
|
928
980
|
process.once('SIGTERM', () => {
|
|
981
|
+
this.stopRequested = true;
|
|
929
982
|
this.cleanup().finally(() => {
|
|
930
983
|
if (this.resolveStopPromise) {
|
|
931
984
|
this.resolveStopPromise();
|
|
@@ -933,6 +986,7 @@ class TaskOrchestrator {
|
|
|
933
986
|
});
|
|
934
987
|
});
|
|
935
988
|
process.once('SIGHUP', () => {
|
|
989
|
+
this.stopRequested = true;
|
|
936
990
|
this.cleanup().finally(() => {
|
|
937
991
|
if (this.resolveStopPromise) {
|
|
938
992
|
this.resolveStopPromise();
|
|
@@ -964,7 +1018,7 @@ class TaskOrchestrator {
|
|
|
964
1018
|
}
|
|
965
1019
|
}
|
|
966
1020
|
exports.TaskOrchestrator = TaskOrchestrator;
|
|
967
|
-
function
|
|
1021
|
+
function getThreadPoolSize(options, taskGraph) {
|
|
968
1022
|
if (options['parallel'] === 'false' ||
|
|
969
1023
|
options['parallel'] === false) {
|
|
970
1024
|
options['parallel'] = 1;
|
|
@@ -975,8 +1029,9 @@ function getThreadCount(options, taskGraph) {
|
|
|
975
1029
|
options['parallel'] === '') {
|
|
976
1030
|
options['parallel'] = Number(options['maxParallel'] || 3);
|
|
977
1031
|
}
|
|
978
|
-
const
|
|
979
|
-
|
|
980
|
-
const
|
|
981
|
-
|
|
1032
|
+
const continuousCount = Object.values(taskGraph.tasks).filter((t) => t.continuous).length;
|
|
1033
|
+
const discrete = options['parallel'];
|
|
1034
|
+
const continuous = continuousCount;
|
|
1035
|
+
const total = discrete + continuous;
|
|
1036
|
+
return { discrete, continuous, total };
|
|
982
1037
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-schedule.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/tasks-schedule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,aAAa;IAgBtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAjB1B,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,aAAa,CAA8B;gBAGhC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,yBAAyB;IAGxC,IAAI;IAkBJ,iBAAiB;IAMvB,QAAQ;IASR,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"tasks-schedule.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/tasks-schedule.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,qBAAa,aAAa;IAgBtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAjB1B,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,aAAa,CAA8B;gBAGhC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,yBAAyB;IAGxC,IAAI;IAkBJ,iBAAiB;IAMvB,QAAQ;IASR,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAgB1B,oBAAoB;;;;IAOpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO;IAiBzC,SAAS,IAAI,KAAK;IAMlB,kBAAkB,IAAI,IAAI,EAAE;YAUrB,aAAa;YAcb,YAAY;YAkDZ,eAAe;IAkB7B,OAAO,CAAC,aAAa;YAiBP,qBAAqB;IAyEnC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,cAAc;IAiCf,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGzD"}
|
|
@@ -47,6 +47,11 @@ class TasksSchedule {
|
|
|
47
47
|
for (const taskId of taskIds) {
|
|
48
48
|
this.completedTasks.add(taskId);
|
|
49
49
|
this.runningTasks.delete(taskId);
|
|
50
|
+
delete this.reverseTaskDeps[taskId];
|
|
51
|
+
}
|
|
52
|
+
const removedSet = new Set(taskIds);
|
|
53
|
+
for (const [key, deps] of Object.entries(this.reverseTaskDeps)) {
|
|
54
|
+
this.reverseTaskDeps[key] = deps.filter((d) => !removedSet.has(d));
|
|
50
55
|
}
|
|
51
56
|
this.notScheduledTaskGraph = (0, utils_1.removeTasksFromTaskGraph)(this.notScheduledTaskGraph, taskIds);
|
|
52
57
|
}
|
|
@@ -56,13 +61,19 @@ class TasksSchedule {
|
|
|
56
61
|
scheduledBatches: this.scheduledBatches,
|
|
57
62
|
};
|
|
58
63
|
}
|
|
59
|
-
nextTask() {
|
|
60
|
-
if (this.scheduledTasks.length
|
|
64
|
+
nextTask(filter) {
|
|
65
|
+
if (this.scheduledTasks.length === 0) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (!filter) {
|
|
61
69
|
return this.taskGraph.tasks[this.scheduledTasks.shift()];
|
|
62
70
|
}
|
|
63
|
-
|
|
71
|
+
const idx = this.scheduledTasks.findIndex((id) => filter(this.taskGraph.tasks[id]));
|
|
72
|
+
if (idx === -1) {
|
|
64
73
|
return null;
|
|
65
74
|
}
|
|
75
|
+
const [taskId] = this.scheduledTasks.splice(idx, 1);
|
|
76
|
+
return this.taskGraph.tasks[taskId];
|
|
66
77
|
}
|
|
67
78
|
nextBatch() {
|
|
68
79
|
return this.scheduledBatches.length > 0
|
|
@@ -11,9 +11,9 @@ export declare function getDependencyConfigs({ project, target }: {
|
|
|
11
11
|
}, extraTargetDependencies: Record<string, (TargetDependencyConfig | string)[]>, projectGraph: ProjectGraph, allTargetNames: string[]): NormalizedTargetDependencyConfig[] | undefined;
|
|
12
12
|
export declare function normalizeDependencyConfigDefinition(definition: string | TargetDependencyConfig, currentProject: string, graph: ProjectGraph, allTargetNames: string[]): NormalizedTargetDependencyConfig[];
|
|
13
13
|
export declare function normalizeDependencyConfigProjects(dependencyConfig: TargetDependencyConfig, currentProject: string, graph: ProjectGraph): NormalizedTargetDependencyConfig;
|
|
14
|
-
export declare function expandDependencyConfigSyntaxSugar(dependencyConfigString: string | TargetDependencyConfig, graph: ProjectGraph): TargetDependencyConfig;
|
|
14
|
+
export declare function expandDependencyConfigSyntaxSugar(dependencyConfigString: string | TargetDependencyConfig, graph: ProjectGraph, currentProject?: string): TargetDependencyConfig;
|
|
15
15
|
export declare function expandWildcardTargetConfiguration(dependencyConfig: NormalizedTargetDependencyConfig, allTargetNames: string[]): NormalizedTargetDependencyConfig[];
|
|
16
|
-
export declare function readProjectAndTargetFromTargetString(targetString: string, projects: Record<string, ProjectGraphProjectNode
|
|
16
|
+
export declare function readProjectAndTargetFromTargetString(targetString: string, projects: Record<string, ProjectGraphProjectNode>, currentProject?: string): {
|
|
17
17
|
projects?: string[];
|
|
18
18
|
target: string;
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/utils.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAe/C,MAAM,MAAM,gCAAgC,GAAG,sBAAsB,GAAG;IACtE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACxD,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,EAC5E,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,MAAM,EAAE,GACvB,gCAAgC,EAAE,GAAG,SAAS,CAehD;AAED,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,MAAM,GAAG,sBAAsB,EAC3C,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,MAAM,EAAE,GACvB,gCAAgC,EAAE,CASpC;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,sBAAsB,EACxC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,YAAY,GAClB,gCAAgC,CAalC;AAED,wBAAgB,iCAAiC,CAC/C,sBAAsB,EAAE,MAAM,GAAG,sBAAsB,EACvD,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ function getDependencyConfigs({ project, target }, extraTargetDependencies, proj
|
|
|
47
47
|
return dependencyConfigs;
|
|
48
48
|
}
|
|
49
49
|
function normalizeDependencyConfigDefinition(definition, currentProject, graph, allTargetNames) {
|
|
50
|
-
return expandWildcardTargetConfiguration(normalizeDependencyConfigProjects(expandDependencyConfigSyntaxSugar(definition, graph), currentProject, graph), allTargetNames);
|
|
50
|
+
return expandWildcardTargetConfiguration(normalizeDependencyConfigProjects(expandDependencyConfigSyntaxSugar(definition, graph, currentProject), currentProject, graph), allTargetNames);
|
|
51
51
|
}
|
|
52
52
|
function normalizeDependencyConfigProjects(dependencyConfig, currentProject, graph) {
|
|
53
53
|
const noStringConfig = normalizeTargetDependencyWithStringProjects(dependencyConfig);
|
|
@@ -59,7 +59,7 @@ function normalizeDependencyConfigProjects(dependencyConfig, currentProject, gra
|
|
|
59
59
|
}
|
|
60
60
|
return dependencyConfig;
|
|
61
61
|
}
|
|
62
|
-
function expandDependencyConfigSyntaxSugar(dependencyConfigString, graph) {
|
|
62
|
+
function expandDependencyConfigSyntaxSugar(dependencyConfigString, graph, currentProject) {
|
|
63
63
|
if (typeof dependencyConfigString !== 'string') {
|
|
64
64
|
return dependencyConfigString;
|
|
65
65
|
}
|
|
@@ -74,7 +74,7 @@ function expandDependencyConfigSyntaxSugar(dependencyConfigString, graph) {
|
|
|
74
74
|
dependencies: true,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
const { projects, target } = readProjectAndTargetFromTargetString(targetString, graph.nodes);
|
|
77
|
+
const { projects, target } = readProjectAndTargetFromTargetString(targetString, graph.nodes, currentProject);
|
|
78
78
|
return projects ? { projects, target } : { target };
|
|
79
79
|
}
|
|
80
80
|
// Weakmap let's the cache get cleared by garbage collector if allTargetNames is no longer used
|
|
@@ -104,11 +104,9 @@ function expandWildcardTargetConfiguration(dependencyConfig, allTargetNames) {
|
|
|
104
104
|
target: t,
|
|
105
105
|
}));
|
|
106
106
|
}
|
|
107
|
-
function readProjectAndTargetFromTargetString(targetString, projects) {
|
|
107
|
+
function readProjectAndTargetFromTargetString(targetString, projects, currentProject) {
|
|
108
108
|
// Support for both `project:target` and `target:with:colons` syntax
|
|
109
|
-
const [maybeProject, ...segments] = (0, split_target_1.
|
|
110
|
-
nodes: projects,
|
|
111
|
-
});
|
|
109
|
+
const [maybeProject, ...segments] = (0, split_target_1.splitTargetFromNodes)(targetString, projects, { silent: true, currentProject });
|
|
112
110
|
if (!segments.length) {
|
|
113
111
|
// if no additional segments are provided, then the string references
|
|
114
112
|
// a target of the same project
|
package/src/utils/ab-testing.js
CHANGED
|
@@ -99,7 +99,7 @@ function shouldRecordStats() {
|
|
|
99
99
|
try {
|
|
100
100
|
const stdout = (0, node_child_process_1.execSync)(pmc.getRegistryUrl, {
|
|
101
101
|
encoding: 'utf-8',
|
|
102
|
-
windowsHide:
|
|
102
|
+
windowsHide: true,
|
|
103
103
|
});
|
|
104
104
|
const url = new URL(stdout.trim());
|
|
105
105
|
// don't record stats when testing locally
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-prompt.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/analytics-prompt.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BlE;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBrE;AAwBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"analytics-prompt.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/analytics-prompt.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BlE;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBrE;AAwBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8C/D"}
|
|
@@ -105,6 +105,7 @@ function generateWorkspaceId(cwd) {
|
|
|
105
105
|
const remoteUrl = (0, child_process_1.execSync)('git remote get-url origin', {
|
|
106
106
|
stdio: 'pipe',
|
|
107
107
|
cwd: root,
|
|
108
|
+
windowsHide: true,
|
|
108
109
|
})
|
|
109
110
|
.toString()
|
|
110
111
|
.trim();
|
|
@@ -120,6 +121,7 @@ function generateWorkspaceId(cwd) {
|
|
|
120
121
|
const firstCommit = (0, child_process_1.execSync)('git rev-list --max-parents=0 HEAD', {
|
|
121
122
|
stdio: 'pipe',
|
|
122
123
|
cwd: root,
|
|
124
|
+
windowsHide: true,
|
|
123
125
|
})
|
|
124
126
|
.toString()
|
|
125
127
|
.trim()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-process.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/child-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAGL,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,mBAAmB,CACjC,qBAAqB,CAAC,EAAE,sBAAsB,EAC9C,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAeR;AAED,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;CAChD,QAYF;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,GAAG;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;CAChD,GACA,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"child-process.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/child-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAGL,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,mBAAmB,CACjC,qBAAqB,CAAC,EAAE,sBAAsB,EAC9C,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAeR;AAED,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;CAChD,QAYF;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,GAAG;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;CAChD,GACA,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,qBAAa,gBAAgB;IAKf,OAAO,CAAC,YAAY;IAJhC,OAAO,UAAQ;IAEf,aAAa,QAAM;gBAEC,YAAY,EAAE,YAAY;IAU9C,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,IAAI,IAAI,IAAI;CAYb"}
|
|
@@ -38,12 +38,11 @@ function runNxSync(cmd, options) {
|
|
|
38
38
|
async function runNxAsync(cmd, options) {
|
|
39
39
|
options ??= {};
|
|
40
40
|
options.cwd ??= process.cwd();
|
|
41
|
-
options.windowsHide ??= true;
|
|
42
41
|
let { silent, packageManagerCommand, ...execSyncOptions } = options;
|
|
43
42
|
silent ??= true;
|
|
44
43
|
const baseCmd = getRunNxBaseCommand(packageManagerCommand, execSyncOptions.cwd);
|
|
45
44
|
return new Promise((resolve, reject) => {
|
|
46
|
-
const child = (0, child_process_1.exec)(`${baseCmd} ${cmd}`,
|
|
45
|
+
const child = (0, child_process_1.exec)(`${baseCmd} ${cmd}`, { ...execSyncOptions, windowsHide: true }, (error, stdout, stderr) => {
|
|
47
46
|
if (error) {
|
|
48
47
|
reject(stderr || stdout || error.message);
|
|
49
48
|
}
|