nx 17.0.3 → 17.0.5
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/LICENSE +1 -1
- package/README.md +9 -4
- package/bin/init-local.js +10 -60
- package/bin/nx-cloud.js +6 -0
- package/bin/nx.js +1 -9
- package/bin/post-install.js +5 -1
- package/bin/run-executor.js +1 -1
- package/migrations.json +18 -0
- package/package.json +21 -18
- package/plugins/package-json.js +1 -1
- package/{changelog-renderer → release/changelog-renderer}/index.d.ts +18 -3
- package/{changelog-renderer → release/changelog-renderer}/index.js +78 -34
- package/release/index.d.ts +4 -0
- package/release/index.js +11 -0
- package/schemas/nx-schema.json +203 -19
- package/schemas/project-schema.json +20 -0
- package/src/adapter/angular-json.js +28 -18
- package/src/adapter/compat.d.ts +2 -2
- package/src/adapter/compat.js +6 -1
- package/src/adapter/ngcli-adapter.d.ts +16 -4
- package/src/adapter/ngcli-adapter.js +85 -28
- package/src/command-line/add/add.d.ts +2 -0
- package/src/command-line/add/add.js +169 -0
- package/src/command-line/add/command-object.d.ts +7 -0
- package/src/command-line/add/command-object.js +24 -0
- package/src/command-line/affected/affected.js +0 -3
- package/src/command-line/affected/command-object.d.ts +4 -4
- package/src/command-line/affected/command-object.js +53 -26
- package/src/command-line/affected/print-affected.js +10 -1
- package/src/command-line/connect/command-object.d.ts +1 -2
- package/src/command-line/connect/command-object.js +3 -7
- package/src/command-line/connect/connect-to-nx-cloud.d.ts +4 -5
- package/src/command-line/connect/connect-to-nx-cloud.js +43 -31
- package/src/command-line/connect/view-logs.js +5 -21
- package/src/command-line/examples.js +18 -0
- package/src/command-line/exec/command-object.js +2 -1
- package/src/command-line/exec/exec.d.ts +1 -1
- package/src/command-line/exec/exec.js +78 -35
- package/src/command-line/format/format.js +13 -4
- package/src/command-line/generate/generate.js +9 -9
- package/src/command-line/generate/generator-utils.d.ts +3 -2
- package/src/command-line/generate/generator-utils.js +5 -5
- package/src/command-line/graph/graph.d.ts +1 -1
- package/src/command-line/graph/graph.js +82 -37
- package/src/command-line/init/command-object.js +70 -43
- package/src/command-line/init/implementation/add-nx-to-monorepo.d.ts +4 -2
- package/src/command-line/init/implementation/add-nx-to-monorepo.js +11 -2
- package/src/command-line/init/implementation/add-nx-to-nest.d.ts +1 -1
- package/src/command-line/init/implementation/add-nx-to-nest.js +9 -6
- package/src/command-line/init/implementation/add-nx-to-npm-repo.d.ts +4 -2
- package/src/command-line/init/implementation/add-nx-to-npm-repo.js +14 -4
- package/src/command-line/init/implementation/angular/index.js +4 -1
- package/src/command-line/init/implementation/angular/legacy-angular-versions.js +10 -5
- package/src/command-line/init/implementation/angular/standalone-workspace.js +1 -1
- package/src/command-line/init/implementation/angular/types.d.ts +1 -1
- package/src/command-line/init/implementation/dot-nx/nxw.js +47 -16
- package/src/command-line/init/implementation/react/index.d.ts +1 -1
- package/src/command-line/init/implementation/react/index.js +4 -2
- package/src/command-line/init/implementation/react/rename-js-to-jsx.js +4 -2
- package/src/command-line/init/implementation/utils.d.ts +5 -5
- package/src/command-line/init/implementation/utils.js +46 -44
- package/src/command-line/init/{init.js → init-v1.js} +5 -13
- package/src/command-line/init/init-v2.d.ts +7 -0
- package/src/command-line/init/init-v2.js +201 -0
- package/src/command-line/list/list.js +6 -5
- package/src/command-line/migrate/command-object.js +19 -4
- package/src/command-line/migrate/migrate.js +21 -17
- package/src/command-line/new/new.js +1 -1
- package/src/command-line/nx-commands.js +4 -1
- package/src/command-line/release/changelog.d.ts +22 -1
- package/src/command-line/release/changelog.js +459 -257
- package/src/command-line/release/command-object.d.ts +29 -7
- package/src/command-line/release/command-object.js +120 -20
- package/src/command-line/release/config/config.d.ts +26 -21
- package/src/command-line/release/config/config.js +416 -59
- package/src/command-line/release/config/conventional-commits.d.ts +2 -0
- package/src/command-line/release/config/conventional-commits.js +98 -0
- package/src/command-line/release/config/filter-release-groups.d.ts +1 -2
- package/src/command-line/release/config/filter-release-groups.js +38 -1
- package/src/command-line/release/index.d.ts +16 -0
- package/src/command-line/release/index.js +23 -0
- package/src/command-line/release/publish.d.ts +7 -3
- package/src/command-line/release/publish.js +89 -37
- package/src/command-line/release/release.d.ts +4 -0
- package/src/command-line/release/release.js +176 -0
- package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts +7 -0
- package/src/command-line/release/utils/batch-projects-by-generator-config.js +37 -0
- package/src/command-line/release/utils/exec-command.d.ts +1 -0
- package/src/command-line/release/utils/exec-command.js +34 -0
- package/src/command-line/release/utils/git.d.ts +34 -1
- package/src/command-line/release/utils/git.js +238 -34
- package/src/command-line/release/utils/github.d.ts +5 -5
- package/src/command-line/release/utils/github.js +155 -8
- package/src/command-line/release/utils/markdown.js +6 -1
- package/src/command-line/release/utils/print-changes.d.ts +1 -1
- package/src/command-line/release/utils/print-changes.js +3 -3
- package/src/command-line/release/utils/resolve-nx-json-error-message.js +4 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +4 -0
- package/src/command-line/release/utils/resolve-semver-specifier.js +58 -0
- package/src/command-line/release/utils/semver.d.ts +8 -0
- package/src/command-line/release/utils/semver.js +30 -1
- package/src/command-line/release/utils/shared.d.ts +39 -0
- package/src/command-line/release/utils/shared.js +213 -0
- package/src/command-line/release/version.d.ts +37 -3
- package/src/command-line/release/version.js +312 -117
- package/src/command-line/repair/repair.js +13 -9
- package/src/command-line/report/report.d.ts +3 -0
- package/src/command-line/report/report.js +22 -5
- package/src/command-line/run/command-object.d.ts +4 -0
- package/src/command-line/run/command-object.js +18 -2
- package/src/command-line/run/executor-utils.d.ts +2 -1
- package/src/command-line/run/executor-utils.js +4 -4
- package/src/command-line/run/run-one.js +3 -6
- package/src/command-line/run/run.js +34 -9
- package/src/command-line/run-many/command-object.js +4 -1
- package/src/command-line/run-many/run-many.js +0 -3
- package/src/command-line/show/command-object.d.ts +3 -0
- package/src/command-line/show/command-object.js +29 -2
- package/src/command-line/show/show.js +9 -0
- package/src/command-line/yargs-utils/shared-options.d.ts +4 -1
- package/src/command-line/yargs-utils/shared-options.js +23 -9
- package/src/commands-runner/command-graph.d.ts +13 -0
- package/src/commands-runner/command-graph.js +2 -0
- package/src/commands-runner/create-command-graph.d.ts +4 -0
- package/src/commands-runner/create-command-graph.js +44 -0
- package/src/commands-runner/get-command-projects.d.ts +3 -0
- package/src/commands-runner/get-command-projects.js +19 -0
- package/src/config/nx-json.d.ts +160 -25
- package/src/config/project-graph.d.ts +3 -3
- package/src/config/workspace-json-project-json.d.ts +23 -1
- package/src/config/workspaces.d.ts +1 -1
- package/src/config/workspaces.js +4 -6
- package/src/core/graph/3rdpartylicenses.txt +144 -74
- package/src/core/graph/environment.js +1 -1
- package/src/core/graph/index.html +4 -6
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/runtime.js +1 -1
- package/src/core/graph/styles.css +3 -3
- package/src/core/graph/styles.js +1 -1
- package/src/daemon/client/client.d.ts +5 -1
- package/src/daemon/client/client.js +27 -8
- package/src/daemon/client/{socket-messenger.d.ts → daemon-socket-messenger.d.ts} +1 -1
- package/src/daemon/client/{socket-messenger.js → daemon-socket-messenger.js} +3 -3
- package/src/daemon/daemon-project-graph-error.d.ts +8 -0
- package/src/daemon/daemon-project-graph-error.js +13 -0
- package/src/daemon/server/handle-hash-tasks.js +12 -2
- package/src/daemon/server/handle-request-project-graph.js +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts +14 -13
- package/src/daemon/server/project-graph-incremental-recomputation.js +98 -33
- package/src/daemon/server/shutdown-utils.js +2 -4
- package/src/daemon/server/watcher.js +0 -3
- package/src/daemon/socket-utils.d.ts +2 -1
- package/src/daemon/socket-utils.js +15 -4
- package/src/daemon/tmp-dir.d.ts +1 -0
- package/src/daemon/tmp-dir.js +4 -4
- package/src/devkit-exports.d.ts +2 -2
- package/src/devkit-exports.js +3 -2
- package/src/devkit-internals.d.ts +3 -0
- package/src/devkit-internals.js +7 -1
- package/src/executors/noop/schema.json +1 -1
- package/src/executors/run-commands/run-commands.impl.d.ts +10 -2
- package/src/executors/run-commands/run-commands.impl.js +152 -48
- package/src/executors/run-commands/schema.json +11 -1
- package/src/executors/run-script/run-script.impl.js +43 -11
- package/src/executors/utils/convert-nx-executor.js +1 -1
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +3 -1
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +4 -2
- package/src/generators/testing-utils/create-tree-with-empty-workspace.js +0 -6
- package/src/generators/tree.d.ts +1 -0
- package/src/generators/utils/glob.js +2 -2
- package/src/generators/utils/project-configuration.js +28 -9
- package/src/hasher/create-task-hasher.d.ts +4 -0
- package/src/hasher/create-task-hasher.js +16 -0
- package/src/hasher/hash-task.js +9 -3
- package/src/hasher/native-task-hasher-impl.d.ts +19 -0
- package/src/hasher/native-task-hasher-impl.js +37 -0
- package/src/hasher/node-task-hasher-impl.d.ts +49 -0
- package/src/hasher/node-task-hasher-impl.js +431 -0
- package/src/hasher/task-hasher.d.ts +33 -21
- package/src/hasher/task-hasher.js +30 -428
- package/src/migrations/update-15-0-0/migrate-to-inputs.js +5 -5
- package/src/migrations/update-15-1-0/set-project-names.js +2 -1
- package/src/migrations/update-15-8-2/update-nxw.js +2 -6
- package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +3 -3
- package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +49 -13
- package/src/migrations/update-17-2-0/move-default-base.d.ts +5 -0
- package/src/migrations/update-17-2-0/move-default-base.js +21 -0
- package/src/migrations/update-17-3-0/nx-release-path.d.ts +3 -0
- package/src/migrations/update-17-3-0/nx-release-path.js +48 -0
- package/src/migrations/update-17-3-0/update-nxw.d.ts +2 -0
- package/src/migrations/update-17-3-0/update-nxw.js +7 -0
- package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +2 -0
- package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +9 -0
- package/src/native/index.d.ts +65 -15
- package/src/native/index.js +6 -2
- package/src/native/transform-objects.js +2 -0
- package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +1 -0
- package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +13 -12
- package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +6 -1
- package/src/nx-cloud/update-manager.js +2 -1
- package/src/plugins/js/index.d.ts +1 -1
- package/src/plugins/js/index.js +3 -3
- package/src/plugins/js/lock-file/lock-file.d.ts +2 -2
- package/src/plugins/js/lock-file/lock-file.js +15 -3
- package/src/plugins/js/package-json/create-package-json.js +1 -1
- package/src/plugins/js/project-graph/build-dependencies/strip-source-code.d.ts +1 -1
- package/src/plugins/js/project-graph/build-dependencies/strip-source-code.js +1 -1
- package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.d.ts +1 -1
- package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.js +1 -1
- package/src/plugins/js/utils/register.d.ts +1 -1
- package/src/plugins/js/utils/register.js +28 -8
- package/src/plugins/js/versions.d.ts +1 -1
- package/src/plugins/js/versions.js +1 -1
- package/{plugins/package-json-workspaces.d.ts → src/plugins/package-json-workspaces/create-nodes.d.ts} +4 -4
- package/{plugins/package-json-workspaces.js → src/plugins/package-json-workspaces/create-nodes.js} +34 -12
- package/src/plugins/package-json-workspaces/index.d.ts +1 -0
- package/src/plugins/package-json-workspaces/index.js +4 -0
- package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.d.ts +2 -0
- package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.js +47 -0
- package/src/plugins/project-json/build-nodes/project-json.d.ts +2 -5
- package/src/plugins/project-json/build-nodes/project-json.js +6 -44
- package/src/plugins/target-defaults/target-defaults-plugin.d.ts +66 -0
- package/src/plugins/target-defaults/target-defaults-plugin.js +182 -0
- package/src/project-graph/affected/locators/project-glob-changes.js +3 -3
- package/src/project-graph/affected/locators/workspace-projects.d.ts +0 -2
- package/src/project-graph/affected/locators/workspace-projects.js +16 -29
- package/src/project-graph/build-project-graph.d.ts +20 -1
- package/src/project-graph/build-project-graph.js +91 -33
- package/src/project-graph/file-map-utils.d.ts +9 -5
- package/src/project-graph/file-map-utils.js +16 -63
- package/src/project-graph/file-utils.d.ts +1 -1
- package/src/project-graph/file-utils.js +44 -2
- package/src/project-graph/nx-deps-cache.js +1 -1
- package/src/project-graph/project-graph-builder.d.ts +1 -1
- package/src/project-graph/project-graph-builder.js +1 -1
- package/src/project-graph/project-graph.d.ts +32 -1
- package/src/project-graph/project-graph.js +147 -23
- package/src/project-graph/utils/build-all-workspace-files.d.ts +2 -0
- package/src/project-graph/utils/build-all-workspace-files.js +15 -0
- package/src/project-graph/utils/normalize-project-nodes.d.ts +2 -3
- package/src/project-graph/utils/normalize-project-nodes.js +7 -33
- package/src/project-graph/utils/project-configuration-utils.d.ts +66 -4
- package/src/project-graph/utils/project-configuration-utils.js +509 -62
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +12 -31
- package/src/project-graph/utils/retrieve-workspace-files.js +27 -90
- package/src/tasks-runner/batch/run-batch.js +3 -3
- package/src/tasks-runner/cache.js +6 -3
- package/src/tasks-runner/create-task-graph.js +1 -1
- package/src/tasks-runner/fork.d.ts +1 -0
- package/src/tasks-runner/fork.js +23 -0
- package/src/tasks-runner/forked-process-task-runner.d.ts +13 -5
- package/src/tasks-runner/forked-process-task-runner.js +112 -21
- package/src/tasks-runner/init-tasks-runner.js +1 -1
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +28 -28
- package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +19 -22
- package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js +1 -3
- package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.js +1 -3
- package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +2 -4
- package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +1 -0
- package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +11 -5
- package/src/tasks-runner/life-cycles/view-logs-utils.js +1 -1
- package/src/tasks-runner/pseudo-ipc.d.ts +49 -0
- package/src/tasks-runner/pseudo-ipc.js +140 -0
- package/src/tasks-runner/pseudo-terminal.d.ts +43 -0
- package/src/tasks-runner/pseudo-terminal.js +159 -0
- package/src/tasks-runner/run-command.d.ts +1 -1
- package/src/tasks-runner/run-command.js +13 -19
- package/src/tasks-runner/task-env.js +1 -2
- package/src/tasks-runner/task-graph-utils.d.ts +7 -3
- package/src/tasks-runner/task-graph-utils.js +15 -15
- package/src/tasks-runner/task-orchestrator.js +68 -12
- package/src/tasks-runner/tasks-schedule.js +3 -3
- package/src/tasks-runner/utils.d.ts +16 -7
- package/src/tasks-runner/utils.js +30 -16
- package/src/utils/ab-testing.d.ts +36 -2
- package/src/utils/ab-testing.js +34 -16
- package/src/utils/assert-workspace-validity.js +1 -1
- package/src/utils/cache-directory.d.ts +1 -0
- package/src/utils/cache-directory.js +5 -1
- package/src/utils/child-process.d.ts +15 -1
- package/src/utils/child-process.js +91 -1
- package/src/utils/command-line-utils.js +2 -1
- package/src/utils/exit-codes.d.ts +6 -0
- package/src/utils/exit-codes.js +20 -0
- package/src/utils/fileutils.d.ts +1 -0
- package/src/utils/find-matching-projects.js +5 -5
- package/src/utils/find-workspace-root.js +1 -0
- package/src/utils/ignore.js +8 -1
- package/src/utils/json-diff.d.ts +1 -0
- package/src/utils/json-diff.js +2 -1
- package/src/utils/json.js +3 -1
- package/src/utils/logger.js +1 -1
- package/src/utils/nx-cloud-utils.d.ts +1 -1
- package/src/utils/nx-cloud-utils.js +9 -4
- package/src/utils/nx-plugin.d.ts +32 -15
- package/src/utils/nx-plugin.deprecated.d.ts +10 -5
- package/src/utils/nx-plugin.deprecated.js +23 -0
- package/src/utils/nx-plugin.js +71 -80
- package/src/utils/output.d.ts +4 -2
- package/src/utils/output.js +44 -9
- package/src/utils/package-json.d.ts +4 -4
- package/src/utils/package-json.js +18 -12
- package/src/utils/package-manager.d.ts +7 -0
- package/src/utils/package-manager.js +24 -4
- package/src/utils/params.d.ts +12 -4
- package/src/utils/params.js +37 -4
- package/src/utils/plugins/core-plugins.js +8 -0
- package/src/utils/plugins/installed-plugins.d.ts +2 -1
- package/src/utils/plugins/installed-plugins.js +2 -2
- package/src/utils/plugins/local-plugins.js +1 -1
- package/src/utils/plugins/plugin-capabilities.d.ts +3 -2
- package/src/utils/plugins/plugin-capabilities.js +7 -7
- package/src/utils/typescript.js +1 -1
- package/src/utils/update-nxw.d.ts +2 -0
- package/src/utils/update-nxw.js +12 -0
- package/src/utils/workspace-configuration-check.js +1 -1
- package/src/utils/workspace-context.d.ts +6 -4
- package/src/utils/workspace-context.js +19 -9
- package/src/core/graph/polyfills.js +0 -1
- /package/src/command-line/init/{init.d.ts → init-v1.d.ts} +0 -0
|
@@ -35,12 +35,6 @@ function addCommonFiles(tree, addAppsAndLibsFolders) {
|
|
|
35
35
|
lint: {
|
|
36
36
|
cache: true,
|
|
37
37
|
},
|
|
38
|
-
test: {
|
|
39
|
-
cache: true,
|
|
40
|
-
},
|
|
41
|
-
e2e: {
|
|
42
|
-
cache: true,
|
|
43
|
-
},
|
|
44
38
|
},
|
|
45
39
|
}));
|
|
46
40
|
tree.write('/tsconfig.base.json', JSON.stringify({ compilerOptions: { paths: {} } }));
|
package/src/generators/tree.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.glob = void 0;
|
|
4
|
+
const minimatch_1 = require("minimatch");
|
|
4
5
|
const globs_1 = require("../../utils/globs");
|
|
5
6
|
const workspace_context_1 = require("../../utils/workspace-context");
|
|
6
|
-
const minimatch = require("minimatch");
|
|
7
7
|
/**
|
|
8
8
|
* Performs a tree-aware glob search on the files in a workspace. Able to find newly
|
|
9
9
|
* created files and hides deleted files before the updates are committed to disk.
|
|
@@ -16,7 +16,7 @@ const minimatch = require("minimatch");
|
|
|
16
16
|
function glob(tree, patterns) {
|
|
17
17
|
const matches = new Set((0, workspace_context_1.globWithWorkspaceContext)(tree.root, patterns));
|
|
18
18
|
const combinedGlob = (0, globs_1.combineGlobPatterns)(patterns);
|
|
19
|
-
const matcher = minimatch.makeRe(combinedGlob);
|
|
19
|
+
const matcher = minimatch_1.minimatch.makeRe(combinedGlob);
|
|
20
20
|
if (!matcher) {
|
|
21
21
|
throw new Error('Invalid glob pattern: ' + combinedGlob);
|
|
22
22
|
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getRelativeProjectJsonSchemaPath = exports.getProjects = exports.readProjectConfiguration = exports.removeProjectConfiguration = exports.updateProjectConfiguration = exports.addProjectConfiguration = exports.updateNxJson = exports.readNxJson = void 0;
|
|
4
|
+
const minimatch_1 = require("minimatch");
|
|
4
5
|
const path_1 = require("path");
|
|
5
|
-
const package_json_workspaces_1 = require("
|
|
6
|
+
const package_json_workspaces_1 = require("../../plugins/package-json-workspaces");
|
|
6
7
|
const project_json_1 = require("../../plugins/project-json/build-nodes/project-json");
|
|
7
8
|
const angular_json_1 = require("../../adapter/angular-json");
|
|
8
9
|
const project_configuration_utils_1 = require("../../project-graph/utils/project-configuration-utils");
|
|
9
10
|
const retrieve_workspace_files_1 = require("../../project-graph/utils/retrieve-workspace-files");
|
|
11
|
+
const workspace_context_1 = require("../../utils/workspace-context");
|
|
10
12
|
const output_1 = require("../../utils/output");
|
|
11
13
|
const path_2 = require("../../utils/path");
|
|
12
14
|
const json_1 = require("./json");
|
|
13
15
|
const nx_json_1 = require("./nx-json");
|
|
14
|
-
const minimatch = require("minimatch");
|
|
15
16
|
var nx_json_2 = require("./nx-json");
|
|
16
17
|
Object.defineProperty(exports, "readNxJson", { enumerable: true, get: function () { return nx_json_2.readNxJson; } });
|
|
17
18
|
Object.defineProperty(exports, "updateNxJson", { enumerable: true, get: function () { return nx_json_2.updateNxJson; } });
|
|
@@ -31,9 +32,10 @@ function addProjectConfiguration(tree, projectName, projectConfiguration, standa
|
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
if (tree.exists(projectConfigFile)) {
|
|
34
|
-
throw new Error(`Cannot create a new project ${projectName} at ${projectConfiguration.root}.
|
|
35
|
+
throw new Error(`Cannot create a new project ${projectName} at ${projectConfiguration.root}. A project already exists in this directory.`);
|
|
35
36
|
}
|
|
36
37
|
delete projectConfiguration.$schema;
|
|
38
|
+
handleEmptyTargets(projectName, projectConfiguration);
|
|
37
39
|
(0, json_1.writeJson)(tree, projectConfigFile, {
|
|
38
40
|
name: projectName,
|
|
39
41
|
$schema: getRelativeProjectJsonSchemaPath(tree, projectConfiguration),
|
|
@@ -54,6 +56,7 @@ function updateProjectConfiguration(tree, projectName, projectConfiguration) {
|
|
|
54
56
|
if (!tree.exists(projectConfigFile)) {
|
|
55
57
|
throw new Error(`Cannot update Project ${projectName} at ${projectConfiguration.root}. It either doesn't exist yet, or may not use project.json for configuration. Use \`addProjectConfiguration()\` instead if you want to create a new project.`);
|
|
56
58
|
}
|
|
59
|
+
handleEmptyTargets(projectName, projectConfiguration);
|
|
57
60
|
(0, json_1.writeJson)(tree, projectConfigFile, {
|
|
58
61
|
name: projectConfiguration.name ?? projectName,
|
|
59
62
|
$schema: getRelativeProjectJsonSchemaPath(tree, projectConfiguration),
|
|
@@ -130,9 +133,13 @@ function readAndCombineAllProjectConfigurations(tree) {
|
|
|
130
133
|
const patterns = [
|
|
131
134
|
'**/project.json',
|
|
132
135
|
'project.json',
|
|
133
|
-
...(0, package_json_workspaces_1.getGlobPatternsFromPackageManagerWorkspaces)(tree.root, (p) => (0, json_1.readJson)(tree, p)),
|
|
136
|
+
...(0, package_json_workspaces_1.getGlobPatternsFromPackageManagerWorkspaces)(tree.root, (p) => (0, json_1.readJson)(tree, p, { expectComments: true })),
|
|
134
137
|
];
|
|
135
|
-
const
|
|
138
|
+
const projectGlobPatterns = (0, retrieve_workspace_files_1.configurationGlobs)([
|
|
139
|
+
{ plugin: project_json_1.ProjectJsonProjectsPlugin },
|
|
140
|
+
{ plugin: (0, package_json_workspaces_1.getNxPackageJsonWorkspacesPlugin)(tree.root) },
|
|
141
|
+
]);
|
|
142
|
+
const globbedFiles = (0, workspace_context_1.globWithWorkspaceContext)(tree.root, projectGlobPatterns);
|
|
136
143
|
const createdFiles = findCreatedProjectFiles(tree, patterns);
|
|
137
144
|
const deletedFiles = findDeletedProjectFiles(tree, patterns);
|
|
138
145
|
const projectFiles = [...globbedFiles, ...createdFiles].filter((r) => deletedFiles.indexOf(r) === -1);
|
|
@@ -141,7 +148,7 @@ function readAndCombineAllProjectConfigurations(tree) {
|
|
|
141
148
|
if ((0, path_1.basename)(projectFile) === 'project.json') {
|
|
142
149
|
const json = (0, json_1.readJson)(tree, projectFile);
|
|
143
150
|
const config = (0, project_json_1.buildProjectFromProjectJson)(json, projectFile);
|
|
144
|
-
(0, project_configuration_utils_1.mergeProjectConfigurationIntoRootMap)(rootMap, config);
|
|
151
|
+
(0, project_configuration_utils_1.mergeProjectConfigurationIntoRootMap)(rootMap, config, undefined, undefined, true);
|
|
145
152
|
}
|
|
146
153
|
else if ((0, path_1.basename)(projectFile) === 'package.json') {
|
|
147
154
|
const packageJson = (0, json_1.readJson)(tree, projectFile);
|
|
@@ -153,7 +160,7 @@ function readAndCombineAllProjectConfigurations(tree) {
|
|
|
153
160
|
{
|
|
154
161
|
name: config.name,
|
|
155
162
|
root: config.root,
|
|
156
|
-
});
|
|
163
|
+
}, undefined, undefined, true);
|
|
157
164
|
}
|
|
158
165
|
}
|
|
159
166
|
}
|
|
@@ -173,7 +180,7 @@ function findCreatedProjectFiles(tree, globPatterns) {
|
|
|
173
180
|
for (const change of tree.listChanges()) {
|
|
174
181
|
if (change.type === 'CREATE') {
|
|
175
182
|
const fileName = (0, path_1.basename)(change.path);
|
|
176
|
-
if (globPatterns.some((pattern) => minimatch(change.path, pattern, { dot: true }))) {
|
|
183
|
+
if (globPatterns.some((pattern) => (0, minimatch_1.minimatch)(change.path, pattern, { dot: true }))) {
|
|
177
184
|
createdProjectFiles.push(change.path);
|
|
178
185
|
}
|
|
179
186
|
else if (fileName === 'package.json') {
|
|
@@ -200,7 +207,7 @@ function findDeletedProjectFiles(tree, globPatterns) {
|
|
|
200
207
|
.listChanges()
|
|
201
208
|
.filter((f) => {
|
|
202
209
|
return (f.type === 'DELETE' &&
|
|
203
|
-
globPatterns.some((pattern) => minimatch(f.path, pattern)));
|
|
210
|
+
globPatterns.some((pattern) => (0, minimatch_1.minimatch)(f.path, pattern)));
|
|
204
211
|
})
|
|
205
212
|
.map((r) => r.path);
|
|
206
213
|
}
|
|
@@ -232,3 +239,15 @@ function toNewFormat(w) {
|
|
|
232
239
|
}
|
|
233
240
|
return w;
|
|
234
241
|
}
|
|
242
|
+
function handleEmptyTargets(projectName, projectConfiguration) {
|
|
243
|
+
if (projectConfiguration.targets &&
|
|
244
|
+
!Object.keys(projectConfiguration.targets).length) {
|
|
245
|
+
// Re-order `targets` to appear after the `// target` comment.
|
|
246
|
+
delete projectConfiguration.targets;
|
|
247
|
+
projectConfiguration['// targets'] = `to see all targets run: nx show project ${projectName} --web`;
|
|
248
|
+
projectConfiguration.targets = {};
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
delete projectConfiguration['// targets'];
|
|
252
|
+
}
|
|
253
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NxJsonConfiguration } from '../config/nx-json';
|
|
2
|
+
import { ProjectGraph } from '../config/project-graph';
|
|
3
|
+
import { TaskHasher } from './task-hasher';
|
|
4
|
+
export declare function createTaskHasher(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, runnerOptions?: any): TaskHasher;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTaskHasher = void 0;
|
|
4
|
+
const client_1 = require("../daemon/client/client");
|
|
5
|
+
const build_project_graph_1 = require("../project-graph/build-project-graph");
|
|
6
|
+
const task_hasher_1 = require("./task-hasher");
|
|
7
|
+
function createTaskHasher(projectGraph, nxJson, runnerOptions) {
|
|
8
|
+
if (client_1.daemonClient.enabled()) {
|
|
9
|
+
return new task_hasher_1.DaemonBasedTaskHasher(client_1.daemonClient, runnerOptions);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
const { fileMap, allWorkspaceFiles, rustReferences } = (0, build_project_graph_1.getFileMap)();
|
|
13
|
+
return new task_hasher_1.InProcessTaskHasher(fileMap?.projectFileMap, allWorkspaceFiles, projectGraph, nxJson, rustReferences, runnerOptions);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.createTaskHasher = createTaskHasher;
|
package/src/hasher/hash-task.js
CHANGED
|
@@ -6,9 +6,10 @@ const project_graph_1 = require("../project-graph/project-graph");
|
|
|
6
6
|
const task_hasher_1 = require("./task-hasher");
|
|
7
7
|
const nx_json_1 = require("../config/nx-json");
|
|
8
8
|
async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGraph, taskGraph, nxJson) {
|
|
9
|
+
performance.mark('hashMultipleTasks:start');
|
|
9
10
|
const tasks = Object.values(taskGraph.tasks);
|
|
10
11
|
const tasksWithHashers = await Promise.all(tasks.map(async (task) => {
|
|
11
|
-
const customHasher =
|
|
12
|
+
const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
|
|
12
13
|
return { task, customHasher };
|
|
13
14
|
}));
|
|
14
15
|
const tasksToHash = tasksWithHashers
|
|
@@ -26,17 +27,20 @@ async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGrap
|
|
|
26
27
|
tasksToHash[i].hash = hashes[i].value;
|
|
27
28
|
tasksToHash[i].hashDetails = hashes[i].details;
|
|
28
29
|
}
|
|
30
|
+
performance.mark('hashMultipleTasks:end');
|
|
31
|
+
performance.measure('hashMultipleTasks', 'hashMultipleTasks:start', 'hashMultipleTasks:end');
|
|
29
32
|
}
|
|
30
33
|
exports.hashTasksThatDoNotDependOnOutputsOfOtherTasks = hashTasksThatDoNotDependOnOutputsOfOtherTasks;
|
|
31
34
|
async function hashTask(hasher, projectGraph, taskGraph, task, env) {
|
|
32
|
-
|
|
35
|
+
performance.mark('hashSingleTask:start');
|
|
36
|
+
const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
|
|
33
37
|
const projectsConfigurations = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
|
|
34
38
|
const { value, details } = await (customHasher
|
|
35
39
|
? customHasher(task, {
|
|
36
40
|
hasher,
|
|
37
41
|
projectGraph,
|
|
38
42
|
taskGraph,
|
|
39
|
-
workspaceConfig: projectsConfigurations,
|
|
43
|
+
workspaceConfig: projectsConfigurations, // to make the change non-breaking. Remove after v19
|
|
40
44
|
projectsConfigurations,
|
|
41
45
|
nxJsonConfiguration: (0, nx_json_1.readNxJson)(),
|
|
42
46
|
env,
|
|
@@ -44,5 +48,7 @@ async function hashTask(hasher, projectGraph, taskGraph, task, env) {
|
|
|
44
48
|
: hasher.hashTask(task, taskGraph, env));
|
|
45
49
|
task.hash = value;
|
|
46
50
|
task.hashDetails = details;
|
|
51
|
+
performance.mark('hashSingleTask:end');
|
|
52
|
+
performance.measure('hashSingleTask', 'hashSingleTask:start', 'hashSingleTask:end');
|
|
47
53
|
}
|
|
48
54
|
exports.hashTask = hashTask;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { NxJsonConfiguration } from '../config/nx-json';
|
|
3
|
+
import { ProjectGraph } from '../config/project-graph';
|
|
4
|
+
import { Task, TaskGraph } from '../config/task-graph';
|
|
5
|
+
import { ExternalObject, FileData, HasherOptions, HashPlanner, NxWorkspaceFilesExternals, ProjectGraph as NativeProjectGraph, TaskHasher } from '../native';
|
|
6
|
+
import { PartialHash, TaskHasherImpl } from './task-hasher';
|
|
7
|
+
export declare class NativeTaskHasherImpl implements TaskHasherImpl {
|
|
8
|
+
hasher: TaskHasher;
|
|
9
|
+
planner: HashPlanner;
|
|
10
|
+
projectGraphRef: ExternalObject<NativeProjectGraph>;
|
|
11
|
+
allWorkspaceFilesRef: ExternalObject<FileData[]>;
|
|
12
|
+
projectFileMapRef: ExternalObject<Record<string, FileData[]>>;
|
|
13
|
+
options: HasherOptions | undefined;
|
|
14
|
+
constructor(workspaceRoot: string, nxJson: NxJsonConfiguration, projectGraph: ProjectGraph, externals: NxWorkspaceFilesExternals, options: {
|
|
15
|
+
selectivelyHashTsConfig: boolean;
|
|
16
|
+
});
|
|
17
|
+
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash>;
|
|
18
|
+
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash[]>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeTaskHasherImpl = void 0;
|
|
4
|
+
const native_1 = require("../native");
|
|
5
|
+
const transform_objects_1 = require("../native/transform-objects");
|
|
6
|
+
const fileutils_1 = require("../utils/fileutils");
|
|
7
|
+
const typescript_1 = require("../plugins/js/utils/typescript");
|
|
8
|
+
class NativeTaskHasherImpl {
|
|
9
|
+
constructor(workspaceRoot, nxJson, projectGraph, externals, options) {
|
|
10
|
+
this.projectGraphRef = (0, native_1.transferProjectGraph)((0, transform_objects_1.transformProjectGraphForRust)(projectGraph));
|
|
11
|
+
this.allWorkspaceFilesRef = externals.allWorkspaceFiles;
|
|
12
|
+
this.projectFileMapRef = externals.projectFiles;
|
|
13
|
+
let tsconfig = {};
|
|
14
|
+
let paths = {};
|
|
15
|
+
let rootTsConfigPath = (0, typescript_1.getRootTsConfigPath)();
|
|
16
|
+
if (rootTsConfigPath) {
|
|
17
|
+
tsconfig = (0, fileutils_1.readJsonFile)((0, typescript_1.getRootTsConfigPath)());
|
|
18
|
+
paths = tsconfig.compilerOptions?.paths ?? {};
|
|
19
|
+
if (tsconfig.compilerOptions?.paths) {
|
|
20
|
+
delete tsconfig.compilerOptions.paths;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
this.planner = new native_1.HashPlanner(nxJson, this.projectGraphRef);
|
|
24
|
+
this.hasher = new native_1.TaskHasher(workspaceRoot, this.projectGraphRef, this.projectFileMapRef, this.allWorkspaceFilesRef, Buffer.from(JSON.stringify(tsconfig)), paths, options);
|
|
25
|
+
}
|
|
26
|
+
async hashTask(task, taskGraph, env) {
|
|
27
|
+
const plans = this.planner.getPlansReference([task.id], taskGraph);
|
|
28
|
+
const hashes = this.hasher.hashPlans(plans, env);
|
|
29
|
+
return hashes[task.id];
|
|
30
|
+
}
|
|
31
|
+
async hashTasks(tasks, taskGraph, env) {
|
|
32
|
+
const plans = this.planner.getPlansReference(tasks.map((t) => t.id), taskGraph);
|
|
33
|
+
const hashes = this.hasher.hashPlans(plans, env);
|
|
34
|
+
return tasks.map((t) => hashes[t.id]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.NativeTaskHasherImpl = NativeTaskHasherImpl;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { NxJsonConfiguration } from '../config/nx-json';
|
|
3
|
+
import { FileData, ProjectFileMap, ProjectGraph } from '../config/project-graph';
|
|
4
|
+
import { Task, TaskGraph } from '../config/task-graph';
|
|
5
|
+
import { PartialHash, TaskHasherImpl } from './task-hasher';
|
|
6
|
+
export declare class NodeTaskHasherImpl implements TaskHasherImpl {
|
|
7
|
+
private readonly nxJson;
|
|
8
|
+
private readonly legacyRuntimeInputs;
|
|
9
|
+
private readonly legacyFilesetInputs;
|
|
10
|
+
private readonly projectFileMap;
|
|
11
|
+
private readonly allWorkspaceFiles;
|
|
12
|
+
private readonly projectGraph;
|
|
13
|
+
private readonly options;
|
|
14
|
+
private filesetHashes;
|
|
15
|
+
private runtimeHashes;
|
|
16
|
+
private externalDependencyHashes;
|
|
17
|
+
private allExternalDependenciesHash;
|
|
18
|
+
private projectRootMappings;
|
|
19
|
+
constructor(nxJson: NxJsonConfiguration, legacyRuntimeInputs: {
|
|
20
|
+
runtime: string;
|
|
21
|
+
}[], legacyFilesetInputs: {
|
|
22
|
+
fileset: string;
|
|
23
|
+
}[], projectFileMap: ProjectFileMap, allWorkspaceFiles: FileData[], projectGraph: ProjectGraph, options: {
|
|
24
|
+
selectivelyHashTsConfig: boolean;
|
|
25
|
+
});
|
|
26
|
+
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash[]>;
|
|
27
|
+
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, visited?: string[]): Promise<PartialHash>;
|
|
28
|
+
private hashNamedInputForDependencies;
|
|
29
|
+
private hashSelfAndDepsInputs;
|
|
30
|
+
private combinePartialHashes;
|
|
31
|
+
private hashDepsInputs;
|
|
32
|
+
private hashDepsOutputs;
|
|
33
|
+
private hashDepOuputs;
|
|
34
|
+
private hashFiles;
|
|
35
|
+
private getExternalDependencyHash;
|
|
36
|
+
private hashSingleExternalDependency;
|
|
37
|
+
private hashExternalDependency;
|
|
38
|
+
private hashTarget;
|
|
39
|
+
private findExternalDependencyNodeName;
|
|
40
|
+
private hashSingleProjectInputs;
|
|
41
|
+
private hashProjectInputs;
|
|
42
|
+
private hashRootFileset;
|
|
43
|
+
private hashProjectConfig;
|
|
44
|
+
private hashTsConfig;
|
|
45
|
+
private hashProjectFileset;
|
|
46
|
+
private hashRuntime;
|
|
47
|
+
private hashEnv;
|
|
48
|
+
private calculateExternalDependencyHashes;
|
|
49
|
+
}
|