From 516a6bd8ef9223e61fc2d8bb4c59c830379eab55 Mon Sep 17 00:00:00 2001 From: Victor Savkin Date: Thu, 31 Mar 2022 09:07:22 -0400 Subject: [PATCH] cleanup(core): create more meaningful file structure in nx package (#9621) --- CONTRIBUTING.md | 2 +- .../src/add-nx-to-monorepo.test.ts | 2 +- e2e/utils/index.ts | 2 +- e2e/workspace-core/src/aux-commands.test.ts | 2 +- .../src/generators/library/library.spec.ts | 2 +- .../utils/mfe/with-module-federation.spec.ts | 5 +- .../src/utils/mfe/with-module-federation.ts | 2 +- packages/devkit/index.ts | 32 ++- .../src/executors/read-target-options.ts | 4 +- .../devkit/src/generators/format-files.ts | 2 +- .../src/generators/generate-files.spec.ts | 2 +- .../devkit/src/generators/generate-files.ts | 2 +- .../generators/project-configuration.spec.ts | 4 +- .../src/generators/project-configuration.ts | 14 +- packages/devkit/src/generators/to-js.ts | 2 +- .../src/generators/update-ts-configs-to-js.ts | 2 +- .../visit-not-ignored-files.spec.ts | 2 +- .../src/generators/visit-not-ignored-files.ts | 2 +- .../devkit/src/tasks/install-packages-task.ts | 2 +- .../tests/create-tree-with-empty-workspace.ts | 4 +- packages/devkit/src/tests/create-tree.ts | 4 +- .../devkit/src/utils/convert-nx-executor.ts | 4 +- .../devkit/src/utils/get-workspace-layout.ts | 4 +- .../devkit/src/utils/invoke-nx-generator.ts | 10 +- packages/devkit/src/utils/json.ts | 2 +- packages/devkit/src/utils/move-dir.ts | 2 +- .../devkit/src/utils/package-json.spec.ts | 2 +- packages/devkit/src/utils/package-json.ts | 4 +- .../rules/enforce-module-boundaries.spec.ts | 2 +- .../src/rules/enforce-module-boundaries.ts | 2 +- .../utils/config/get-jest-projects.spec.ts | 2 +- .../src/utils/config/get-jest-projects.ts | 2 +- packages/nx/bin/init.ts | 2 +- packages/nx/bin/nx.ts | 2 +- packages/nx/src/adapter/compat.ts | 2 +- packages/nx/src/adapter/ngcli-adapter.ts | 58 +--- packages/nx/src/command-line/affected.ts | 18 +- .../src/command-line/connect-to-nx-cloud.ts | 2 +- packages/nx/src/command-line/daemon.ts | 4 +- packages/nx/src/command-line/dep-graph.ts | 14 +- packages/nx/src/command-line/format.ts | 24 +- packages/nx/src/command-line/generate.ts | 10 +- packages/nx/src/command-line/lint.ts | 6 +- packages/nx/src/command-line/list.ts | 2 +- packages/nx/src/command-line/migrate.ts | 4 +- packages/nx/src/command-line/nx-commands.ts | 6 +- .../nx/src/command-line/print-affected.ts | 11 +- .../nx/src/command-line/read-environment.ts | 19 ++ packages/nx/src/command-line/report.ts | 6 +- packages/nx/src/command-line/reset.ts | 2 +- packages/nx/src/command-line/run-many.ts | 10 +- packages/nx/src/command-line/run-one.ts | 18 +- packages/nx/src/command-line/run.ts | 17 +- .../src/command-line/workspace-generators.ts | 8 +- .../workspace-integrity-checks.ts | 4 +- packages/nx/src/config/misc-interfaces.ts | 102 +++++++ .../src/{shared/nx.ts => config/nx-json.ts} | 2 +- .../src/{shared => config}/project-graph.ts | 5 +- .../{shared/tasks.ts => config/task-graph.ts} | 0 .../nx/src/{shared => config}/tree.spec.ts | 0 packages/nx/src/{shared => config}/tree.ts | 0 .../src/config/workspace-json-project-json.ts | 145 ++++++++++ .../workspaces.spec.ts} | 4 +- .../workspace.ts => config/workspaces.ts} | 262 ++---------------- .../src/core/affected-project-graph/index.ts | 2 - packages/nx/src/core/shared-interfaces.ts | 12 - .../{core/project-graph => }/daemon/cache.ts | 0 .../daemon/client/client.ts | 6 +- .../daemon/client/exec-is-server-available.ts | 0 .../daemon/client/generate-help-output.ts | 0 .../daemon/server/logger.spec.ts | 0 .../daemon/server/logger.ts | 0 ...project-graph-incremental-recomputation.ts | 16 +- .../daemon/server/server.ts | 8 +- .../daemon/server/shutdown-utils.ts | 2 +- .../project-graph => }/daemon/server/start.ts | 2 +- .../project-graph => }/daemon/server/stop.ts | 2 +- .../daemon/server/watcher.ts | 6 +- .../project-graph => }/daemon/socket-utils.ts | 2 +- .../project-graph => }/daemon/tmp-dir.ts | 2 +- .../src/{core => }/hasher/file-hasher-base.ts | 6 +- .../nx/src/{core => }/hasher/file-hasher.ts | 2 +- .../hasher/git-based-file-hasher.ts | 2 +- .../src/{core => }/hasher/git-hasher.spec.ts | 0 .../nx/src/{core => }/hasher/git-hasher.ts | 4 +- .../nx/src/{core => }/hasher/hasher.spec.ts | 8 +- packages/nx/src/{core => }/hasher/hasher.ts | 20 +- .../nx/src/{core => }/hasher/hashing-impl.ts | 0 .../hasher/node-based-file-hasher.ts | 8 +- .../affected-project-graph-models.ts | 4 +- .../affected}/affected-project-graph.spec.ts | 8 +- .../affected}/affected-project-graph.ts | 8 +- .../locators/implicit-json-changes.spec.ts | 2 +- .../locators/implicit-json-changes.ts | 2 +- .../affected}/locators/npm-packages.spec.ts | 4 +- .../affected}/locators/npm-packages.ts | 0 .../locators/tsconfig-json-changes.spec.ts | 2 +- .../locators/tsconfig-json-changes.ts | 2 +- .../locators/workspace-json-changes.spec.ts | 0 .../locators/workspace-json-changes.ts | 0 .../locators/workspace-projects.spec.ts | 0 .../affected}/locators/workspace-projects.ts | 0 ...ypescript-and-package-json-dependencies.ts | 4 +- ...explicit-package-json-dependencies.spec.ts | 6 +- .../explicit-package-json-dependencies.ts | 10 +- .../explicit-project-dependencies.spec.ts | 4 +- .../explicit-project-dependencies.ts | 6 +- .../implicit-project-dependencies.ts | 2 +- .../implict-project-dependencies.spec.ts | 2 +- .../project-graph/build-dependencies/index.ts | 0 .../typescript-import-locator.ts | 6 +- .../project-graph/build-nodes/index.ts | 0 .../project-graph/build-nodes/npm-packages.ts | 0 .../build-nodes/workspace-projects.ts | 2 +- .../project-graph/build-project-graph.spec.ts | 8 +- .../project-graph/build-project-graph.ts | 32 +-- .../file-map-utils.spec.ts | 0 .../{core => project-graph}/file-map-utils.ts | 2 +- .../file-utils.spec.ts | 2 +- .../src/{core => project-graph}/file-utils.ts | 24 +- .../normalize-nx-json.spec.ts | 0 .../normalize-nx-json.ts | 2 +- .../nx-deps-cache.spec.ts | 6 +- .../nx-deps-cache.ts | 12 +- .../project-graph/operators.spec.ts | 2 +- .../src/{core => }/project-graph/operators.ts | 2 +- .../project-graph-builder.spec.ts | 0 .../project-graph/project-graph-builder.ts | 2 +- .../project-graph/project-graph-worker.ts | 4 +- .../{core => }/project-graph/project-graph.ts | 16 +- .../src/tasks-runner/batch/batch-messages.ts | 2 +- .../nx/src/tasks-runner/batch/run-batch.ts | 9 +- packages/nx/src/tasks-runner/cache.ts | 4 +- .../src/tasks-runner/default-tasks-runner.ts | 8 +- .../forked-process-task-runner.ts | 4 +- packages/nx/src/tasks-runner/life-cycle.ts | 2 +- ...mic-run-many-terminal-output-life-cycle.ts | 2 +- ...amic-run-one-terminal-output-life-cycle.ts | 2 +- .../empty-terminal-output-life-cycle.ts | 2 +- ...tic-run-many-terminal-output-life-cycle.ts | 2 +- ...atic-run-one-terminal-output-life-cycle.ts | 2 +- .../life-cycles/task-profiling-life-cycle.ts | 4 +- .../life-cycles/task-timings-life-cycle.ts | 2 +- packages/nx/src/tasks-runner/reporter.ts | 29 -- .../nx/src/tasks-runner/run-command.spec.ts | 4 +- packages/nx/src/tasks-runner/run-command.ts | 17 +- .../tasks-runner/task-graph-creator.spec.ts | 2 +- .../nx/src/tasks-runner/task-graph-creator.ts | 6 +- .../nx/src/tasks-runner/task-orchestrator.ts | 10 +- .../nx/src/tasks-runner/tasks-runner-v2.ts | 6 +- packages/nx/src/tasks-runner/tasks-runner.ts | 6 +- .../src/tasks-runner/tasks-schedule.spec.ts | 6 +- .../nx/src/tasks-runner/tasks-schedule.ts | 8 +- packages/nx/src/tasks-runner/utils.spec.ts | 7 +- packages/nx/src/tasks-runner/utils.ts | 9 +- .../assert-workspace-validity.spec.ts | 0 .../assert-workspace-validity.ts | 4 +- packages/nx/src/utils/cache-directory.ts | 6 +- .../command-line-utils.spec.ts} | 9 +- .../utils.ts => utils/command-line-utils.ts} | 6 +- packages/nx/src/utils/json-diff.ts | 2 +- packages/nx/src/utils/nx-plugin.ts | 16 +- packages/nx/src/utils/output.ts | 2 +- packages/nx/src/utils/package-json.ts | 2 +- packages/nx/src/utils/params.spec.ts | 2 +- packages/nx/src/utils/params.ts | 7 +- .../nx/src/utils/plugins/installed-plugins.ts | 2 +- .../src/utils/plugins/plugin-capabilities.ts | 4 +- .../nx/src/utils/project-graph-utils.spec.ts | 4 +- packages/nx/src/utils/project-graph-utils.ts | 12 +- .../target-project-locator.spec.ts | 2 +- .../{core => utils}/target-project-locator.ts | 13 +- packages/nx/src/utils/typescript.ts | 2 +- .../generators/stories/stories-lib.spec.ts | 2 +- packages/tao/src/shared/nx.ts | 2 +- packages/tao/src/shared/project-graph.ts | 2 +- packages/tao/src/shared/tree.ts | 2 +- packages/tao/src/shared/workspace.ts | 2 +- packages/workspace/index.ts | 4 +- packages/workspace/src/core/file-utils.ts | 2 +- packages/workspace/src/core/project-graph.ts | 2 +- .../src/generators/workspace/workspace.ts | 2 +- .../nxEnforceModuleBoundariesRule.spec.ts | 2 +- .../tslint/nxEnforceModuleBoundariesRule.ts | 2 +- .../src/utilities/buildable-libs-utils.ts | 2 +- .../workspace/src/utilities/generate-globs.ts | 2 +- .../src/utils/rules/format-files.spec.ts | 2 +- .../workspace/src/utils/rules/format-files.ts | 2 +- .../workspace/src/utils/runtime-lint-utils.ts | 4 +- scripts/check-imports.js | 4 +- 190 files changed, 719 insertions(+), 769 deletions(-) create mode 100644 packages/nx/src/command-line/read-environment.ts create mode 100644 packages/nx/src/config/misc-interfaces.ts rename packages/nx/src/{shared/nx.ts => config/nx-json.ts} (97%) rename packages/nx/src/{shared => config}/project-graph.ts (97%) rename packages/nx/src/{shared/tasks.ts => config/task-graph.ts} (100%) rename packages/nx/src/{shared => config}/tree.spec.ts (100%) rename packages/nx/src/{shared => config}/tree.ts (100%) create mode 100644 packages/nx/src/config/workspace-json-project-json.ts rename packages/nx/src/{shared/workspace.spec.ts => config/workspaces.spec.ts} (97%) rename packages/nx/src/{shared/workspace.ts => config/workspaces.ts} (80%) delete mode 100644 packages/nx/src/core/affected-project-graph/index.ts delete mode 100644 packages/nx/src/core/shared-interfaces.ts rename packages/nx/src/{core/project-graph => }/daemon/cache.ts (100%) rename packages/nx/src/{core/project-graph => }/daemon/client/client.ts (97%) rename packages/nx/src/{core/project-graph => }/daemon/client/exec-is-server-available.ts (100%) rename packages/nx/src/{core/project-graph => }/daemon/client/generate-help-output.ts (100%) rename packages/nx/src/{core/project-graph => }/daemon/server/logger.spec.ts (100%) rename packages/nx/src/{core/project-graph => }/daemon/server/logger.ts (100%) rename packages/nx/src/{core/project-graph => }/daemon/server/project-graph-incremental-recomputation.ts (93%) rename packages/nx/src/{core/project-graph => }/daemon/server/server.ts (96%) rename packages/nx/src/{core/project-graph => }/daemon/server/shutdown-utils.ts (95%) rename packages/nx/src/{core/project-graph => }/daemon/server/start.ts (85%) rename packages/nx/src/{core/project-graph => }/daemon/server/stop.ts (87%) rename packages/nx/src/{core/project-graph => }/daemon/server/watcher.ts (96%) rename packages/nx/src/{core/project-graph => }/daemon/socket-utils.ts (96%) rename packages/nx/src/{core/project-graph => }/daemon/tmp-dir.ts (95%) rename packages/nx/src/{core => }/hasher/file-hasher-base.ts (91%) rename packages/nx/src/{core => }/hasher/file-hasher.ts (91%) rename packages/nx/src/{core => }/hasher/git-based-file-hasher.ts (96%) rename packages/nx/src/{core => }/hasher/git-hasher.spec.ts (100%) rename packages/nx/src/{core => }/hasher/git-hasher.ts (97%) rename packages/nx/src/{core => }/hasher/hasher.spec.ts (98%) rename packages/nx/src/{core => }/hasher/hasher.ts (96%) rename packages/nx/src/{core => }/hasher/hashing-impl.ts (100%) rename packages/nx/src/{core => }/hasher/node-based-file-hasher.ts (90%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/affected-project-graph-models.ts (78%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/affected-project-graph.spec.ts (96%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/affected-project-graph.ts (94%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/implicit-json-changes.spec.ts (97%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/implicit-json-changes.ts (96%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/npm-packages.spec.ts (97%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/npm-packages.ts (100%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/tsconfig-json-changes.spec.ts (99%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/tsconfig-json-changes.ts (97%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/workspace-json-changes.spec.ts (100%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/workspace-json-changes.ts (100%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/workspace-projects.spec.ts (100%) rename packages/nx/src/{core/affected-project-graph => project-graph/affected}/locators/workspace-projects.ts (100%) rename packages/nx/src/{core => }/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts (87%) rename packages/nx/src/{core => }/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts (95%) rename packages/nx/src/{core => }/project-graph/build-dependencies/explicit-package-json-dependencies.ts (89%) rename packages/nx/src/{core => }/project-graph/build-dependencies/explicit-project-dependencies.spec.ts (98%) rename packages/nx/src/{core => }/project-graph/build-dependencies/explicit-project-dependencies.ts (85%) rename packages/nx/src/{core => }/project-graph/build-dependencies/implicit-project-dependencies.ts (89%) rename packages/nx/src/{core => }/project-graph/build-dependencies/implict-project-dependencies.spec.ts (95%) rename packages/nx/src/{core => }/project-graph/build-dependencies/index.ts (100%) rename packages/nx/src/{core => }/project-graph/build-dependencies/typescript-import-locator.ts (96%) rename packages/nx/src/{core => }/project-graph/build-nodes/index.ts (100%) rename packages/nx/src/{core => }/project-graph/build-nodes/npm-packages.ts (100%) rename packages/nx/src/{core => }/project-graph/build-nodes/workspace-projects.ts (96%) rename packages/nx/src/{core => }/project-graph/build-project-graph.spec.ts (96%) rename packages/nx/src/{core => }/project-graph/build-project-graph.ts (94%) rename packages/nx/src/{core => project-graph}/file-map-utils.spec.ts (100%) rename packages/nx/src/{core => project-graph}/file-map-utils.ts (97%) rename packages/nx/src/{core => project-graph}/file-utils.spec.ts (97%) rename packages/nx/src/{core => project-graph}/file-utils.ts (88%) rename packages/nx/src/{core => project-graph}/normalize-nx-json.spec.ts (100%) rename packages/nx/src/{core => project-graph}/normalize-nx-json.ts (95%) rename packages/nx/src/{core/nx-deps => project-graph}/nx-deps-cache.spec.ts (97%) rename packages/nx/src/{core/nx-deps => project-graph}/nx-deps-cache.ts (94%) rename packages/nx/src/{core => }/project-graph/operators.spec.ts (99%) rename packages/nx/src/{core => }/project-graph/operators.ts (99%) rename packages/nx/src/{core => }/project-graph/project-graph-builder.spec.ts (100%) rename packages/nx/src/{core => }/project-graph/project-graph-builder.ts (99%) rename packages/nx/src/{core => }/project-graph/project-graph-worker.ts (86%) rename packages/nx/src/{core => }/project-graph/project-graph.ts (93%) delete mode 100644 packages/nx/src/tasks-runner/reporter.ts rename packages/nx/src/{core => utils}/assert-workspace-validity.spec.ts (100%) rename packages/nx/src/{core => utils}/assert-workspace-validity.ts (97%) rename packages/nx/src/{command-line/utils.spec.ts => utils/command-line-utils.spec.ts} (97%) rename packages/nx/src/{command-line/utils.ts => utils/command-line-utils.ts} (98%) rename packages/nx/src/{core => utils}/target-project-locator.spec.ts (99%) rename packages/nx/src/{core => utils}/target-project-locator.ts (95%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c8c86155535e..778b2815123b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -192,7 +192,7 @@ Please follow the following guidelines: - Make sure unit tests pass (`nx affected --target=test`) - Target a specific project with: `nx run proj:test` (i.e. `nx run angular:test` to target `packages/angular`) - - Target a specific unit test file (i.e. `packages/angular/src/utils/ast-utils.spec.ts`) with `npx jest angular/src/utils/ast-utils` or `npx jest packages/angular/src/utils/ast-utils` + - Target a specific unit test file (i.e. `packages/angular/src/utils/ast-command-line-utils.spec.ts`) with `npx jest angular/src/utils/ast-utils` or `npx jest packages/angular/src/utils/ast-utils` - For more options on running tests - check `npx jest --help` or visit [jestjs.io](https://jestjs.io/) - Debug with `node --inspect-brk ./node_modules/jest/bin/jest.js build/packages/angular/src/utils/ast-utils.spec.js` - Make sure e2e tests pass (this can take a while, so you can always let CI check those) (`yarn e2e`) diff --git a/e2e/add-nx-to-monorepo/src/add-nx-to-monorepo.test.ts b/e2e/add-nx-to-monorepo/src/add-nx-to-monorepo.test.ts index ba6f7f5e6f743..b74538c54d4a1 100644 --- a/e2e/add-nx-to-monorepo/src/add-nx-to-monorepo.test.ts +++ b/e2e/add-nx-to-monorepo/src/add-nx-to-monorepo.test.ts @@ -7,7 +7,7 @@ import { getPackageManagerCommand, getSelectedPackageManager, } from '@nrwl/e2e/utils'; -import { Workspaces } from 'nx/src/shared/workspace'; +import { Workspaces } from 'nx/src/config/workspaces'; describe('add-nx-to-monorepo', () => { const packageManagerCommand = getPackageManagerCommand({ diff --git a/e2e/utils/index.ts b/e2e/utils/index.ts index 328238ec370f0..4993745d54300 100644 --- a/e2e/utils/index.ts +++ b/e2e/utils/index.ts @@ -28,7 +28,7 @@ import { promisify } from 'util'; import chalk = require('chalk'); import isCI = require('is-ci'); import treeKill = require('tree-kill'); -import { Workspaces } from '../../packages/nx/src/shared/workspace'; +import { Workspaces } from '../../packages/nx/src/config/workspaces'; import { PackageManager } from 'nx/src/utils/package-manager'; export function detectPackageManager(dir: string = ''): PackageManager { diff --git a/e2e/workspace-core/src/aux-commands.test.ts b/e2e/workspace-core/src/aux-commands.test.ts index 2075ad4f945a0..3cfcb39eb8c27 100644 --- a/e2e/workspace-core/src/aux-commands.test.ts +++ b/e2e/workspace-core/src/aux-commands.test.ts @@ -42,7 +42,7 @@ describe('workspace-generator', () => { const workspace = uniq('workspace'); updateFile( - 'tools/utils/utils.ts', + 'tools/utils/command-line-utils.ts', ` export const noop = () => {} ` diff --git a/packages/angular/src/generators/library/library.spec.ts b/packages/angular/src/generators/library/library.spec.ts index e0ef3e38f6837..02fadb3c12029 100644 --- a/packages/angular/src/generators/library/library.spec.ts +++ b/packages/angular/src/generators/library/library.spec.ts @@ -9,7 +9,7 @@ import { } from '@nrwl/devkit'; import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing'; import { Linter } from '@nrwl/linter'; -import { toNewFormat } from 'nx/src/shared/workspace'; +import { toNewFormat } from 'nx/src/config/workspaces'; import { createApp } from '../../utils/nx-devkit/testing'; import { UnitTestRunner } from '../../utils/test-runners'; import { diff --git a/packages/angular/src/utils/mfe/with-module-federation.spec.ts b/packages/angular/src/utils/mfe/with-module-federation.spec.ts index 8b3b3416957fe..3f1cae6b828ea 100644 --- a/packages/angular/src/utils/mfe/with-module-federation.spec.ts +++ b/packages/angular/src/utils/mfe/with-module-federation.spec.ts @@ -1,11 +1,10 @@ jest.mock('fs'); jest.mock('@nrwl/devkit'); jest.mock('@nrwl/workspace/src/utilities/typescript'); -jest.mock('nx/src/core/file-utils'); -jest.mock('nx/src/shared/workspace'); +jest.mock('nx/src/project-graph/file-utils'); import * as graph from '@nrwl/devkit'; import * as typescriptUtils from '@nrwl/workspace/src/utilities/typescript'; -import * as workspace from 'nx/src/core/file-utils'; +import * as workspace from 'nx/src/project-graph/file-utils'; import * as fs from 'fs'; import { withModuleFederation } from './with-module-federation'; diff --git a/packages/angular/src/utils/mfe/with-module-federation.ts b/packages/angular/src/utils/mfe/with-module-federation.ts index 8f680b5553991..c89e7076c2c5f 100644 --- a/packages/angular/src/utils/mfe/with-module-federation.ts +++ b/packages/angular/src/utils/mfe/with-module-federation.ts @@ -15,7 +15,7 @@ import { readTsConfig, } from '@nrwl/workspace/src/utilities/typescript'; import { ParsedCommandLine } from 'typescript'; -import { readWorkspaceJson } from 'nx/src/core/file-utils'; +import { readWorkspaceJson } from 'nx/src/project-graph/file-utils'; import ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin'); export type MFERemotes = string[] | [remoteName: string, remoteUrl: string][]; diff --git a/packages/devkit/index.ts b/packages/devkit/index.ts index f9f29c3d67a09..fffbc62adfd68 100644 --- a/packages/devkit/index.ts +++ b/packages/devkit/index.ts @@ -12,7 +12,7 @@ /** * @category Tree */ -export type { Tree, FileChange } from 'nx/src/shared/tree'; +export type { Tree, FileChange } from 'nx/src/config/tree'; /** * @category Workspace @@ -23,18 +23,24 @@ export type { TargetConfiguration, ProjectConfiguration, ProjectType, + Workspace, +} from 'nx/src/config/workspace-json-project-json'; + +/** + * @category Workspace + */ +export type { Generator, GeneratorCallback, Executor, ExecutorContext, TaskGraphExecutor, - Workspace, -} from 'nx/src/shared/workspace'; +} from 'nx/src/config/misc-interfaces'; /** * @category Workspace */ -export { Workspaces } from 'nx/src/shared/workspace'; +export { Workspaces } from 'nx/src/config/workspaces'; export type { NxPlugin, @@ -44,7 +50,7 @@ export type { /** * @category Workspace */ -export type { Task, TaskGraph } from 'nx/src/shared/tasks'; +export type { Task, TaskGraph } from 'nx/src/config/task-graph'; /** * @category Workspace @@ -55,7 +61,7 @@ export type { NxJsonConfiguration, NxJsonProjectConfiguration, NxAffectedConfig, -} from 'nx/src/shared/nx'; +} from 'nx/src/config/nx-json'; /** * @category Logger @@ -160,17 +166,17 @@ export type { ProjectGraphProjectNode, ProjectGraphExternalNode, ProjectGraphProcessorContext, -} from 'nx/src/shared/project-graph'; +} from 'nx/src/config/project-graph'; /** * @category Project Graph */ -export { DependencyType } from 'nx/src/shared/project-graph'; +export { DependencyType } from 'nx/src/config/project-graph'; /** * @category Project Graph */ -export { ProjectGraphBuilder } from 'nx/src/core/project-graph/project-graph-builder'; +export { ProjectGraphBuilder } from 'nx/src/project-graph/project-graph-builder'; /** * @category Utils @@ -270,19 +276,19 @@ export { workspaceRoot, appRootPath } from 'nx/src/utils/app-root'; /** * @category Utils */ -export { reverse } from 'nx/src/core/project-graph/operators'; +export { reverse } from 'nx/src/project-graph/operators'; /** * @category Utils */ export { createProjectGraphAsync, readCachedProjectGraph, -} from 'nx/src/core/project-graph/project-graph'; +} from 'nx/src/project-graph/project-graph'; /** * @category Utils */ -export { readNxJson, workspaceLayout } from 'nx/src/core/file-utils'; +export { readNxJson, workspaceLayout } from 'nx/src/project-graph/file-utils'; /** * @category Utils @@ -301,7 +307,7 @@ export { /** * @category Utils */ -export { Hash, Hasher } from 'nx/src/core/hasher/hasher'; +export { Hash, Hasher } from 'nx/src/hasher/hasher'; /** * @category Utils diff --git a/packages/devkit/src/executors/read-target-options.ts b/packages/devkit/src/executors/read-target-options.ts index 65d8f13f5e1b7..24fef2a9b48d0 100644 --- a/packages/devkit/src/executors/read-target-options.ts +++ b/packages/devkit/src/executors/read-target-options.ts @@ -1,6 +1,6 @@ import type { Target } from 'nx/src/command-line/run'; -import type { ExecutorContext } from 'nx/src/shared/workspace'; -import { Workspaces } from 'nx/src/shared/workspace'; +import type { ExecutorContext } from 'nx/src/config/misc-interfaces'; +import { Workspaces } from 'nx/src/config/workspaces'; import { combineOptionsForExecutor } from 'nx/src/utils/params'; /** diff --git a/packages/devkit/src/generators/format-files.ts b/packages/devkit/src/generators/format-files.ts index 77f96d05c63c6..f5f3386fcd2f6 100644 --- a/packages/devkit/src/generators/format-files.ts +++ b/packages/devkit/src/generators/format-files.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import * as path from 'path'; import type * as Prettier from 'prettier'; import { getWorkspacePath } from '../utils/get-workspace-layout'; diff --git a/packages/devkit/src/generators/generate-files.spec.ts b/packages/devkit/src/generators/generate-files.spec.ts index 1eaf23fe000f8..cbcc85ad35267 100644 --- a/packages/devkit/src/generators/generate-files.spec.ts +++ b/packages/devkit/src/generators/generate-files.spec.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { createTree } from '../tests/create-tree'; import { generateFiles } from './generate-files'; import { join } from 'path'; diff --git a/packages/devkit/src/generators/generate-files.ts b/packages/devkit/src/generators/generate-files.ts index aaaee0dbba516..1f42858c3c2eb 100644 --- a/packages/devkit/src/generators/generate-files.ts +++ b/packages/devkit/src/generators/generate-files.ts @@ -1,6 +1,6 @@ import { readFileSync, readdirSync, statSync } from 'fs'; import * as path from 'path'; -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { logger } from 'nx/src/utils/logger'; const binaryExts = new Set([ diff --git a/packages/devkit/src/generators/project-configuration.spec.ts b/packages/devkit/src/generators/project-configuration.spec.ts index 01ec38ed7f80f..fe5b1686eb826 100644 --- a/packages/devkit/src/generators/project-configuration.spec.ts +++ b/packages/devkit/src/generators/project-configuration.spec.ts @@ -1,5 +1,5 @@ -import { Tree } from 'nx/src/shared/tree'; -import { ProjectConfiguration } from 'nx/src/shared/workspace'; +import { Tree } from 'nx/src/config/tree'; +import { ProjectConfiguration } from 'nx/src/config/workspace-json-project-json'; import { createTreeWithEmptyWorkspace } from '../tests/create-tree-with-empty-workspace'; import { readJson, updateJson } from '../utils/json'; diff --git a/packages/devkit/src/generators/project-configuration.ts b/packages/devkit/src/generators/project-configuration.ts index dc73dba1b9314..19bcbafa9a306 100644 --- a/packages/devkit/src/generators/project-configuration.ts +++ b/packages/devkit/src/generators/project-configuration.ts @@ -2,12 +2,9 @@ import { buildWorkspaceConfigurationFromGlobs, deduplicateProjectFiles, globForProjectFiles, - ProjectConfiguration, - RawWorkspaceJsonConfiguration, reformattedWorkspaceJsonOrNull, toNewFormat, - WorkspaceJsonConfiguration, -} from 'nx/src/shared/workspace'; +} from 'nx/src/config/workspaces'; import { basename, dirname, relative } from 'path'; import { @@ -16,9 +13,14 @@ import { } from '../utils/get-workspace-layout'; import { readJson, updateJson, writeJson } from '../utils/json'; -import type { Tree } from 'nx/src/shared/tree'; -import type { NxJsonConfiguration } from 'nx/src/shared/nx'; +import type { Tree } from 'nx/src/config/tree'; +import type { NxJsonConfiguration } from 'nx/src/config/nx-json'; import { joinPathFragments } from 'nx/src/utils/path'; +import { + ProjectConfiguration, + RawWorkspaceJsonConfiguration, + WorkspaceJsonConfiguration, +} from 'nx/src/config/workspace-json-project-json'; export type WorkspaceConfiguration = Omit< WorkspaceJsonConfiguration, diff --git a/packages/devkit/src/generators/to-js.ts b/packages/devkit/src/generators/to-js.ts index b12376800d05c..082f95d219207 100644 --- a/packages/devkit/src/generators/to-js.ts +++ b/packages/devkit/src/generators/to-js.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; /** * Rename and transpile any new typescript files created to javascript files diff --git a/packages/devkit/src/generators/update-ts-configs-to-js.ts b/packages/devkit/src/generators/update-ts-configs-to-js.ts index 6ff888d7301f2..7b9e9a8882f03 100644 --- a/packages/devkit/src/generators/update-ts-configs-to-js.ts +++ b/packages/devkit/src/generators/update-ts-configs-to-js.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { updateJson } from '../utils/json'; export function updateTsConfigsToJs( diff --git a/packages/devkit/src/generators/visit-not-ignored-files.spec.ts b/packages/devkit/src/generators/visit-not-ignored-files.spec.ts index 0fdaf4ea12111..ec5a6e0b28da3 100644 --- a/packages/devkit/src/generators/visit-not-ignored-files.spec.ts +++ b/packages/devkit/src/generators/visit-not-ignored-files.spec.ts @@ -1,5 +1,5 @@ import { createTree } from '../tests/create-tree'; -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { visitNotIgnoredFiles } from './visit-not-ignored-files'; describe('visitNotIgnoredFiles', () => { diff --git a/packages/devkit/src/generators/visit-not-ignored-files.ts b/packages/devkit/src/generators/visit-not-ignored-files.ts index 2d7bf166f2799..ccc8fc6e10976 100644 --- a/packages/devkit/src/generators/visit-not-ignored-files.ts +++ b/packages/devkit/src/generators/visit-not-ignored-files.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import ignore, { Ignore } from 'ignore'; import { join, relative, sep } from 'path'; diff --git a/packages/devkit/src/tasks/install-packages-task.ts b/packages/devkit/src/tasks/install-packages-task.ts index 399082a28f332..7f19f17f3acc0 100644 --- a/packages/devkit/src/tasks/install-packages-task.ts +++ b/packages/devkit/src/tasks/install-packages-task.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { execSync } from 'child_process'; import { join } from 'path'; import { diff --git a/packages/devkit/src/tests/create-tree-with-empty-workspace.ts b/packages/devkit/src/tests/create-tree-with-empty-workspace.ts index 8e1926e275cd5..c9dbd6962a9b3 100644 --- a/packages/devkit/src/tests/create-tree-with-empty-workspace.ts +++ b/packages/devkit/src/tests/create-tree-with-empty-workspace.ts @@ -1,5 +1,5 @@ -import { FsTree } from 'nx/src/shared/tree'; -import type { Tree } from 'nx/src/shared/tree'; +import { FsTree } from 'nx/src/config/tree'; +import type { Tree } from 'nx/src/config/tree'; /** * Creates a host for testing. diff --git a/packages/devkit/src/tests/create-tree.ts b/packages/devkit/src/tests/create-tree.ts index 9e8de78992356..c467cf0ab854b 100644 --- a/packages/devkit/src/tests/create-tree.ts +++ b/packages/devkit/src/tests/create-tree.ts @@ -1,5 +1,5 @@ -import { FsTree } from 'nx/src/shared/tree'; -import type { Tree } from 'nx/src/shared/tree'; +import { FsTree } from 'nx/src/config/tree'; +import type { Tree } from 'nx/src/config/tree'; /** * Creates a host for testing. diff --git a/packages/devkit/src/utils/convert-nx-executor.ts b/packages/devkit/src/utils/convert-nx-executor.ts index 266bb3a162734..6c8dbfdc6fcab 100644 --- a/packages/devkit/src/utils/convert-nx-executor.ts +++ b/packages/devkit/src/utils/convert-nx-executor.ts @@ -1,6 +1,6 @@ import type { Observable } from 'rxjs'; -import type { Executor, ExecutorContext } from 'nx/src/shared/workspace'; -import { Workspaces } from 'nx/src/shared/workspace'; +import { Workspaces } from 'nx/src/config/workspaces'; +import { Executor, ExecutorContext } from 'nx/src/config/misc-interfaces'; /** * Convert an Nx Executor into an Angular Devkit Builder diff --git a/packages/devkit/src/utils/get-workspace-layout.ts b/packages/devkit/src/utils/get-workspace-layout.ts index 6ed46078aedc0..b21faa8bab654 100644 --- a/packages/devkit/src/utils/get-workspace-layout.ts +++ b/packages/devkit/src/utils/get-workspace-layout.ts @@ -1,9 +1,9 @@ -import { RawWorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; +import { RawWorkspaceJsonConfiguration } from 'nx/src/config/workspace-json-project-json'; import { readNxJson } from '../generators/project-configuration'; import { readJson } from './json'; -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; /** * Returns workspace defaults. It includes defaults folders for apps and libs, diff --git a/packages/devkit/src/utils/invoke-nx-generator.ts b/packages/devkit/src/utils/invoke-nx-generator.ts index aa613019cf28d..0d29982744b43 100644 --- a/packages/devkit/src/utils/invoke-nx-generator.ts +++ b/packages/devkit/src/utils/invoke-nx-generator.ts @@ -1,11 +1,7 @@ import { logger, stripIndent } from 'nx/src/utils/logger'; -import type { FileChange, Tree, TreeWriteOptions } from 'nx/src/shared/tree'; -import { - Generator, - GeneratorCallback, - toNewFormat, - toOldFormatOrNull, -} from 'nx/src/shared/workspace'; +import type { FileChange, Tree, TreeWriteOptions } from 'nx/src/config/tree'; +import { toNewFormat, toOldFormatOrNull } from 'nx/src/config/workspaces'; +import { Generator, GeneratorCallback } from 'nx/src/config/misc-interfaces'; import { parseJson, serializeJson } from 'nx/src/utils/json'; import { join, relative } from 'path'; diff --git a/packages/devkit/src/utils/json.ts b/packages/devkit/src/utils/json.ts index b5068bcfd6e0a..7e62a82e7d465 100644 --- a/packages/devkit/src/utils/json.ts +++ b/packages/devkit/src/utils/json.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { parseJson, serializeJson } from 'nx/src/utils/json'; import type { JsonParseOptions, JsonSerializeOptions } from 'nx/src/utils/json'; diff --git a/packages/devkit/src/utils/move-dir.ts b/packages/devkit/src/utils/move-dir.ts index c06cc7915bc06..4464dd5d93786 100644 --- a/packages/devkit/src/utils/move-dir.ts +++ b/packages/devkit/src/utils/move-dir.ts @@ -1,4 +1,4 @@ -import { Tree } from 'nx/src/shared/tree'; +import { Tree } from 'nx/src/config/tree'; import { relative } from 'path'; import { visitNotIgnoredFiles } from '../generators/visit-not-ignored-files'; import { normalizePath } from 'nx/src/utils/path'; diff --git a/packages/devkit/src/utils/package-json.spec.ts b/packages/devkit/src/utils/package-json.spec.ts index fc9596ca776d6..e9d99e2d36dd5 100644 --- a/packages/devkit/src/utils/package-json.spec.ts +++ b/packages/devkit/src/utils/package-json.spec.ts @@ -1,4 +1,4 @@ -import type { Tree } from 'nx/src/shared/tree'; +import type { Tree } from 'nx/src/config/tree'; import { readJson, writeJson } from './json'; import { addDependenciesToPackageJson } from './package-json'; import { createTree } from '../tests/create-tree'; diff --git a/packages/devkit/src/utils/package-json.ts b/packages/devkit/src/utils/package-json.ts index b0acc82b50871..ed2b6b7426366 100644 --- a/packages/devkit/src/utils/package-json.ts +++ b/packages/devkit/src/utils/package-json.ts @@ -1,7 +1,7 @@ import { readJson, updateJson } from './json'; import { installPackagesTask } from '../tasks/install-packages-task'; -import type { Tree } from 'nx/src/shared/tree'; -import type { GeneratorCallback } from 'nx/src/shared/workspace'; +import type { Tree } from 'nx/src/config/tree'; +import { GeneratorCallback } from 'nx/src/config/misc-interfaces'; /** * Add Dependencies and Dev Dependencies to package.json diff --git a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.spec.ts b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.spec.ts index c76ef258d5787..bf5f04dc8c108 100644 --- a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.spec.ts +++ b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.spec.ts @@ -6,7 +6,7 @@ import { vol } from 'memfs'; import enforceModuleBoundaries, { RULE_NAME as enforceModuleBoundariesRuleName, } from '../../src/rules/enforce-module-boundaries'; -import { TargetProjectLocator } from 'nx/src/core/target-project-locator'; +import { TargetProjectLocator } from 'nx/src/utils/target-project-locator'; import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils'; jest.mock('fs', () => require('memfs').fs); diff --git a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts index c8b5fcbde3c79..e376e4c6f3141 100644 --- a/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts +++ b/packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts @@ -34,7 +34,7 @@ import { TSESTree, } from '@typescript-eslint/experimental-utils'; import { createESLintRule } from '../utils/create-eslint-rule'; -import { TargetProjectLocator } from 'nx/src/core/target-project-locator'; +import { TargetProjectLocator } from 'nx/src/utils/target-project-locator'; import { checkCircularPath, findFilesInCircularPath, diff --git a/packages/jest/src/utils/config/get-jest-projects.spec.ts b/packages/jest/src/utils/config/get-jest-projects.spec.ts index 811436af89c81..f544c280773c0 100644 --- a/packages/jest/src/utils/config/get-jest-projects.spec.ts +++ b/packages/jest/src/utils/config/get-jest-projects.spec.ts @@ -1,5 +1,5 @@ import { getJestProjects } from './get-jest-projects'; -import * as Workspace from 'nx/src/core/file-utils'; +import * as Workspace from 'nx/src/project-graph/file-utils'; import type { WorkspaceJsonConfiguration } from '@nrwl/devkit'; describe('getJestProjects', () => { diff --git a/packages/jest/src/utils/config/get-jest-projects.ts b/packages/jest/src/utils/config/get-jest-projects.ts index 8df2949fe76bf..4774020caf57e 100644 --- a/packages/jest/src/utils/config/get-jest-projects.ts +++ b/packages/jest/src/utils/config/get-jest-projects.ts @@ -1,6 +1,6 @@ import { dirname, join } from 'path'; import type { WorkspaceJsonConfiguration } from '@nrwl/devkit'; -import { readWorkspaceConfig } from 'nx/src/core/file-utils'; +import { readWorkspaceConfig } from 'nx/src/project-graph/file-utils'; const JEST_RUNNER_TOKEN = '@nrwl/jest:jest'; diff --git a/packages/nx/bin/init.ts b/packages/nx/bin/init.ts index d070ba268b744..cf0c240ecaa9f 100644 --- a/packages/nx/bin/init.ts +++ b/packages/nx/bin/init.ts @@ -1,4 +1,4 @@ -import { createProjectGraphAsync } from '../src/core/project-graph/project-graph'; +import { createProjectGraphAsync } from '../src/project-graph/project-graph'; (async () => { try { diff --git a/packages/nx/bin/nx.ts b/packages/nx/bin/nx.ts index 124978c313357..9518f8d8e209c 100644 --- a/packages/nx/bin/nx.ts +++ b/packages/nx/bin/nx.ts @@ -6,7 +6,7 @@ import { import * as chalk from 'chalk'; import { initLocal } from './init-local'; import { detectPackageManager } from '../src/utils/package-manager'; -import { output } from 'nx/src/utils/output'; +import { output } from '../src/utils/output'; // new is a special case because there is no local workspace to load if (process.argv[2] === 'new' || process.argv[2] === '_migrate') { diff --git a/packages/nx/src/adapter/compat.ts b/packages/nx/src/adapter/compat.ts index 80c2bcc35dd6e..ae9f24884a447 100644 --- a/packages/nx/src/adapter/compat.ts +++ b/packages/nx/src/adapter/compat.ts @@ -3,7 +3,7 @@ import { resolveOldFormatWithInlineProjects, workspaceConfigName, Workspaces, -} from '../shared/workspace'; +} from '../config/workspaces'; import { workspaceRoot } from '../utils/app-root'; /* eslint-disable */ diff --git a/packages/nx/src/adapter/ngcli-adapter.ts b/packages/nx/src/adapter/ngcli-adapter.ts index 733c6f5dc1682..61a987fe721a8 100644 --- a/packages/nx/src/adapter/ngcli-adapter.ts +++ b/packages/nx/src/adapter/ngcli-adapter.ts @@ -15,18 +15,15 @@ import { createConsoleLogger, NodeJsSyncHost } from '@angular-devkit/core/node'; import { Stats } from 'fs'; import { detectPackageManager } from '../utils/package-manager'; import { GenerateOptions } from '../command-line/generate'; -import { FileChange, Tree } from '../shared/tree'; +import { FileChange, Tree } from '../config/tree'; import { buildWorkspaceConfigurationFromGlobs, globForProjectFiles, - ProjectConfiguration, - RawWorkspaceJsonConfiguration, toNewFormat, toNewFormatOrNull, toOldFormatOrNull, workspaceConfigName, - WorkspaceJsonConfiguration, -} from '../shared/workspace'; +} from '../config/workspaces'; import { dirname, extname, resolve, join, basename } from 'path'; import { FileBuffer } from '@angular-devkit/core/src/virtual-fs/host/interface'; import type { Architect } from '@angular-devkit/architect'; @@ -35,7 +32,12 @@ import { catchError, map, switchMap, toArray, tap } from 'rxjs/operators'; import { NX_ERROR, NX_PREFIX } from '../utils/logger'; import { readJsonFile } from '../utils/fileutils'; import { parseJson, serializeJson } from '../utils/json'; -import { NxJsonConfiguration } from '../shared/nx'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { + ProjectConfiguration, + RawWorkspaceJsonConfiguration, + WorkspaceJsonConfiguration, +} from '../config/workspace-json-project-json'; export async function scheduleTarget( root: string, @@ -760,50 +762,6 @@ function isWorkspaceConfigPath(p: Path | string) { ); } -function processConfigWhenReading(content: ArrayBuffer) { - try { - const json = parseJson(Buffer.from(content).toString()); - Object.values(json.projects).forEach((p: any) => { - try { - Object.values(p.architect || p.targets).forEach((e: any) => { - if ( - (e.builder === '@nrwl/jest:jest' || - e.executor === '@nrwl/jest:jest') && - !e.options.tsConfig - ) { - e.options.tsConfig = `${p.root}/tsconfig.spec.json`; - } - }); - } catch (e) {} - }); - return Buffer.from(serializeJson(json)); - } catch (e) { - return content; - } -} - -function processConfigWhenWriting(content: ArrayBuffer) { - try { - const json = parseJson(Buffer.from(content).toString()); - Object.values(json.projects).forEach((p: any) => { - try { - Object.values(p.architect || p.targets).forEach((e: any) => { - if ( - (e.builder === '@nrwl/jest:jest' || - e.executor === '@nrwl/jest:jest') && - e.options.tsConfig - ) { - delete e.options.tsConfig; - } - }); - } catch (e) {} - }); - return Buffer.from(serializeJson(json)); - } catch (e) { - return content; - } -} - export async function generate( root: string, opts: GenerateOptions, diff --git a/packages/nx/src/command-line/affected.ts b/packages/nx/src/command-line/affected.ts index 0e0f31516feb8..2c03482a2584f 100644 --- a/packages/nx/src/command-line/affected.ts +++ b/packages/nx/src/command-line/affected.ts @@ -1,18 +1,22 @@ import * as yargs from 'yargs'; -import { filterAffected } from '../core/affected-project-graph'; -import { calculateFileChanges, readEnvironment } from '../core/file-utils'; +import { calculateFileChanges } from '../project-graph/file-utils'; import { runCommand } from '../tasks-runner/run-command'; import { output } from '../utils/output'; import { generateGraph } from './dep-graph'; import { printAffected } from './print-affected'; import { connectToNxCloudUsingScan } from './connect-to-nx-cloud'; -import type { NxArgs, RawNxArgs } from './utils'; -import { parseFiles, splitArgsIntoNxArgsAndOverrides } from './utils'; +import type { NxArgs, RawNxArgs } from '../utils/command-line-utils'; +import { + parseFiles, + splitArgsIntoNxArgsAndOverrides, +} from '../utils/command-line-utils'; import { performance } from 'perf_hooks'; -import { createProjectGraphAsync } from 'nx/src/core/project-graph/project-graph'; -import { withDeps } from 'nx/src/core/project-graph/operators'; -import { ProjectGraph, ProjectGraphProjectNode } from '../shared/project-graph'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; +import { withDeps } from '../project-graph/operators'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; import { projectHasTarget } from '../utils/project-graph-utils'; +import { filterAffected } from '../project-graph/affected/affected-project-graph'; +import { readEnvironment } from './read-environment'; export async function affected( command: 'apps' | 'libs' | 'graph' | 'print-affected' | 'affected', diff --git a/packages/nx/src/command-line/connect-to-nx-cloud.ts b/packages/nx/src/command-line/connect-to-nx-cloud.ts index 71d73b41e0d58..cc00d199692b3 100644 --- a/packages/nx/src/command-line/connect-to-nx-cloud.ts +++ b/packages/nx/src/command-line/connect-to-nx-cloud.ts @@ -1,4 +1,4 @@ -import { readNxJson } from '../core/file-utils'; +import { readNxJson } from '../project-graph/file-utils'; import { output } from '../utils/output'; import { getPackageManagerCommand } from '../utils/package-manager'; import { execSync } from 'child_process'; diff --git a/packages/nx/src/command-line/daemon.ts b/packages/nx/src/command-line/daemon.ts index b8eef81a893f1..f7df4067a1164 100644 --- a/packages/nx/src/command-line/daemon.ts +++ b/packages/nx/src/command-line/daemon.ts @@ -1,10 +1,10 @@ import type { Arguments } from 'yargs'; -import { DAEMON_OUTPUT_LOG_FILE } from '../core/project-graph/daemon/tmp-dir'; +import { DAEMON_OUTPUT_LOG_FILE } from '../daemon/tmp-dir'; import { output } from '../utils/output'; export async function daemonHandler(args: Arguments) { const { startInBackground, startInCurrentProcess } = await import( - '../core/project-graph/daemon/client/client' + '../daemon/client/client' ); if (!args.background) { return startInCurrentProcess(); diff --git a/packages/nx/src/command-line/dep-graph.ts b/packages/nx/src/command-line/dep-graph.ts index 7c23ea1c3baea..3f9bfe8f4d549 100644 --- a/packages/nx/src/command-line/dep-graph.ts +++ b/packages/nx/src/command-line/dep-graph.ts @@ -9,18 +9,18 @@ import * as open from 'open'; import { basename, dirname, extname, isAbsolute, join, parse } from 'path'; import { performance } from 'perf_hooks'; import { URL, URLSearchParams } from 'url'; -import { workspaceLayout } from '../core/file-utils'; -import { defaultFileHasher } from '../core/hasher/file-hasher'; +import { workspaceLayout } from '../project-graph/file-utils'; +import { defaultFileHasher } from '../hasher/file-hasher'; import { output } from '../utils/output'; -import { writeJsonFile } from 'nx/src/utils/fileutils'; -import { joinPathFragments } from 'nx/src/utils/path'; +import { writeJsonFile } from '../utils/fileutils'; +import { joinPathFragments } from '../utils/path'; import { ProjectGraph, ProjectGraphDependency, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; -import { pruneExternalNodes } from 'nx/src/core/project-graph/operators'; -import { createProjectGraphAsync } from 'nx/src/core/project-graph/project-graph'; +} from '../config/project-graph'; +import { pruneExternalNodes } from '../project-graph/operators'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; export interface DepGraphClientResponse { hash: string; diff --git a/packages/nx/src/command-line/format.ts b/packages/nx/src/command-line/format.ts index 4a9bf58551522..d631e4783fca6 100644 --- a/packages/nx/src/command-line/format.ts +++ b/packages/nx/src/command-line/format.ts @@ -5,27 +5,29 @@ import { NxArgs, parseFiles, splitArgsIntoNxArgsAndOverrides, -} from './utils'; +} from '../utils/command-line-utils'; import { fileExists } from '../utils/fileutils'; -import { filterAffected } from '../core/affected-project-graph'; -import { calculateFileChanges, FileData } from '../core/file-utils'; +import { calculateFileChanges, FileData } from '../project-graph/file-utils'; import * as yargs from 'yargs'; import { - ProjectConfiguration, reformattedWorkspaceJsonOrNull, workspaceConfigName, - WorkspaceJsonConfiguration, -} from 'nx/src/shared/workspace'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +} from '../config/workspaces'; +import { workspaceRoot } from '../utils/app-root'; import * as prettier from 'prettier'; -import { sortObjectByKeys } from 'nx/src/utils/object-sort'; +import { sortObjectByKeys } from '../utils/object-sort'; import { getRootTsConfigFileName, getRootTsConfigPath, } from '../utils/typescript'; -import { readJsonFile, writeJsonFile } from 'nx/src/utils/fileutils'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { createProjectGraphAsync } from '../core/project-graph/project-graph'; +import { readJsonFile, writeJsonFile } from '../utils/fileutils'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; +import { filterAffected } from '../project-graph/affected/affected-project-graph'; +import { + ProjectConfiguration, + WorkspaceJsonConfiguration, +} from '../config/workspace-json-project-json'; const PRETTIER_PATH = require.resolve('prettier/bin-prettier'); diff --git a/packages/nx/src/command-line/generate.ts b/packages/nx/src/command-line/generate.ts index 1c633d68cf692..af655e09cfb0f 100644 --- a/packages/nx/src/command-line/generate.ts +++ b/packages/nx/src/command-line/generate.ts @@ -4,13 +4,13 @@ import { Options, Schema, } from '../utils/params'; -import { Workspaces } from '../shared/workspace'; -import { FileChange, flushChanges, FsTree } from '../shared/tree'; +import { Workspaces } from '../config/workspaces'; +import { FileChange, flushChanges, FsTree } from '../config/tree'; import { logger } from '../utils/logger'; import * as chalk from 'chalk'; -import { workspaceRoot } from 'nx/src/utils/app-root'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { printHelp } from 'nx/src/utils/print-help'; +import { workspaceRoot } from '../utils/app-root'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { printHelp } from '../utils/print-help'; export interface GenerateOptions { collectionName: string; diff --git a/packages/nx/src/command-line/lint.ts b/packages/nx/src/command-line/lint.ts index 1e2922436b92a..192d7717c7568 100644 --- a/packages/nx/src/command-line/lint.ts +++ b/packages/nx/src/command-line/lint.ts @@ -1,9 +1,9 @@ import { WorkspaceIntegrityChecks } from './workspace-integrity-checks'; -import { FileData, workspaceLayout } from '../core/file-utils'; +import { FileData, workspaceLayout } from '../project-graph/file-utils'; import { output } from '../utils/output'; import * as path from 'path'; -import { createProjectGraphAsync } from '../core/project-graph/project-graph'; -import { pruneExternalNodes } from '../core/project-graph/operators'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; +import { pruneExternalNodes } from '../project-graph/operators'; export async function workspaceLint(): Promise { const graph = await createProjectGraphAsync(); diff --git a/packages/nx/src/command-line/list.ts b/packages/nx/src/command-line/list.ts index cd7ee88d3e3e2..0547619a13c97 100644 --- a/packages/nx/src/command-line/list.ts +++ b/packages/nx/src/command-line/list.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { output } from '../utils/output'; import { fetchCommunityPlugins, diff --git a/packages/nx/src/command-line/migrate.ts b/packages/nx/src/command-line/migrate.ts index b9cc727a6c822..04fc5329f5e6a 100644 --- a/packages/nx/src/command-line/migrate.ts +++ b/packages/nx/src/command-line/migrate.ts @@ -3,8 +3,8 @@ import { copyFileSync, removeSync } from 'fs-extra'; import { dirname, join } from 'path'; import { gt, lte } from 'semver'; import { dirSync } from 'tmp'; -import { NxJsonConfiguration } from '../shared/nx'; -import { flushChanges, FsTree } from '../shared/tree'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { flushChanges, FsTree } from '../config/tree'; import { extractFileFromTarball, JsonReadOptions, diff --git a/packages/nx/src/command-line/nx-commands.ts b/packages/nx/src/command-line/nx-commands.ts index e711f49cbe4b6..9b50db17e3922 100644 --- a/packages/nx/src/command-line/nx-commands.ts +++ b/packages/nx/src/command-line/nx-commands.ts @@ -2,12 +2,12 @@ import * as chalk from 'chalk'; import { execSync } from 'child_process'; import * as path from 'path'; import * as yargs from 'yargs'; -import { generateDaemonHelpOutput } from '../core/project-graph/daemon/client/generate-help-output'; +import { generateDaemonHelpOutput } from '../daemon/client/generate-help-output'; import { nxVersion } from '../utils/versions'; import { examples } from './examples'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { getPackageManagerCommand } from '../utils/package-manager'; -import { writeJsonFile } from 'nx/src/utils/fileutils'; +import { writeJsonFile } from '../utils/fileutils'; const isGenerateDocsProcess = process.env.NX_GENERATE_DOCS_PROCESS === 'true'; const daemonHelpOutput = generateDaemonHelpOutput(isGenerateDocsProcess); diff --git a/packages/nx/src/command-line/print-affected.ts b/packages/nx/src/command-line/print-affected.ts index b1e35fd1a1fba..3d8d569283b43 100644 --- a/packages/nx/src/command-line/print-affected.ts +++ b/packages/nx/src/command-line/print-affected.ts @@ -1,13 +1,10 @@ -import type { Environment } from '../core/shared-interfaces'; import { createTask } from '../tasks-runner/run-command'; import { getCommandAsString, getOutputs } from '../tasks-runner/utils'; import * as yargs from 'yargs'; -import type { NxArgs } from './utils'; -import { - ProjectGraph, - ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; -import { Task } from 'nx/src/shared/tasks'; +import type { NxArgs } from '../utils/command-line-utils'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; +import { Task } from '../config/task-graph'; +import { Environment } from './read-environment'; export async function printAffected( affectedProjectsWithTargetAndConfig: ProjectGraphProjectNode[], diff --git a/packages/nx/src/command-line/read-environment.ts b/packages/nx/src/command-line/read-environment.ts new file mode 100644 index 0000000000000..c4eb524cb8125 --- /dev/null +++ b/packages/nx/src/command-line/read-environment.ts @@ -0,0 +1,19 @@ +import { readNxJson, readWorkspaceJson } from '../project-graph/file-utils'; +import { NxJsonConfiguration } from '../config/nx-json'; + +export interface Environment { + nxJson: NxJsonConfiguration; + workspaceJson: any; + /** + * @deprecated the field will be removed after Nx 14 is released. It's left here + * not to break the type checker in case someone extends + * the tasks runner + */ + workspaceResults: any; +} + +export function readEnvironment(): Environment { + const nxJson = readNxJson(); + const workspaceJson = readWorkspaceJson(); + return { nxJson, workspaceJson, workspaceResults: null } as any; +} diff --git a/packages/nx/src/command-line/report.ts b/packages/nx/src/command-line/report.ts index ce8602298a2c2..a6b44f164fc1a 100644 --- a/packages/nx/src/command-line/report.ts +++ b/packages/nx/src/command-line/report.ts @@ -1,12 +1,12 @@ import * as chalk from 'chalk'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { output } from '../utils/output'; import { join } from 'path'; import { detectPackageManager, getPackageManagerVersion, -} from 'nx/src/utils/package-manager'; -import { readJsonFile } from 'nx/src/utils/fileutils'; +} from '../utils/package-manager'; +import { readJsonFile } from '../utils/fileutils'; export const packagesWeCareAbout = [ 'nx', diff --git a/packages/nx/src/command-line/reset.ts b/packages/nx/src/command-line/reset.ts index b2ce0070e9ecd..bbfa8eeadb12b 100644 --- a/packages/nx/src/command-line/reset.ts +++ b/packages/nx/src/command-line/reset.ts @@ -1,5 +1,5 @@ import { removeSync } from 'fs-extra'; -import { stop as stopDaemon } from '../core/project-graph/daemon/client/client'; +import { stop as stopDaemon } from '../daemon/client/client'; import { cacheDir } from '../utils/cache-directory'; import { output } from '../utils/output'; diff --git a/packages/nx/src/command-line/run-many.ts b/packages/nx/src/command-line/run-many.ts index 6b608bc7ec13c..1d3b39528026f 100644 --- a/packages/nx/src/command-line/run-many.ts +++ b/packages/nx/src/command-line/run-many.ts @@ -1,14 +1,14 @@ import * as yargs from 'yargs'; import { runCommand } from '../tasks-runner/run-command'; -import type { NxArgs, RawNxArgs } from './utils'; -import { splitArgsIntoNxArgsAndOverrides } from './utils'; -import { readEnvironment } from '../core/file-utils'; +import type { NxArgs, RawNxArgs } from '../utils/command-line-utils'; +import { splitArgsIntoNxArgsAndOverrides } from '../utils/command-line-utils'; import { projectHasTarget } from '../utils/project-graph-utils'; import { output } from '../utils/output'; import { connectToNxCloudUsingScan } from './connect-to-nx-cloud'; import { performance } from 'perf_hooks'; -import { ProjectGraph, ProjectGraphProjectNode } from '../shared/project-graph'; -import { createProjectGraphAsync } from '../core/project-graph/project-graph'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; +import { readEnvironment } from './read-environment'; export async function runMany(parsedArgs: yargs.Arguments & RawNxArgs) { performance.mark('command-execution-begins'); diff --git a/packages/nx/src/command-line/run-one.ts b/packages/nx/src/command-line/run-one.ts index 1024dce37711f..0e80e0b9bb0a1 100644 --- a/packages/nx/src/command-line/run-one.ts +++ b/packages/nx/src/command-line/run-one.ts @@ -1,15 +1,15 @@ import { runCommand } from '../tasks-runner/run-command'; -import { readEnvironment, readNxJson } from '../core/file-utils'; -import { splitArgsIntoNxArgsAndOverrides } from './utils'; +import { splitArgsIntoNxArgsAndOverrides } from '../utils/command-line-utils'; import { connectToNxCloudUsingScan } from './connect-to-nx-cloud'; import { performance } from 'perf_hooks'; -import { createProjectGraphAsync } from '../core/project-graph/project-graph'; -import { ProjectGraph } from '../shared/project-graph'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { workspaceRoot } from 'nx/src/utils/app-root'; -import { splitTarget } from 'nx/src/utils/split-target'; -import { output } from 'nx/src/utils/output'; +import { createProjectGraphAsync } from '../project-graph/project-graph'; +import { ProjectGraph } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { workspaceRoot } from '../utils/app-root'; +import { splitTarget } from '../utils/split-target'; +import { output } from '../utils/output'; +import { readEnvironment } from './read-environment'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; export async function runOne( cwd: string, diff --git a/packages/nx/src/command-line/run.ts b/packages/nx/src/command-line/run.ts index 4a2c17cc4e402..7b90893a6cd2d 100644 --- a/packages/nx/src/command-line/run.ts +++ b/packages/nx/src/command-line/run.ts @@ -4,15 +4,8 @@ import { Schema, } from '../utils/params'; import { printHelp } from '../utils/print-help'; -import { - Executor, - ExecutorContext, - ProjectConfiguration, - TargetConfiguration, - WorkspaceJsonConfiguration, - Workspaces, -} from '../shared/workspace'; -import { NxJsonConfiguration } from '../shared/nx'; +import { Workspaces } from '../config/workspaces'; +import { NxJsonConfiguration } from '../config/nx-json'; import { readJsonFile } from '../utils/fileutils'; import { buildTargetFromScript, PackageJson } from '../utils/package-json'; import { join } from 'path'; @@ -21,6 +14,12 @@ import { loadNxPlugins, mergePluginTargetsWithNxTargets, } from '../utils/nx-plugin'; +import { + ProjectConfiguration, + TargetConfiguration, + WorkspaceJsonConfiguration, +} from '../config/workspace-json-project-json'; +import { Executor, ExecutorContext } from '../config/misc-interfaces'; export interface Target { project: string; diff --git a/packages/nx/src/command-line/workspace-generators.ts b/packages/nx/src/command-line/workspace-generators.ts index 8aadce61b2490..57cb9619e8570 100644 --- a/packages/nx/src/command-line/workspace-generators.ts +++ b/packages/nx/src/command-line/workspace-generators.ts @@ -4,13 +4,13 @@ import { readdirSync, existsSync } from 'fs'; import { copySync, removeSync } from 'fs-extra'; import * as path from 'path'; import * as yargsParser from 'yargs-parser'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { fileExists } from '../utils/fileutils'; import { output } from '../utils/output'; import type { CompilerOptions } from 'typescript'; -import { generate } from 'nx/src/command-line/generate'; -import { readJsonFile, writeJsonFile } from 'nx/src/utils/fileutils'; -import { logger } from 'nx/src/utils/logger'; +import { generate } from './generate'; +import { readJsonFile, writeJsonFile } from '../utils/fileutils'; +import { logger } from '../utils/logger'; import { getPackageManagerCommand } from '../utils/package-manager'; import { normalizePath } from '../utils/path'; diff --git a/packages/nx/src/command-line/workspace-integrity-checks.ts b/packages/nx/src/command-line/workspace-integrity-checks.ts index 18163a6e2cf80..f1b4d84f9edce 100644 --- a/packages/nx/src/command-line/workspace-integrity-checks.ts +++ b/packages/nx/src/command-line/workspace-integrity-checks.ts @@ -1,7 +1,7 @@ import { output } from '../utils/output'; import type { CLIErrorMessageConfig } from '../utils/output'; -import { workspaceFileName } from '../core/file-utils'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { workspaceFileName } from '../project-graph/file-utils'; +import { ProjectGraph } from '../config/project-graph'; export class WorkspaceIntegrityChecks { constructor(private projectGraph: ProjectGraph, private files: string[]) {} diff --git a/packages/nx/src/config/misc-interfaces.ts b/packages/nx/src/config/misc-interfaces.ts new file mode 100644 index 0000000000000..72e53fe959193 --- /dev/null +++ b/packages/nx/src/config/misc-interfaces.ts @@ -0,0 +1,102 @@ +import type { NxJsonConfiguration } from './nx-json'; +import { TaskGraph } from './task-graph'; +import { + TargetConfiguration, + WorkspaceJsonConfiguration, +} from './workspace-json-project-json'; +/** + * A callback function that is executed after changes are made to the file system + */ +export type GeneratorCallback = () => void | Promise; + +/** + * A function that schedules updates to the filesystem to be done atomically + */ +export type Generator = ( + tree, + schema: T +) => void | GeneratorCallback | Promise; + +export interface ExecutorConfig { + schema: any; + hasherFactory?: () => any; + implementationFactory: () => Executor; + batchImplementationFactory?: () => TaskGraphExecutor; +} + +/** + * Implementation of a target of a project + */ +export type Executor = ( + /** + * Options that users configure or pass via the command line + */ + options: T, + context: ExecutorContext +) => + | Promise<{ success: boolean }> + | AsyncIterableIterator<{ success: boolean }>; + +/** + * Implementation of a target of a project that handles multiple projects to be batched + */ +export type TaskGraphExecutor = ( + /** + * Graph of Tasks to be executed + */ + taskGraph: TaskGraph, + /** + * Map of Task IDs to options for the task + */ + options: Record, + /** + * Set of overrides for the overall execution + */ + overrides: T, + context: ExecutorContext +) => Promise>; + +/** + * Context that is passed into an executor + */ +export interface ExecutorContext { + /** + * The root of the workspace + */ + root: string; + + /** + * The name of the project being executed on + */ + projectName?: string; + + /** + * The name of the target being executed + */ + targetName?: string; + + /** + * The name of the configuration being executed + */ + configurationName?: string; + + /** + * The configuration of the target being executed + */ + target?: TargetConfiguration; + + /** + * The full workspace configuration + */ + workspace: WorkspaceJsonConfiguration & NxJsonConfiguration; + + /** + * The current working directory + */ + cwd: string; + + /** + * Enable verbose logging + */ + isVerbose: boolean; +} diff --git a/packages/nx/src/shared/nx.ts b/packages/nx/src/config/nx-json.ts similarity index 97% rename from packages/nx/src/shared/nx.ts rename to packages/nx/src/config/nx-json.ts index f034594a24716..0fedd594ca962 100644 --- a/packages/nx/src/shared/nx.ts +++ b/packages/nx/src/config/nx-json.ts @@ -1,5 +1,5 @@ import { PackageManager } from '../utils/package-manager'; -import { TargetDependencyConfig } from './workspace'; +import { TargetDependencyConfig } from './workspace-json-project-json'; export type ImplicitDependencyEntry = { [key: string]: T | ImplicitJsonSubsetDependency; diff --git a/packages/nx/src/shared/project-graph.ts b/packages/nx/src/config/project-graph.ts similarity index 97% rename from packages/nx/src/shared/project-graph.ts rename to packages/nx/src/config/project-graph.ts index 39c9df666734e..905e31d3ed2a6 100644 --- a/packages/nx/src/shared/project-graph.ts +++ b/packages/nx/src/config/project-graph.ts @@ -1,4 +1,7 @@ -import type { TargetConfiguration, Workspace } from './workspace'; +import type { + TargetConfiguration, + Workspace, +} from './workspace-json-project-json'; /** * Some metadata about a file diff --git a/packages/nx/src/shared/tasks.ts b/packages/nx/src/config/task-graph.ts similarity index 100% rename from packages/nx/src/shared/tasks.ts rename to packages/nx/src/config/task-graph.ts diff --git a/packages/nx/src/shared/tree.spec.ts b/packages/nx/src/config/tree.spec.ts similarity index 100% rename from packages/nx/src/shared/tree.spec.ts rename to packages/nx/src/config/tree.spec.ts diff --git a/packages/nx/src/shared/tree.ts b/packages/nx/src/config/tree.ts similarity index 100% rename from packages/nx/src/shared/tree.ts rename to packages/nx/src/config/tree.ts diff --git a/packages/nx/src/config/workspace-json-project-json.ts b/packages/nx/src/config/workspace-json-project-json.ts new file mode 100644 index 0000000000000..ac5ab5c773b08 --- /dev/null +++ b/packages/nx/src/config/workspace-json-project-json.ts @@ -0,0 +1,145 @@ +import type { NxJsonConfiguration } from './nx-json'; + +export interface Workspace + extends WorkspaceJsonConfiguration, + NxJsonConfiguration { + projects: Record; +} + +/** + * Workspace configuration + */ +export interface WorkspaceJsonConfiguration { + /** + * Version of the configuration format + */ + version: number; + /** + * Projects' projects + */ + projects: { + [projectName: string]: ProjectConfiguration; + }; +} + +export interface RawWorkspaceJsonConfiguration + extends Omit { + projects: { [projectName: string]: ProjectConfiguration | string }; +} + +/** + * Type of project supported + */ +export type ProjectType = 'library' | 'application'; + +/** + * Project configuration + */ +export interface ProjectConfiguration { + /** + * Project's name. Optional if specified in workspace.json + */ + name?: string; + + /** + * Project's targets + */ + targets?: { [targetName: string]: TargetConfiguration }; + + /** + * Project's location relative to the root of the workspace + */ + root: string; + + /** + * The location of project's sources relative to the root of the workspace + */ + sourceRoot?: string; + + /** + * Project type + */ + projectType?: ProjectType; + + /** + * List of default values used by generators. + * + * These defaults are project specific. + * + * Example: + * + * ``` + * { + * "@nrwl/react": { + * "library": { + * "style": "scss" + * } + * } + * } + * ``` + */ + generators?: { [collectionName: string]: { [generatorName: string]: any } }; + + /** + * List of projects which are added as a dependency + */ + implicitDependencies?: string[]; + + /** + * List of tags used by nx-enforce-module-boundaries / project graph + */ + tags?: string[]; +} + +export interface TargetDependencyConfig { + /** + * This the projects that the targets belong to + * + * 'self': This target depends on another target of the same project + * 'deps': This target depends on targets of the projects of it's deps. + */ + projects: 'self' | 'dependencies'; + + /** + * The name of the target + */ + target: string; +} + +/** + * Target's configuration + */ +export interface TargetConfiguration { + /** + * The executor/builder used to implement the target. + * + * Example: '@nrwl/web:rollup' + */ + executor: string; + + /** + * List of the target's outputs. The outputs will be cached by the Nx computation + * caching engine. + */ + outputs?: string[]; + + /** + * This describes other targets that a target depends on. + */ + dependsOn?: TargetDependencyConfig[]; + + /** + * Target's options. They are passed in to the executor. + */ + options?: any; + + /** + * Sets of options + */ + configurations?: { [config: string]: any }; + + /** + * A default named configuration to use when a target configuration is not provided. + */ + defaultConfiguration?: string; +} diff --git a/packages/nx/src/shared/workspace.spec.ts b/packages/nx/src/config/workspaces.spec.ts similarity index 97% rename from packages/nx/src/shared/workspace.spec.ts rename to packages/nx/src/config/workspaces.spec.ts index b2dc82467df03..3a608dda9d83a 100644 --- a/packages/nx/src/shared/workspace.spec.ts +++ b/packages/nx/src/config/workspaces.spec.ts @@ -1,5 +1,5 @@ -import { toProjectName, Workspaces } from './workspace'; -import { NxJsonConfiguration } from './nx'; +import { toProjectName, Workspaces } from './workspaces'; +import { NxJsonConfiguration } from './nx-json'; import { vol } from 'memfs'; import * as fastGlob from 'fast-glob'; diff --git a/packages/nx/src/shared/workspace.ts b/packages/nx/src/config/workspaces.ts similarity index 80% rename from packages/nx/src/shared/workspace.ts rename to packages/nx/src/config/workspaces.ts index da5438e65c094..32df94828d630 100644 --- a/packages/nx/src/shared/workspace.ts +++ b/packages/nx/src/config/workspaces.ts @@ -10,8 +10,17 @@ import { readJsonFile } from '../utils/fileutils'; import { logger } from '../utils/logger'; import { loadNxPlugins, readPluginPackageJson } from '../utils/nx-plugin'; -import type { NxJsonConfiguration } from './nx'; -import { TaskGraph } from 'nx/src/shared/tasks'; +import type { NxJsonConfiguration } from './nx-json'; +import { + ProjectConfiguration, + WorkspaceJsonConfiguration, +} from './workspace-json-project-json'; +import { + Executor, + ExecutorConfig, + TaskGraphExecutor, + Generator, +} from './misc-interfaces'; export function workspaceConfigName(root: string) { if (existsSync(path.join(root, 'angular.json'))) { @@ -23,246 +32,6 @@ export function workspaceConfigName(root: string) { } } -export interface Workspace - extends WorkspaceJsonConfiguration, - NxJsonConfiguration { - projects: Record; -} - -/** - * Workspace configuration - */ -export interface WorkspaceJsonConfiguration { - /** - * Version of the configuration format - */ - version: number; - /** - * Projects' projects - */ - projects: { - [projectName: string]: ProjectConfiguration; - }; -} - -export interface RawWorkspaceJsonConfiguration - extends Omit { - projects: { [projectName: string]: ProjectConfiguration | string }; -} - -/** - * Type of project supported - */ -export type ProjectType = 'library' | 'application'; - -/** - * Project configuration - */ -export interface ProjectConfiguration { - /** - * Project's name. Optional if specified in workspace.json - */ - name?: string; - - /** - * Project's targets - */ - targets?: { [targetName: string]: TargetConfiguration }; - - /** - * Project's location relative to the root of the workspace - */ - root: string; - - /** - * The location of project's sources relative to the root of the workspace - */ - sourceRoot?: string; - - /** - * Project type - */ - projectType?: ProjectType; - - /** - * List of default values used by generators. - * - * These defaults are project specific. - * - * Example: - * - * ``` - * { - * "@nrwl/react": { - * "library": { - * "style": "scss" - * } - * } - * } - * ``` - */ - generators?: { [collectionName: string]: { [generatorName: string]: any } }; - - /** - * List of projects which are added as a dependency - */ - implicitDependencies?: string[]; - - /** - * List of tags used by nx-enforce-module-boundaries / project graph - */ - tags?: string[]; -} - -export interface TargetDependencyConfig { - /** - * This the projects that the targets belong to - * - * 'self': This target depends on another target of the same project - * 'deps': This target depends on targets of the projects of it's deps. - */ - projects: 'self' | 'dependencies'; - - /** - * The name of the target - */ - target: string; -} - -/** - * Target's configuration - */ -export interface TargetConfiguration { - /** - * The executor/builder used to implement the target. - * - * Example: '@nrwl/web:rollup' - */ - executor: string; - - /** - * List of the target's outputs. The outputs will be cached by the Nx computation - * caching engine. - */ - outputs?: string[]; - - /** - * This describes other targets that a target depends on. - */ - dependsOn?: TargetDependencyConfig[]; - - /** - * Target's options. They are passed in to the executor. - */ - options?: any; - - /** - * Sets of options - */ - configurations?: { [config: string]: any }; - - /** - * A default named configuration to use when a target configuration is not provided. - */ - defaultConfiguration?: string; -} - -/** - * A callback function that is executed after changes are made to the file system - */ -export type GeneratorCallback = () => void | Promise; - -/** - * A function that schedules updates to the filesystem to be done atomically - */ -export type Generator = ( - tree, - schema: T -) => void | GeneratorCallback | Promise; - -export interface ExecutorConfig { - schema: any; - hasherFactory?: () => any; - implementationFactory: () => Executor; - batchImplementationFactory?: () => TaskGraphExecutor; -} - -/** - * Implementation of a target of a project - */ -export type Executor = ( - /** - * Options that users configure or pass via the command line - */ - options: T, - context: ExecutorContext -) => - | Promise<{ success: boolean }> - | AsyncIterableIterator<{ success: boolean }>; - -/** - * Implementation of a target of a project that handles multiple projects to be batched - */ -export type TaskGraphExecutor = ( - /** - * Graph of Tasks to be executed - */ - taskGraph: TaskGraph, - /** - * Map of Task IDs to options for the task - */ - options: Record, - /** - * Set of overrides for the overall execution - */ - overrides: T, - context: ExecutorContext -) => Promise>; - -/** - * Context that is passed into an executor - */ -export interface ExecutorContext { - /** - * The root of the workspace - */ - root: string; - - /** - * The name of the project being executed on - */ - projectName?: string; - - /** - * The name of the target being executed - */ - targetName?: string; - - /** - * The name of the configuration being executed - */ - configurationName?: string; - - /** - * The configuration of the target being executed - */ - target?: TargetConfiguration; - - /** - * The full workspace configuration - */ - workspace: WorkspaceJsonConfiguration & NxJsonConfiguration; - - /** - * The current working directory - */ - cwd: string; - - /** - * Enable verbose logging - */ - isVerbose: boolean; -} export class Workspaces { private cachedWorkspaceConfig: WorkspaceJsonConfiguration & NxJsonConfiguration; @@ -444,7 +213,14 @@ export class Workspaces { return { executorsFilePath, executorConfig }; } - private readGeneratorsJson(collectionName: string, generator: string) { + private readGeneratorsJson( + collectionName: string, + generator: string + ): { + generatorsFilePath: string; + generatorsJson: any; + normalizedGeneratorName: string; + } { let generatorsFilePath; if (collectionName.endsWith('.json')) { generatorsFilePath = require.resolve(collectionName, { diff --git a/packages/nx/src/core/affected-project-graph/index.ts b/packages/nx/src/core/affected-project-graph/index.ts deleted file mode 100644 index 895811b820332..0000000000000 --- a/packages/nx/src/core/affected-project-graph/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './affected-project-graph'; -export * from './affected-project-graph-models'; diff --git a/packages/nx/src/core/shared-interfaces.ts b/packages/nx/src/core/shared-interfaces.ts deleted file mode 100644 index 741842d980faa..0000000000000 --- a/packages/nx/src/core/shared-interfaces.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NxJsonConfiguration } from 'nx/src/shared/nx'; - -export interface Environment { - nxJson: NxJsonConfiguration; - workspaceJson: any; - /** - * @deprecated the field will be removed after Nx 14 is released. It's left here - * not to break the type checker in case someone extends - * the tasks runner - */ - workspaceResults: any; -} diff --git a/packages/nx/src/core/project-graph/daemon/cache.ts b/packages/nx/src/daemon/cache.ts similarity index 100% rename from packages/nx/src/core/project-graph/daemon/cache.ts rename to packages/nx/src/daemon/cache.ts diff --git a/packages/nx/src/core/project-graph/daemon/client/client.ts b/packages/nx/src/daemon/client/client.ts similarity index 97% rename from packages/nx/src/core/project-graph/daemon/client/client.ts rename to packages/nx/src/daemon/client/client.ts index 7bf15adfdc46c..8c882cbfc4c87 100644 --- a/packages/nx/src/core/project-graph/daemon/client/client.ts +++ b/packages/nx/src/daemon/client/client.ts @@ -1,11 +1,11 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../../utils/app-root'; import { ChildProcess, spawn, spawnSync } from 'child_process'; import { openSync, readFileSync } from 'fs'; import { ensureDirSync, ensureFileSync } from 'fs-extra'; import { connect } from 'net'; import { join } from 'path'; import { performance } from 'perf_hooks'; -import { output } from '../../../../utils/output'; +import { output } from '../../utils/output'; import { safelyCleanUpExistingProcess, writeDaemonJsonProcessCache, @@ -15,7 +15,7 @@ import { DAEMON_DIR_FOR_CURRENT_WORKSPACE, DAEMON_OUTPUT_LOG_FILE, } from '../tmp-dir'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { ProjectGraph } from '../../config/project-graph'; export async function startInBackground(): Promise { await safelyCleanUpExistingProcess(); diff --git a/packages/nx/src/core/project-graph/daemon/client/exec-is-server-available.ts b/packages/nx/src/daemon/client/exec-is-server-available.ts similarity index 100% rename from packages/nx/src/core/project-graph/daemon/client/exec-is-server-available.ts rename to packages/nx/src/daemon/client/exec-is-server-available.ts diff --git a/packages/nx/src/core/project-graph/daemon/client/generate-help-output.ts b/packages/nx/src/daemon/client/generate-help-output.ts similarity index 100% rename from packages/nx/src/core/project-graph/daemon/client/generate-help-output.ts rename to packages/nx/src/daemon/client/generate-help-output.ts diff --git a/packages/nx/src/core/project-graph/daemon/server/logger.spec.ts b/packages/nx/src/daemon/server/logger.spec.ts similarity index 100% rename from packages/nx/src/core/project-graph/daemon/server/logger.spec.ts rename to packages/nx/src/daemon/server/logger.spec.ts diff --git a/packages/nx/src/core/project-graph/daemon/server/logger.ts b/packages/nx/src/daemon/server/logger.ts similarity index 100% rename from packages/nx/src/core/project-graph/daemon/server/logger.ts rename to packages/nx/src/daemon/server/logger.ts diff --git a/packages/nx/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.ts b/packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts similarity index 93% rename from packages/nx/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.ts rename to packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts index 875717da97fa1..05bfd4a525261 100644 --- a/packages/nx/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.ts +++ b/packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts @@ -1,20 +1,20 @@ import { performance } from 'perf_hooks'; -import { readWorkspaceJson } from '../../../file-utils'; -import { defaultFileHasher } from '../../../hasher/file-hasher'; +import { readWorkspaceJson } from '../../project-graph/file-utils'; +import { defaultFileHasher } from '../../hasher/file-hasher'; import { serverLogger } from './logger'; -import { buildProjectGraphUsingProjectFileMap } from '../../build-project-graph'; +import { buildProjectGraphUsingProjectFileMap } from '../../project-graph/build-project-graph'; import { nxDepsPath, ProjectGraphCache, readCache, -} from '../../../nx-deps/nx-deps-cache'; -import { fileExists } from '../../../../utils/fileutils'; -import { HashingImpl } from '../../../hasher/hashing-impl'; +} from '../../project-graph/nx-deps-cache'; +import { fileExists } from '../../utils/fileutils'; +import { HashingImpl } from '../../hasher/hashing-impl'; import { createProjectFileMap, updateProjectFileMap, -} from '../../../file-map-utils'; -import { FileData, ProjectFileMap } from 'nx/src/shared/project-graph'; +} from '../../project-graph/file-map-utils'; +import { FileData, ProjectFileMap } from '../../config/project-graph'; let cachedSerializedProjectGraphPromise: Promise<{ error: Error | null; diff --git a/packages/nx/src/core/project-graph/daemon/server/server.ts b/packages/nx/src/daemon/server/server.ts similarity index 96% rename from packages/nx/src/core/project-graph/daemon/server/server.ts rename to packages/nx/src/daemon/server/server.ts index 5a5304071302a..caea0d6313420 100644 --- a/packages/nx/src/core/project-graph/daemon/server/server.ts +++ b/packages/nx/src/daemon/server/server.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../../utils/app-root'; import { createServer, Server, Socket } from 'net'; import { join } from 'path'; import { performance, PerformanceObserver } from 'perf_hooks'; @@ -25,8 +25,8 @@ import { getCachedSerializedProjectGraphPromise, } from './project-graph-incremental-recomputation'; import { existsSync, statSync } from 'fs'; -import { HashingImpl } from '../../../hasher/hashing-impl'; -import { defaultFileHasher } from 'nx/src/core/hasher/file-hasher'; +import { HashingImpl } from '../../hasher/hashing-impl'; +import { defaultFileHasher } from '../../hasher/file-hasher'; function respondToClient(socket: Socket, message: string) { return new Promise((res) => { @@ -271,7 +271,7 @@ const handleWorkspaceChanges: SubscribeToWorkspaceChangesCallback = async ( }; export async function startServer(): Promise { - // See notes in socket-utils.ts on OS differences regarding clean up of existings connections. + // See notes in socket-command-line-utils.ts on OS differences regarding clean up of existings connections. if (!isWindows) { killSocketOrPath(); } diff --git a/packages/nx/src/core/project-graph/daemon/server/shutdown-utils.ts b/packages/nx/src/daemon/server/shutdown-utils.ts similarity index 95% rename from packages/nx/src/core/project-graph/daemon/server/shutdown-utils.ts rename to packages/nx/src/daemon/server/shutdown-utils.ts index e6f2efff8e4da..481ee1da4a883 100644 --- a/packages/nx/src/core/project-graph/daemon/server/shutdown-utils.ts +++ b/packages/nx/src/daemon/server/shutdown-utils.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../../utils/app-root'; import type { Server } from 'net'; import { serverLogger } from './logger'; import type { WatcherSubscription } from './watcher'; diff --git a/packages/nx/src/core/project-graph/daemon/server/start.ts b/packages/nx/src/daemon/server/start.ts similarity index 85% rename from packages/nx/src/core/project-graph/daemon/server/start.ts rename to packages/nx/src/daemon/server/start.ts index c2392777fe6b9..12fceb318f9e9 100644 --- a/packages/nx/src/core/project-graph/daemon/server/start.ts +++ b/packages/nx/src/daemon/server/start.ts @@ -1,4 +1,4 @@ -import { output } from '../../../../utils/output'; +import { output } from '../../utils/output'; import { startServer } from './server'; import * as process from 'process'; diff --git a/packages/nx/src/core/project-graph/daemon/server/stop.ts b/packages/nx/src/daemon/server/stop.ts similarity index 87% rename from packages/nx/src/core/project-graph/daemon/server/stop.ts rename to packages/nx/src/daemon/server/stop.ts index b325a250845de..fde7949566a64 100644 --- a/packages/nx/src/core/project-graph/daemon/server/stop.ts +++ b/packages/nx/src/daemon/server/stop.ts @@ -1,4 +1,4 @@ -import { output } from '../../../../utils/output'; +import { output } from '../../utils/output'; import { safelyCleanUpExistingProcess } from '../cache'; import { stopServer } from './server'; diff --git a/packages/nx/src/core/project-graph/daemon/server/watcher.ts b/packages/nx/src/daemon/server/watcher.ts similarity index 96% rename from packages/nx/src/core/project-graph/daemon/server/watcher.ts rename to packages/nx/src/daemon/server/watcher.ts index 28ab11cdae224..d61d78c438e29 100644 --- a/packages/nx/src/core/project-graph/daemon/server/watcher.ts +++ b/packages/nx/src/daemon/server/watcher.ts @@ -5,15 +5,15 @@ * * See https://github.com/parcel-bundler/watcher for more details. */ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../../utils/app-root'; import type { AsyncSubscription, Event } from '@parcel/watcher'; import { readFileSync } from 'fs'; import { join, relative } from 'path'; import { FULL_OS_SOCKET_PATH } from '../socket-utils'; -import { handleServerProcessTermination } from 'nx/src/core/project-graph/daemon/server/shutdown-utils'; +import { handleServerProcessTermination } from './shutdown-utils'; import { Server } from 'net'; import ignore from 'ignore'; -import { normalizePath } from 'nx/src/utils/path'; +import { normalizePath } from '../../utils/path'; /** * This configures the files and directories which we always want to ignore as part of file watching diff --git a/packages/nx/src/core/project-graph/daemon/socket-utils.ts b/packages/nx/src/daemon/socket-utils.ts similarity index 96% rename from packages/nx/src/core/project-graph/daemon/socket-utils.ts rename to packages/nx/src/daemon/socket-utils.ts index d0ab52f08e3db..a914e10a58325 100644 --- a/packages/nx/src/core/project-graph/daemon/socket-utils.ts +++ b/packages/nx/src/daemon/socket-utils.ts @@ -2,7 +2,7 @@ import { unlinkSync } from 'fs'; import { platform } from 'os'; import { resolve } from 'path'; import { DAEMON_SOCKET_PATH } from './tmp-dir'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { ProjectGraph } from '../config/project-graph'; export const isWindows = platform() === 'win32'; diff --git a/packages/nx/src/core/project-graph/daemon/tmp-dir.ts b/packages/nx/src/daemon/tmp-dir.ts similarity index 95% rename from packages/nx/src/core/project-graph/daemon/tmp-dir.ts rename to packages/nx/src/daemon/tmp-dir.ts index 413bb4df7365e..d0fc5b01c9405 100644 --- a/packages/nx/src/core/project-graph/daemon/tmp-dir.ts +++ b/packages/nx/src/daemon/tmp-dir.ts @@ -5,7 +5,7 @@ */ import { statSync, writeFileSync } from 'fs'; import { join } from 'path'; -import { cacheDir } from '../../../utils/cache-directory'; +import { cacheDir } from '../utils/cache-directory'; export const DAEMON_DIR_FOR_CURRENT_WORKSPACE = join(cacheDir, 'd'); diff --git a/packages/nx/src/core/hasher/file-hasher-base.ts b/packages/nx/src/hasher/file-hasher-base.ts similarity index 91% rename from packages/nx/src/core/hasher/file-hasher-base.ts rename to packages/nx/src/hasher/file-hasher-base.ts index 0c38a6788595f..5c1a096841989 100644 --- a/packages/nx/src/core/hasher/file-hasher-base.ts +++ b/packages/nx/src/hasher/file-hasher-base.ts @@ -1,8 +1,8 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { performance } from 'perf_hooks'; import { defaultHashing } from './hashing-impl'; -import { FileData } from 'nx/src/shared/project-graph'; -import { joinPathFragments, normalizePath } from 'nx/src/utils/path'; +import { FileData } from '../config/project-graph'; +import { joinPathFragments, normalizePath } from '../utils/path'; export abstract class FileHasherBase { protected fileHashes: Map; diff --git a/packages/nx/src/core/hasher/file-hasher.ts b/packages/nx/src/hasher/file-hasher.ts similarity index 91% rename from packages/nx/src/core/hasher/file-hasher.ts rename to packages/nx/src/hasher/file-hasher.ts index 4988d6547733b..336403841c13e 100644 --- a/packages/nx/src/core/hasher/file-hasher.ts +++ b/packages/nx/src/hasher/file-hasher.ts @@ -1,5 +1,5 @@ import { GitBasedFileHasher } from './git-based-file-hasher'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { NodeBasedFileHasher } from './node-based-file-hasher'; import { FileHasherBase } from './file-hasher-base'; import { execSync } from 'child_process'; diff --git a/packages/nx/src/core/hasher/git-based-file-hasher.ts b/packages/nx/src/hasher/git-based-file-hasher.ts similarity index 96% rename from packages/nx/src/core/hasher/git-based-file-hasher.ts rename to packages/nx/src/hasher/git-based-file-hasher.ts index 89f8498055596..7104a790d508d 100644 --- a/packages/nx/src/core/hasher/git-based-file-hasher.ts +++ b/packages/nx/src/hasher/git-based-file-hasher.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { performance } from 'perf_hooks'; import { getFileHashes, getGitHashForFiles } from './git-hasher'; import { existsSync, readFileSync } from 'fs'; diff --git a/packages/nx/src/core/hasher/git-hasher.spec.ts b/packages/nx/src/hasher/git-hasher.spec.ts similarity index 100% rename from packages/nx/src/core/hasher/git-hasher.spec.ts rename to packages/nx/src/hasher/git-hasher.spec.ts diff --git a/packages/nx/src/core/hasher/git-hasher.ts b/packages/nx/src/hasher/git-hasher.ts similarity index 97% rename from packages/nx/src/core/hasher/git-hasher.ts rename to packages/nx/src/hasher/git-hasher.ts index 1cd829d698dbb..ed5e6e182fe29 100644 --- a/packages/nx/src/core/hasher/git-hasher.ts +++ b/packages/nx/src/hasher/git-hasher.ts @@ -1,6 +1,6 @@ import { spawn } from 'child_process'; -import { fileExists } from '../../utils/fileutils'; -import { joinPathFragments } from '../../utils/path'; +import { fileExists } from '../utils/fileutils'; +import { joinPathFragments } from '../utils/path'; export async function getGitHashForFiles( potentialFilesToHash: string[], diff --git a/packages/nx/src/core/hasher/hasher.spec.ts b/packages/nx/src/hasher/hasher.spec.ts similarity index 98% rename from packages/nx/src/core/hasher/hasher.spec.ts rename to packages/nx/src/hasher/hasher.spec.ts index 5d39b679fd489..89ffacba30e6b 100644 --- a/packages/nx/src/core/hasher/hasher.spec.ts +++ b/packages/nx/src/hasher/hasher.spec.ts @@ -1,18 +1,18 @@ // This must come before the Hasher import -import { DependencyType } from 'nx/src/shared/project-graph'; +import { DependencyType } from '../config/project-graph'; -jest.doMock('../../utils/app-root', () => { +jest.doMock('../utils/app-root', () => { return { workspaceRoot: '', }; }); import fs = require('fs'); -import tsUtils = require('../../utils/typescript'); +import tsUtils = require('../utils/typescript'); import { Hasher } from './hasher'; jest.mock('fs'); -jest.mock('../../utils/typescript'); +jest.mock('../utils/typescript'); fs.existsSync = () => true; diff --git a/packages/nx/src/core/hasher/hasher.ts b/packages/nx/src/hasher/hasher.ts similarity index 96% rename from packages/nx/src/core/hasher/hasher.ts rename to packages/nx/src/hasher/hasher.ts index 68fc9f9779b9d..00c13b4fb7be9 100644 --- a/packages/nx/src/core/hasher/hasher.ts +++ b/packages/nx/src/hasher/hasher.ts @@ -1,20 +1,18 @@ -import { - resolveNewFormatWithInlineProjects, - WorkspaceJsonConfiguration, -} from 'nx/src/shared/workspace'; +import { resolveNewFormatWithInlineProjects } from '../config/workspaces'; import { exec } from 'child_process'; import { existsSync } from 'fs'; import * as minimatch from 'minimatch'; import { join } from 'path'; import { performance } from 'perf_hooks'; -import { getRootTsConfigFileName } from '../../utils/typescript'; -import { workspaceRoot } from '../../utils/app-root'; -import { workspaceFileName } from '../file-utils'; +import { getRootTsConfigFileName } from '../utils/typescript'; +import { workspaceRoot } from '../utils/app-root'; +import { workspaceFileName } from '../project-graph/file-utils'; import { defaultHashing, HashingImpl } from './hashing-impl'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { Task } from 'nx/src/shared/tasks'; -import { readJsonFile } from 'nx/src/utils/fileutils'; +import { ProjectGraph } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { Task } from '../config/task-graph'; +import { readJsonFile } from '../utils/fileutils'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; /** * A data structure returned by the default hasher. diff --git a/packages/nx/src/core/hasher/hashing-impl.ts b/packages/nx/src/hasher/hashing-impl.ts similarity index 100% rename from packages/nx/src/core/hasher/hashing-impl.ts rename to packages/nx/src/hasher/hashing-impl.ts diff --git a/packages/nx/src/core/hasher/node-based-file-hasher.ts b/packages/nx/src/hasher/node-based-file-hasher.ts similarity index 90% rename from packages/nx/src/core/hasher/node-based-file-hasher.ts rename to packages/nx/src/hasher/node-based-file-hasher.ts index 5053f9a6299c1..aca20b97c4dbd 100644 --- a/packages/nx/src/core/hasher/node-based-file-hasher.ts +++ b/packages/nx/src/hasher/node-based-file-hasher.ts @@ -1,12 +1,12 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { performance } from 'perf_hooks'; -import { FileData } from 'nx/src/shared/project-graph'; +import { FileData } from '../config/project-graph'; import { join, relative } from 'path'; import { existsSync, readdirSync, readFileSync, statSync } from 'fs'; import { FileHasherBase } from './file-hasher-base'; -import { stripIndents } from '../../utils/strip-indents'; +import { stripIndents } from '../utils/strip-indents'; import ignore from 'ignore'; -import { normalizePath } from 'nx/src/utils/path'; +import { normalizePath } from '../utils/path'; export class NodeBasedFileHasher extends FileHasherBase { ignoredGlobs = getIgnoredGlobs(); diff --git a/packages/nx/src/core/affected-project-graph/affected-project-graph-models.ts b/packages/nx/src/project-graph/affected/affected-project-graph-models.ts similarity index 78% rename from packages/nx/src/core/affected-project-graph/affected-project-graph-models.ts rename to packages/nx/src/project-graph/affected/affected-project-graph-models.ts index db09d1b9497d9..0e82329526a51 100644 --- a/packages/nx/src/core/affected-project-graph/affected-project-graph-models.ts +++ b/packages/nx/src/project-graph/affected/affected-project-graph-models.ts @@ -1,6 +1,6 @@ import type { Change, FileChange } from '../file-utils'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { NxJsonConfiguration } from '../../config/nx-json'; +import { ProjectGraph } from '../../config/project-graph'; export interface AffectedProjectGraphContext { workspaceJson: any; diff --git a/packages/nx/src/core/affected-project-graph/affected-project-graph.spec.ts b/packages/nx/src/project-graph/affected/affected-project-graph.spec.ts similarity index 96% rename from packages/nx/src/core/affected-project-graph/affected-project-graph.spec.ts rename to packages/nx/src/project-graph/affected/affected-project-graph.spec.ts index 85e2cd7232e20..900c0db72979c 100644 --- a/packages/nx/src/core/affected-project-graph/affected-project-graph.spec.ts +++ b/packages/nx/src/project-graph/affected/affected-project-graph.spec.ts @@ -2,10 +2,10 @@ import { jsonDiff } from '../../utils/json-diff'; import { vol } from 'memfs'; import { filterAffected } from './affected-project-graph'; import { WholeFileChange } from '../file-utils'; -import { buildProjectGraph } from '../project-graph/build-project-graph'; -import { defaultFileHasher } from '../hasher/file-hasher'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { buildProjectGraph } from '../build-project-graph'; +import { defaultFileHasher } from '../../hasher/file-hasher'; +import { WorkspaceJsonConfiguration } from '../../config/workspace-json-project-json'; +import { NxJsonConfiguration } from '../../config/nx-json'; import { stripIndents } from '../../utils/strip-indents'; jest.mock('fs', () => require('memfs').fs); diff --git a/packages/nx/src/core/affected-project-graph/affected-project-graph.ts b/packages/nx/src/project-graph/affected/affected-project-graph.ts similarity index 94% rename from packages/nx/src/core/affected-project-graph/affected-project-graph.ts rename to packages/nx/src/project-graph/affected/affected-project-graph.ts index e32e67fd7e4fa..0a42f5559c532 100644 --- a/packages/nx/src/core/affected-project-graph/affected-project-graph.ts +++ b/packages/nx/src/project-graph/affected/affected-project-graph.ts @@ -17,10 +17,10 @@ import { import { normalizeNxJson } from '../normalize-nx-json'; import { getTouchedProjectsInWorkspaceJson } from './locators/workspace-json-changes'; import { getTouchedProjectsFromTsConfig } from './locators/tsconfig-json-changes'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; -import { reverse } from '../project-graph/operators'; +import { NxJsonConfiguration } from '../../config/nx-json'; +import { ProjectGraph } from '../../config/project-graph'; +import { reverse } from '../operators'; +import { WorkspaceJsonConfiguration } from '../../config/workspace-json-project-json'; export function filterAffected( graph: ProjectGraph, diff --git a/packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.spec.ts b/packages/nx/src/project-graph/affected/locators/implicit-json-changes.spec.ts similarity index 97% rename from packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.spec.ts rename to packages/nx/src/project-graph/affected/locators/implicit-json-changes.spec.ts index f7aab937c719a..67c05d5de09be 100644 --- a/packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.spec.ts +++ b/packages/nx/src/project-graph/affected/locators/implicit-json-changes.spec.ts @@ -1,7 +1,7 @@ import { getImplicitlyTouchedProjectsByJsonChanges } from './implicit-json-changes'; import { WholeFileChange } from '../../file-utils'; import { DiffType } from '../../../utils/json-diff'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { NxJsonConfiguration } from '../../../config/nx-json'; function getModifiedChange(path: string[]) { return { diff --git a/packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.ts b/packages/nx/src/project-graph/affected/locators/implicit-json-changes.ts similarity index 96% rename from packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.ts rename to packages/nx/src/project-graph/affected/locators/implicit-json-changes.ts index a284b2009c7d9..39f5a93336d0a 100644 --- a/packages/nx/src/core/affected-project-graph/locators/implicit-json-changes.ts +++ b/packages/nx/src/project-graph/affected/locators/implicit-json-changes.ts @@ -7,7 +7,7 @@ import { walkJsonTree, } from '../../../utils/json-diff'; import { TouchedProjectLocator } from '../affected-project-graph-models'; -import { ImplicitDependencyEntry } from 'nx/src/shared/nx'; +import { ImplicitDependencyEntry } from '../../../config/nx-json'; export const getImplicitlyTouchedProjectsByJsonChanges: TouchedProjectLocator< WholeFileChange | JsonChange diff --git a/packages/nx/src/core/affected-project-graph/locators/npm-packages.spec.ts b/packages/nx/src/project-graph/affected/locators/npm-packages.spec.ts similarity index 97% rename from packages/nx/src/core/affected-project-graph/locators/npm-packages.spec.ts rename to packages/nx/src/project-graph/affected/locators/npm-packages.spec.ts index f029217509bc0..30799238a6f84 100644 --- a/packages/nx/src/core/affected-project-graph/locators/npm-packages.spec.ts +++ b/packages/nx/src/project-graph/affected/locators/npm-packages.spec.ts @@ -1,8 +1,8 @@ import { getTouchedNpmPackages } from './npm-packages'; import { WholeFileChange } from '../../file-utils'; import { DiffType } from '../../../utils/json-diff'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { NxJsonConfiguration } from '../../../config/nx-json'; +import { ProjectGraph } from '../../../config/project-graph'; describe('getTouchedNpmPackages', () => { let workspaceJson; diff --git a/packages/nx/src/core/affected-project-graph/locators/npm-packages.ts b/packages/nx/src/project-graph/affected/locators/npm-packages.ts similarity index 100% rename from packages/nx/src/core/affected-project-graph/locators/npm-packages.ts rename to packages/nx/src/project-graph/affected/locators/npm-packages.ts diff --git a/packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.spec.ts b/packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.spec.ts similarity index 99% rename from packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.spec.ts rename to packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.spec.ts index 5a287511a033c..a7d60a2223f0f 100644 --- a/packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.spec.ts +++ b/packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.spec.ts @@ -2,7 +2,7 @@ import { WholeFileChange } from '../../file-utils'; import { jsonDiff } from '../../../utils/json-diff'; import { getTouchedProjectsFromTsConfig } from './tsconfig-json-changes'; import * as tsUtils from '../../../utils/typescript'; -import { DependencyType, ProjectGraph } from 'nx/src/shared/project-graph'; +import { DependencyType, ProjectGraph } from '../../../config/project-graph'; describe('getTouchedProjectsFromTsConfig', () => { let graph: ProjectGraph; diff --git a/packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.ts b/packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.ts similarity index 97% rename from packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.ts rename to packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.ts index 10d1bb822d039..ca612d052a4b2 100644 --- a/packages/nx/src/core/affected-project-graph/locators/tsconfig-json-changes.ts +++ b/packages/nx/src/project-graph/affected/locators/tsconfig-json-changes.ts @@ -2,7 +2,7 @@ import { WholeFileChange } from '../../file-utils'; import { DiffType, isJsonChange, JsonChange } from '../../../utils/json-diff'; import { getRootTsConfigFileName } from '../../../utils/typescript'; import { TouchedProjectLocator } from '../affected-project-graph-models'; -import { ProjectGraphProjectNode } from 'nx/src/shared/project-graph'; +import { ProjectGraphProjectNode } from '../../../config/project-graph'; export const getTouchedProjectsFromTsConfig: TouchedProjectLocator< WholeFileChange | JsonChange diff --git a/packages/nx/src/core/affected-project-graph/locators/workspace-json-changes.spec.ts b/packages/nx/src/project-graph/affected/locators/workspace-json-changes.spec.ts similarity index 100% rename from packages/nx/src/core/affected-project-graph/locators/workspace-json-changes.spec.ts rename to packages/nx/src/project-graph/affected/locators/workspace-json-changes.spec.ts diff --git a/packages/nx/src/core/affected-project-graph/locators/workspace-json-changes.ts b/packages/nx/src/project-graph/affected/locators/workspace-json-changes.ts similarity index 100% rename from packages/nx/src/core/affected-project-graph/locators/workspace-json-changes.ts rename to packages/nx/src/project-graph/affected/locators/workspace-json-changes.ts diff --git a/packages/nx/src/core/affected-project-graph/locators/workspace-projects.spec.ts b/packages/nx/src/project-graph/affected/locators/workspace-projects.spec.ts similarity index 100% rename from packages/nx/src/core/affected-project-graph/locators/workspace-projects.spec.ts rename to packages/nx/src/project-graph/affected/locators/workspace-projects.spec.ts diff --git a/packages/nx/src/core/affected-project-graph/locators/workspace-projects.ts b/packages/nx/src/project-graph/affected/locators/workspace-projects.ts similarity index 100% rename from packages/nx/src/core/affected-project-graph/locators/workspace-projects.ts rename to packages/nx/src/project-graph/affected/locators/workspace-projects.ts diff --git a/packages/nx/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts b/packages/nx/src/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts similarity index 87% rename from packages/nx/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts rename to packages/nx/src/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts index d8ff5f392f36d..4f4f303a070d9 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts +++ b/packages/nx/src/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.ts @@ -1,7 +1,7 @@ import { buildExplicitTypeScriptDependencies } from './explicit-project-dependencies'; import { buildExplicitPackageJsonDependencies } from './explicit-package-json-dependencies'; -import { Workspace } from 'nx/src/shared/workspace'; -import { ProjectFileMap, ProjectGraph } from 'nx/src/shared/project-graph'; +import { ProjectFileMap, ProjectGraph } from '../../config/project-graph'; +import { Workspace } from '../../config/workspace-json-project-json'; export function buildExplicitTypescriptAndPackageJsonDependencies( jsPluginConfig: { diff --git a/packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts b/packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts similarity index 95% rename from packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts rename to packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts index 35456f726a28c..cb8d9b9e76b79 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts +++ b/packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.spec.ts @@ -1,11 +1,11 @@ import { buildExplicitPackageJsonDependencies } from './explicit-package-json-dependencies'; import { vol } from 'memfs'; -import { createProjectFileMap } from '../../file-map-utils'; -import { defaultFileHasher } from 'nx/src/core/hasher/file-hasher'; +import { createProjectFileMap } from '../file-map-utils'; +import { defaultFileHasher } from '../../hasher/file-hasher'; import { ProjectGraphProcessorContext, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from 'nx/src/config/project-graph'; import { ProjectGraphBuilder } from '../project-graph-builder'; jest.mock('fs', () => require('memfs').fs); diff --git a/packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.ts b/packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.ts similarity index 89% rename from packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.ts rename to packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.ts index 4dada6e6e90b1..3b60a92b22ac5 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.ts +++ b/packages/nx/src/project-graph/build-dependencies/explicit-package-json-dependencies.ts @@ -1,9 +1,9 @@ -import { defaultFileRead } from '../../file-utils'; +import { defaultFileRead } from '../file-utils'; import { join } from 'path'; -import { Workspace } from 'nx/src/shared/workspace'; -import { ProjectFileMap, ProjectGraph } from 'nx/src/shared/project-graph'; -import { parseJson } from 'nx/src/utils/json'; -import { joinPathFragments } from 'nx/src/utils/path'; +import { ProjectFileMap, ProjectGraph } from '../../config/project-graph'; +import { parseJson } from '../../utils/json'; +import { joinPathFragments } from '../../utils/path'; +import { Workspace } from '../../config/workspace-json-project-json'; class ProjectGraphNodeRecords {} diff --git a/packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.spec.ts b/packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.spec.ts similarity index 98% rename from packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.spec.ts rename to packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.spec.ts index 20c0240bdd5d9..ff2c777d532b5 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.spec.ts +++ b/packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.spec.ts @@ -1,4 +1,4 @@ -import { createProjectFileMap } from 'nx/src/core/file-map-utils'; +import { createProjectFileMap } from '../file-map-utils'; jest.mock('fs', () => require('memfs').fs); jest.mock('nx/src/utils/app-root', () => ({ @@ -11,7 +11,7 @@ import { defaultFileHasher } from '../../hasher/file-hasher'; import { ProjectGraphProcessorContext, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from '../../config/project-graph'; import { ProjectGraphBuilder } from '../project-graph-builder'; describe('explicit project dependencies', () => { diff --git a/packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.ts b/packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.ts similarity index 85% rename from packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.ts rename to packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.ts index 3e5a666b72840..866dd001f559e 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/explicit-project-dependencies.ts +++ b/packages/nx/src/project-graph/build-dependencies/explicit-project-dependencies.ts @@ -1,11 +1,11 @@ import { TypeScriptImportLocator } from './typescript-import-locator'; -import { TargetProjectLocator } from '../../target-project-locator'; +import { TargetProjectLocator } from '../../utils/target-project-locator'; import { DependencyType, ProjectFileMap, ProjectGraph, -} from 'nx/src/shared/project-graph'; -import { Workspace } from 'nx/src/shared/workspace'; +} from '../../config/project-graph'; +import { Workspace } from '../../config/workspace-json-project-json'; export function buildExplicitTypeScriptDependencies( workspace: Workspace, diff --git a/packages/nx/src/core/project-graph/build-dependencies/implicit-project-dependencies.ts b/packages/nx/src/project-graph/build-dependencies/implicit-project-dependencies.ts similarity index 89% rename from packages/nx/src/core/project-graph/build-dependencies/implicit-project-dependencies.ts rename to packages/nx/src/project-graph/build-dependencies/implicit-project-dependencies.ts index de83c11688a40..b8c9988444cf4 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/implicit-project-dependencies.ts +++ b/packages/nx/src/project-graph/build-dependencies/implicit-project-dependencies.ts @@ -1,4 +1,4 @@ -import { ProjectGraphProcessorContext } from 'nx/src/shared/project-graph'; +import { ProjectGraphProcessorContext } from '../../config/project-graph'; import { ProjectGraphBuilder } from '../project-graph-builder'; export function buildImplicitProjectDependencies( diff --git a/packages/nx/src/core/project-graph/build-dependencies/implict-project-dependencies.spec.ts b/packages/nx/src/project-graph/build-dependencies/implict-project-dependencies.spec.ts similarity index 95% rename from packages/nx/src/core/project-graph/build-dependencies/implict-project-dependencies.spec.ts rename to packages/nx/src/project-graph/build-dependencies/implict-project-dependencies.spec.ts index 0d9b0fb38b9b3..853e15c7f12e1 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/implict-project-dependencies.spec.ts +++ b/packages/nx/src/project-graph/build-dependencies/implict-project-dependencies.spec.ts @@ -1,4 +1,4 @@ -import { ProjectGraphProcessorContext } from 'nx/src/shared/project-graph'; +import { ProjectGraphProcessorContext } from '../../config/project-graph'; import { ProjectGraphBuilder } from '../project-graph-builder'; import { buildImplicitProjectDependencies } from './implicit-project-dependencies'; diff --git a/packages/nx/src/core/project-graph/build-dependencies/index.ts b/packages/nx/src/project-graph/build-dependencies/index.ts similarity index 100% rename from packages/nx/src/core/project-graph/build-dependencies/index.ts rename to packages/nx/src/project-graph/build-dependencies/index.ts diff --git a/packages/nx/src/core/project-graph/build-dependencies/typescript-import-locator.ts b/packages/nx/src/project-graph/build-dependencies/typescript-import-locator.ts similarity index 96% rename from packages/nx/src/core/project-graph/build-dependencies/typescript-import-locator.ts rename to packages/nx/src/project-graph/build-dependencies/typescript-import-locator.ts index 29fe24a5b643e..1e608f1e9bbeb 100644 --- a/packages/nx/src/core/project-graph/build-dependencies/typescript-import-locator.ts +++ b/packages/nx/src/project-graph/build-dependencies/typescript-import-locator.ts @@ -1,8 +1,8 @@ import type * as ts from 'typescript'; import * as path from 'path'; -import { stripSourceCode } from '../../../utils/strip-source-code'; -import { defaultFileRead } from '../../file-utils'; -import { DependencyType } from 'nx/src/shared/project-graph'; +import { stripSourceCode } from '../../utils/strip-source-code'; +import { defaultFileRead } from '../file-utils'; +import { DependencyType } from '../../config/project-graph'; let tsModule: any; diff --git a/packages/nx/src/core/project-graph/build-nodes/index.ts b/packages/nx/src/project-graph/build-nodes/index.ts similarity index 100% rename from packages/nx/src/core/project-graph/build-nodes/index.ts rename to packages/nx/src/project-graph/build-nodes/index.ts diff --git a/packages/nx/src/core/project-graph/build-nodes/npm-packages.ts b/packages/nx/src/project-graph/build-nodes/npm-packages.ts similarity index 100% rename from packages/nx/src/core/project-graph/build-nodes/npm-packages.ts rename to packages/nx/src/project-graph/build-nodes/npm-packages.ts diff --git a/packages/nx/src/core/project-graph/build-nodes/workspace-projects.ts b/packages/nx/src/project-graph/build-nodes/workspace-projects.ts similarity index 96% rename from packages/nx/src/core/project-graph/build-nodes/workspace-projects.ts rename to packages/nx/src/project-graph/build-nodes/workspace-projects.ts index f7f9e0bc84a74..673bc089efc76 100644 --- a/packages/nx/src/core/project-graph/build-nodes/workspace-projects.ts +++ b/packages/nx/src/project-graph/build-nodes/workspace-projects.ts @@ -5,7 +5,7 @@ import { loadNxPlugins, mergePluginTargetsWithNxTargets, } from 'nx/src/utils/nx-plugin'; -import { ProjectGraphProcessorContext } from 'nx/src/shared/project-graph'; +import { ProjectGraphProcessorContext } from 'nx/src/config/project-graph'; import { mergeNpmScriptsWithTargets } from 'nx/src/utils/project-graph-utils'; import { ProjectGraphBuilder } from '../project-graph-builder'; diff --git a/packages/nx/src/core/project-graph/build-project-graph.spec.ts b/packages/nx/src/project-graph/build-project-graph.spec.ts similarity index 96% rename from packages/nx/src/core/project-graph/build-project-graph.spec.ts rename to packages/nx/src/project-graph/build-project-graph.spec.ts index 1ab1730b2f036..8f284c94cd4c4 100644 --- a/packages/nx/src/core/project-graph/build-project-graph.spec.ts +++ b/packages/nx/src/project-graph/build-project-graph.spec.ts @@ -6,10 +6,10 @@ jest.mock('nx/src/utils/app-root', () => ({ })); import { buildProjectGraph } from './build-project-graph'; import { defaultFileHasher } from '../hasher/file-hasher'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { stripIndents } from 'nx/src/utils/strip-indents'; -import { DependencyType } from 'nx/src/shared/project-graph'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { stripIndents } from '../utils/strip-indents'; +import { DependencyType } from '../config/project-graph'; describe('project graph', () => { let packageJson: any; diff --git a/packages/nx/src/core/project-graph/build-project-graph.ts b/packages/nx/src/project-graph/build-project-graph.ts similarity index 94% rename from packages/nx/src/core/project-graph/build-project-graph.ts rename to packages/nx/src/project-graph/build-project-graph.ts index 7d42f7bb676e2..7069b1f7dfadc 100644 --- a/packages/nx/src/core/project-graph/build-project-graph.ts +++ b/packages/nx/src/project-graph/build-project-graph.ts @@ -1,9 +1,9 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { join } from 'path'; import { performance } from 'perf_hooks'; -import { assertWorkspaceValidity } from '../assert-workspace-validity'; -import { FileData, readNxJson, readWorkspaceJson } from '../file-utils'; -import { normalizeNxJson } from '../normalize-nx-json'; +import { assertWorkspaceValidity } from '../utils/assert-workspace-validity'; +import { FileData, readNxJson, readWorkspaceJson } from './file-utils'; +import { normalizeNxJson } from './normalize-nx-json'; import { createCache, extractCachedFileData, @@ -11,7 +11,7 @@ import { readCache, shouldRecomputeWholeGraph, writeCache, -} from '../nx-deps/nx-deps-cache'; +} from './nx-deps-cache'; import { buildImplicitProjectDependencies } from './build-dependencies'; import { buildNpmPackageNodes, @@ -19,26 +19,26 @@ import { } from './build-nodes'; import * as os from 'os'; import { buildExplicitTypescriptAndPackageJsonDependencies } from './build-dependencies/build-explicit-typescript-and-package-json-dependencies'; -import { loadNxPlugins } from 'nx/src/utils/nx-plugin'; +import { loadNxPlugins } from '../utils/nx-plugin'; import { defaultFileHasher } from '../hasher/file-hasher'; -import { createProjectFileMap } from '../file-map-utils'; -import { getRootTsConfigPath } from '../../utils/typescript'; -import { - ProjectConfiguration, - WorkspaceJsonConfiguration, -} from 'nx/src/shared/workspace'; +import { createProjectFileMap } from './file-map-utils'; +import { getRootTsConfigPath } from '../utils/typescript'; import { ProjectFileMap, ProjectGraph, ProjectGraphProcessorContext, -} from 'nx/src/shared/project-graph'; -import { readJsonFile } from 'nx/src/utils/fileutils'; +} from '../config/project-graph'; +import { readJsonFile } from '../utils/fileutils'; import { NxJsonConfiguration, NxJsonProjectConfiguration, -} from 'nx/src/shared/nx'; -import { logger } from 'nx/src/utils/logger'; +} from '../config/nx-json'; +import { logger } from '../utils/logger'; import { ProjectGraphBuilder } from './project-graph-builder'; +import { + ProjectConfiguration, + WorkspaceJsonConfiguration, +} from '../config/workspace-json-project-json'; export async function buildProjectGraph() { const workspaceJson = readWorkspaceJson(); diff --git a/packages/nx/src/core/file-map-utils.spec.ts b/packages/nx/src/project-graph/file-map-utils.spec.ts similarity index 100% rename from packages/nx/src/core/file-map-utils.spec.ts rename to packages/nx/src/project-graph/file-map-utils.spec.ts diff --git a/packages/nx/src/core/file-map-utils.ts b/packages/nx/src/project-graph/file-map-utils.ts similarity index 97% rename from packages/nx/src/core/file-map-utils.ts rename to packages/nx/src/project-graph/file-map-utils.ts index 0776a68add504..a958869d4cb0e 100644 --- a/packages/nx/src/core/file-map-utils.ts +++ b/packages/nx/src/project-graph/file-map-utils.ts @@ -1,5 +1,5 @@ import { dirname } from 'path'; -import { FileData, ProjectFileMap } from 'nx/src/shared/project-graph'; +import { FileData, ProjectFileMap } from '../config/project-graph'; function createProjectRootMappings( workspaceJson: any, diff --git a/packages/nx/src/core/file-utils.spec.ts b/packages/nx/src/project-graph/file-utils.spec.ts similarity index 97% rename from packages/nx/src/core/file-utils.spec.ts rename to packages/nx/src/project-graph/file-utils.spec.ts index 54cfad3e8e6c0..1e8f4e322e91e 100644 --- a/packages/nx/src/core/file-utils.spec.ts +++ b/packages/nx/src/project-graph/file-utils.spec.ts @@ -1,6 +1,6 @@ import { calculateFileChanges, WholeFileChange } from './file-utils'; import { DiffType } from '../utils/json-diff'; -import { defaultFileHasher } from './hasher/file-hasher'; +import { defaultFileHasher } from '../hasher/file-hasher'; import ignore from 'ignore'; describe('calculateFileChanges', () => { diff --git a/packages/nx/src/core/file-utils.ts b/packages/nx/src/project-graph/file-utils.ts similarity index 88% rename from packages/nx/src/core/file-utils.ts rename to packages/nx/src/project-graph/file-utils.ts index 95b8214fd3b0d..8b169ec91b647 100644 --- a/packages/nx/src/core/file-utils.ts +++ b/packages/nx/src/project-graph/file-utils.ts @@ -1,20 +1,16 @@ -import { - toOldFormatOrNull, - WorkspaceJsonConfiguration, - Workspaces, -} from 'nx/src/shared/workspace'; +import { toOldFormatOrNull, Workspaces } from '../config/workspaces'; import { execSync } from 'child_process'; import { existsSync, readFileSync } from 'fs'; import { extname, join, relative, sep } from 'path'; -import type { NxArgs } from '../command-line/utils'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import type { NxArgs } from '../utils/command-line-utils'; +import { workspaceRoot } from '../utils/app-root'; import { fileExists } from '../utils/fileutils'; import { jsonDiff } from '../utils/json-diff'; -import type { Environment } from './shared-interfaces'; import ignore from 'ignore'; -import { FileData } from '../shared/project-graph'; -import { readJsonFile } from 'nx/src/utils/fileutils'; -import { NxJsonConfiguration } from '../shared/nx'; +import { FileData } from '../config/project-graph'; +import { readJsonFile } from '../utils/fileutils'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; export interface Change { type: string; @@ -195,11 +191,5 @@ export function workspaceLayout(): { appsDir: string; libsDir: string } { }; } -export function readEnvironment(): Environment { - const nxJson = readNxJson(); - const workspaceJson = readWorkspaceJson(); - return { nxJson, workspaceJson, workspaceResults: null } as any; -} - // Original Exports export { FileData }; diff --git a/packages/nx/src/core/normalize-nx-json.spec.ts b/packages/nx/src/project-graph/normalize-nx-json.spec.ts similarity index 100% rename from packages/nx/src/core/normalize-nx-json.spec.ts rename to packages/nx/src/project-graph/normalize-nx-json.spec.ts diff --git a/packages/nx/src/core/normalize-nx-json.ts b/packages/nx/src/project-graph/normalize-nx-json.ts similarity index 95% rename from packages/nx/src/core/normalize-nx-json.ts rename to packages/nx/src/project-graph/normalize-nx-json.ts index 8852ad6280cf3..81f7ad9911b21 100644 --- a/packages/nx/src/core/normalize-nx-json.ts +++ b/packages/nx/src/project-graph/normalize-nx-json.ts @@ -4,7 +4,7 @@ * @param {NxJsonConfiguration} nxJson * @returns {NxJsonConfiguration} */ -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { NxJsonConfiguration } from '../config/nx-json'; export function normalizeNxJson( nxJson: NxJsonConfiguration, diff --git a/packages/nx/src/core/nx-deps/nx-deps-cache.spec.ts b/packages/nx/src/project-graph/nx-deps-cache.spec.ts similarity index 97% rename from packages/nx/src/core/nx-deps/nx-deps-cache.spec.ts rename to packages/nx/src/project-graph/nx-deps-cache.spec.ts index efcb14f5332e0..520dd2fbd53c0 100644 --- a/packages/nx/src/core/nx-deps/nx-deps-cache.spec.ts +++ b/packages/nx/src/project-graph/nx-deps-cache.spec.ts @@ -5,9 +5,9 @@ import { shouldRecomputeWholeGraph, } from './nx-deps-cache'; import { createCache } from './nx-deps-cache'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { ProjectGraph } from '../config/project-graph'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; +import { NxJsonConfiguration } from '../config/nx-json'; describe('nx deps utils', () => { describe('shouldRecomputeWholeGraph', () => { diff --git a/packages/nx/src/core/nx-deps/nx-deps-cache.ts b/packages/nx/src/project-graph/nx-deps-cache.ts similarity index 94% rename from packages/nx/src/core/nx-deps/nx-deps-cache.ts rename to packages/nx/src/project-graph/nx-deps-cache.ts index 76e8abf34786c..4cd3fa5845fd0 100644 --- a/packages/nx/src/core/nx-deps/nx-deps-cache.ts +++ b/packages/nx/src/project-graph/nx-deps-cache.ts @@ -2,8 +2,8 @@ import { existsSync } from 'fs'; import { ensureDirSync } from 'fs-extra'; import { join } from 'path'; import { performance } from 'perf_hooks'; -import { cacheDir } from '../../utils/cache-directory'; -import { directoryExists, fileExists } from '../../utils/fileutils'; +import { cacheDir } from '../utils/cache-directory'; +import { directoryExists, fileExists } from '../utils/fileutils'; import { FileData, ProjectFileMap, @@ -11,10 +11,10 @@ import { ProjectGraphDependency, ProjectGraphExternalNode, ProjectGraphNode, -} from 'nx/src/shared/project-graph'; -import { readJsonFile, writeJsonFile } from 'nx/src/utils/fileutils'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; -import { WorkspaceJsonConfiguration } from 'nx/src/shared/workspace'; +} from '../config/project-graph'; +import { readJsonFile, writeJsonFile } from '../utils/fileutils'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { WorkspaceJsonConfiguration } from '../config/workspace-json-project-json'; export interface ProjectGraphCache { version: string; diff --git a/packages/nx/src/core/project-graph/operators.spec.ts b/packages/nx/src/project-graph/operators.spec.ts similarity index 99% rename from packages/nx/src/core/project-graph/operators.spec.ts rename to packages/nx/src/project-graph/operators.spec.ts index cb2256672ed80..f601b3c4d0987 100644 --- a/packages/nx/src/core/project-graph/operators.spec.ts +++ b/packages/nx/src/project-graph/operators.spec.ts @@ -3,7 +3,7 @@ import { DependencyType, ProjectGraph, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from '../config/project-graph'; const graph: ProjectGraph = { nodes: { diff --git a/packages/nx/src/core/project-graph/operators.ts b/packages/nx/src/project-graph/operators.ts similarity index 99% rename from packages/nx/src/core/project-graph/operators.ts rename to packages/nx/src/project-graph/operators.ts index 2a5b394b1a9dc..b0103981faa6a 100644 --- a/packages/nx/src/core/project-graph/operators.ts +++ b/packages/nx/src/project-graph/operators.ts @@ -3,7 +3,7 @@ import { ProjectGraphExternalNode, ProjectGraphNode, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from '../config/project-graph'; const reverseMemo = new Map(); diff --git a/packages/nx/src/core/project-graph/project-graph-builder.spec.ts b/packages/nx/src/project-graph/project-graph-builder.spec.ts similarity index 100% rename from packages/nx/src/core/project-graph/project-graph-builder.spec.ts rename to packages/nx/src/project-graph/project-graph-builder.spec.ts diff --git a/packages/nx/src/core/project-graph/project-graph-builder.ts b/packages/nx/src/project-graph/project-graph-builder.ts similarity index 99% rename from packages/nx/src/core/project-graph/project-graph-builder.ts rename to packages/nx/src/project-graph/project-graph-builder.ts index 09dd8e88e615e..c5daabd508234 100644 --- a/packages/nx/src/core/project-graph/project-graph-builder.ts +++ b/packages/nx/src/project-graph/project-graph-builder.ts @@ -7,7 +7,7 @@ import { ProjectGraphDependency, ProjectGraphExternalNode, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from '../config/project-graph'; export class ProjectGraphBuilder { readonly graph: ProjectGraph; diff --git a/packages/nx/src/core/project-graph/project-graph-worker.ts b/packages/nx/src/project-graph/project-graph-worker.ts similarity index 86% rename from packages/nx/src/core/project-graph/project-graph-worker.ts rename to packages/nx/src/project-graph/project-graph-worker.ts index a0737f2d642a4..b2402888ccebc 100644 --- a/packages/nx/src/core/project-graph/project-graph-worker.ts +++ b/packages/nx/src/project-graph/project-graph-worker.ts @@ -1,7 +1,7 @@ import { parentPort } from 'worker_threads'; import { buildExplicitTypescriptAndPackageJsonDependencies } from './build-dependencies/build-explicit-typescript-and-package-json-dependencies'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; -import { Workspace } from 'nx/src/shared/workspace'; +import { ProjectGraph } from '../config/project-graph'; +import { Workspace } from '../config/workspace-json-project-json'; let workspace: Workspace | null; let projectGraph: ProjectGraph | null; diff --git a/packages/nx/src/core/project-graph/project-graph.ts b/packages/nx/src/project-graph/project-graph.ts similarity index 93% rename from packages/nx/src/core/project-graph/project-graph.ts rename to packages/nx/src/project-graph/project-graph.ts index f36b1eda77e2d..8b30795bc9f20 100644 --- a/packages/nx/src/core/project-graph/project-graph.ts +++ b/packages/nx/src/project-graph/project-graph.ts @@ -1,17 +1,17 @@ -import { ProjectGraphCache, readCache } from '../nx-deps/nx-deps-cache'; +import { ProjectGraphCache, readCache } from './nx-deps-cache'; import { buildProjectGraph } from './build-project-graph'; -import { readNxJson, workspaceFileName } from '../file-utils'; -import { output } from '../../utils/output'; -import { isCI } from '../../utils/is-ci'; +import { readNxJson, workspaceFileName } from './file-utils'; +import { output } from '../utils/output'; +import { isCI } from '../utils/is-ci'; import { defaultFileHasher } from '../hasher/file-hasher'; import { isDaemonDisabled, markDaemonAsDisabled, writeDaemonLogs, -} from 'nx/src/core/project-graph/daemon/tmp-dir'; +} from '../daemon/tmp-dir'; import { statSync } from 'fs'; -import { ProjectGraph, ProjectGraphV4 } from 'nx/src/shared/project-graph'; -import { stripIndents } from 'nx/src/utils/strip-indents'; +import { ProjectGraph, ProjectGraphV4 } from '../config/project-graph'; +import { stripIndents } from '../utils/strip-indents'; /** * Synchronously reads the latest cached copy of the workspace's ProjectGraph. @@ -110,7 +110,7 @@ export async function createProjectGraphAsync(): Promise { return await buildProjectGraphWithoutDaemon(); } else { try { - const daemonClient = require('./daemon/client/client'); + const daemonClient = require('../daemon/client/client'); if (!(await daemonClient.isServerAvailable())) { await daemonClient.startInBackground(); } diff --git a/packages/nx/src/tasks-runner/batch/batch-messages.ts b/packages/nx/src/tasks-runner/batch/batch-messages.ts index f1fb9e6bf9873..fe952fe7eba13 100644 --- a/packages/nx/src/tasks-runner/batch/batch-messages.ts +++ b/packages/nx/src/tasks-runner/batch/batch-messages.ts @@ -1,4 +1,4 @@ -import { TaskGraph } from 'nx/src/shared/tasks'; +import { TaskGraph } from '../../config/task-graph'; export enum BatchMessageType { Tasks, diff --git a/packages/nx/src/tasks-runner/batch/run-batch.ts b/packages/nx/src/tasks-runner/batch/run-batch.ts index 78f81a27706d8..6bed7e4334f0c 100644 --- a/packages/nx/src/tasks-runner/batch/run-batch.ts +++ b/packages/nx/src/tasks-runner/batch/run-batch.ts @@ -3,10 +3,11 @@ import { BatchMessage, BatchMessageType, } from './batch-messages'; -import { ExecutorContext, Workspaces } from 'nx/src/shared/workspace'; -import { workspaceRoot } from 'nx/src/utils/app-root'; -import { combineOptionsForExecutor } from 'nx/src/utils/params'; -import { TaskGraph } from 'nx/src/shared/tasks'; +import { Workspaces } from '../../config/workspaces'; +import { workspaceRoot } from '../../utils/app-root'; +import { combineOptionsForExecutor } from '../../utils/params'; +import { TaskGraph } from '../../config/task-graph'; +import { ExecutorContext } from '../../config/misc-interfaces'; function getBatchExecutor(executorName: string) { const workspace = new Workspaces(workspaceRoot); diff --git a/packages/nx/src/tasks-runner/cache.ts b/packages/nx/src/tasks-runner/cache.ts index a0885ef10f359..7f6ff00f4ee24 100644 --- a/packages/nx/src/tasks-runner/cache.ts +++ b/packages/nx/src/tasks-runner/cache.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { copy, mkdir, @@ -16,7 +16,7 @@ import { DefaultTasksRunnerOptions } from './default-tasks-runner'; import { spawn, execFile } from 'child_process'; import { cacheDir } from '../utils/cache-directory'; import { platform } from 'os'; -import { Task } from '../shared/tasks'; +import { Task } from '../config/task-graph'; export type CachedResult = { terminalOutput: string; diff --git a/packages/nx/src/tasks-runner/default-tasks-runner.ts b/packages/nx/src/tasks-runner/default-tasks-runner.ts index 3b9bb42aa9704..e6631469de855 100644 --- a/packages/nx/src/tasks-runner/default-tasks-runner.ts +++ b/packages/nx/src/tasks-runner/default-tasks-runner.ts @@ -2,11 +2,11 @@ import { TasksRunner, TaskStatus } from './tasks-runner'; import { TaskOrchestrator } from './task-orchestrator'; import { performance } from 'perf_hooks'; import { TaskGraphCreator } from './task-graph-creator'; -import { Hasher } from '../core/hasher/hasher'; +import { Hasher } from '../hasher/hasher'; import { LifeCycle } from './life-cycle'; -import { ProjectGraph } from '../shared/project-graph'; -import { NxJsonConfiguration } from '../shared/nx'; -import { Task } from '../shared/tasks'; +import { ProjectGraph } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { Task } from '../config/task-graph'; export interface RemoteCache { retrieve: (hash: string, cacheDirectory: string) => Promise; diff --git a/packages/nx/src/tasks-runner/forked-process-task-runner.ts b/packages/nx/src/tasks-runner/forked-process-task-runner.ts index 427297314e9cf..ead53c7f8097f 100644 --- a/packages/nx/src/tasks-runner/forked-process-task-runner.ts +++ b/packages/nx/src/tasks-runner/forked-process-task-runner.ts @@ -1,7 +1,7 @@ import { readFileSync, writeFileSync } from 'fs'; import * as dotenv from 'dotenv'; import { ChildProcess, fork } from 'child_process'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { DefaultTasksRunnerOptions } from './default-tasks-runner'; import { output } from '../utils/output'; import { @@ -17,7 +17,7 @@ import { BatchResults, } from './batch/batch-messages'; import { stripIndents } from '../utils/strip-indents'; -import { Task } from '../shared/tasks'; +import { Task } from '../config/task-graph'; const workerPath = join(__dirname, './batch/run-batch.js'); diff --git a/packages/nx/src/tasks-runner/life-cycle.ts b/packages/nx/src/tasks-runner/life-cycle.ts index 762ccb0e9bdde..1192a73415c16 100644 --- a/packages/nx/src/tasks-runner/life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycle.ts @@ -1,5 +1,5 @@ import { TaskStatus } from './tasks-runner'; -import { Task } from '../shared/tasks'; +import { Task } from '../config/task-graph'; export interface TaskResult { task: Task; diff --git a/packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts index 1bbe3ecdc2c91..80c61ada7f6d4 100644 --- a/packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts @@ -5,7 +5,7 @@ import * as readline from 'readline'; import { output } from '../../utils/output'; import type { LifeCycle } from '../life-cycle'; import type { TaskStatus } from '../tasks-runner'; -import { Task } from '../../shared/tasks'; +import { Task } from '../../config/task-graph'; import { prettyTime } from './pretty-time'; /** diff --git a/packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts index a30418ccc22f5..58cdc88e403e8 100644 --- a/packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts @@ -5,7 +5,7 @@ import * as readline from 'readline'; import { output } from '../../utils/output'; import type { LifeCycle } from '../life-cycle'; import { prettyTime } from './pretty-time'; -import { Task } from 'nx/src/shared/tasks'; +import { Task } from '../../config/task-graph'; /** * As tasks are completed the overall state moves from: diff --git a/packages/nx/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.ts index adeb93a659687..e1faa49b6663a 100644 --- a/packages/nx/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.ts @@ -1,7 +1,7 @@ import { output } from '../../utils/output'; import { getPrintableCommandArgsForTask } from '../utils'; import type { LifeCycle } from '../life-cycle'; -import { TaskStatus } from 'nx/src/tasks-runner/tasks-runner'; +import { TaskStatus } from '../tasks-runner'; export class EmptyTerminalOutputLifeCycle implements LifeCycle { printTaskTerminalOutput( diff --git a/packages/nx/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.ts index 5bb1e37bf156b..d40b3615d2b20 100644 --- a/packages/nx/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.ts @@ -2,7 +2,7 @@ import { output } from '../../utils/output'; import { TaskStatus } from '../tasks-runner'; import { getPrintableCommandArgsForTask } from '../utils'; import type { LifeCycle } from '../life-cycle'; -import { Task } from 'nx/src/shared/tasks'; +import { Task } from '../../config/task-graph'; /** * The following life cycle's outputs are static, meaning no previous content diff --git a/packages/nx/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.ts index 89eb0158837fa..80bccb965fa48 100644 --- a/packages/nx/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.ts @@ -2,7 +2,7 @@ import { output } from '../../utils/output'; import { TaskStatus } from '../tasks-runner'; import { getPrintableCommandArgsForTask } from '../utils'; import type { LifeCycle } from '../life-cycle'; -import { Task } from 'nx/src/shared/tasks'; +import { Task } from '../../config/task-graph'; /** * The following life cycle's outputs are static, meaning no previous content diff --git a/packages/nx/src/tasks-runner/life-cycles/task-profiling-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/task-profiling-life-cycle.ts index d96814e254f03..1f4ae0ea5663a 100644 --- a/packages/nx/src/tasks-runner/life-cycles/task-profiling-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/task-profiling-life-cycle.ts @@ -3,8 +3,8 @@ import { TaskStatus } from '../tasks-runner'; import { performance } from 'perf_hooks'; import { join } from 'path'; -import { Task } from 'nx/src/shared/tasks'; -import { writeJsonFile } from 'nx/src/utils/fileutils'; +import { Task } from '../../config/task-graph'; +import { writeJsonFile } from '../../utils/fileutils'; export class TaskProfilingLifeCycle implements LifeCycle { private timings: { diff --git a/packages/nx/src/tasks-runner/life-cycles/task-timings-life-cycle.ts b/packages/nx/src/tasks-runner/life-cycles/task-timings-life-cycle.ts index feecfe2a2bf03..1d57f9568d9f1 100644 --- a/packages/nx/src/tasks-runner/life-cycles/task-timings-life-cycle.ts +++ b/packages/nx/src/tasks-runner/life-cycles/task-timings-life-cycle.ts @@ -1,4 +1,4 @@ -import { Task } from 'nx/src/shared/tasks'; +import { Task } from '../../config/task-graph'; import { LifeCycle } from '../life-cycle'; import { TaskStatus } from '../tasks-runner'; diff --git a/packages/nx/src/tasks-runner/reporter.ts b/packages/nx/src/tasks-runner/reporter.ts deleted file mode 100644 index 03662bf9b30c4..0000000000000 --- a/packages/nx/src/tasks-runner/reporter.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Task } from '../shared/tasks'; - -export interface ReporterArgs { - target?: string; - configuration?: string; - onlyFailed?: boolean; -} - -/** - * @deprecated the reporter API is no longer supported. - * The class will be removed after Nx 14 is released. - */ -export abstract class Reporter { - abstract beforeRun( - projectNames: string[], - tasks: Task[], - args: ReporterArgs, - taskOverrides: any - ): void; - - abstract printResults( - nxArgs: ReporterArgs, - startedWithFailedProjects: boolean, - tasks: Task[], - failedTasks: Task[], - tasksWithFailedDependencies: Task[], - cachedTasks: Task[] - ): void; -} diff --git a/packages/nx/src/tasks-runner/run-command.spec.ts b/packages/nx/src/tasks-runner/run-command.spec.ts index 0a68444114c75..efdffcb0d1668 100644 --- a/packages/nx/src/tasks-runner/run-command.spec.ts +++ b/packages/nx/src/tasks-runner/run-command.spec.ts @@ -1,8 +1,8 @@ import { TasksRunner } from './tasks-runner'; import defaultTaskRunner from './default-tasks-runner'; import { createTasksForProjectToRun, getRunner } from './run-command'; -import { DependencyType, ProjectGraph } from '../shared/project-graph'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { DependencyType, ProjectGraph } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; describe('createTasksForProjectToRun', () => { let projectGraph: ProjectGraph; diff --git a/packages/nx/src/tasks-runner/run-command.ts b/packages/nx/src/tasks-runner/run-command.ts index 9248efff75ea1..5aa0a1aa3502f 100644 --- a/packages/nx/src/tasks-runner/run-command.ts +++ b/packages/nx/src/tasks-runner/run-command.ts @@ -1,9 +1,8 @@ import { TasksRunner, TaskStatus } from './tasks-runner'; import { join } from 'path'; -import { workspaceRoot } from 'nx/src/utils/app-root'; -import { logger, stripIndent } from 'nx/src/utils/logger'; -import { Environment } from '../core/shared-interfaces'; -import { NxArgs } from '../command-line/utils'; +import { workspaceRoot } from '../utils/app-root'; +import { logger, stripIndent } from '../utils/logger'; +import { NxArgs } from '../utils/command-line-utils'; import { isRelativePath } from '../utils/fileutils'; import { projectHasTarget, @@ -20,13 +19,13 @@ import { createRunManyDynamicOutputRenderer } from './life-cycles/dynamic-run-ma import { TaskProfilingLifeCycle } from './life-cycles/task-profiling-life-cycle'; import { isCI } from '../utils/is-ci'; import { createRunOneDynamicOutputRenderer } from './life-cycles/dynamic-run-one-terminal-output-life-cycle'; -import { ProjectGraph, ProjectGraphProjectNode } from '../shared/project-graph'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { Task } from '../config/task-graph'; import { ProjectConfiguration, TargetDependencyConfig, -} from '../shared/workspace'; -import { NxJsonConfiguration } from '../shared/nx'; -import { Task } from '../shared/tasks'; +} from '../config/workspace-json-project-json'; async function getTerminalOutputLifeCycle( initiatingProject: string, @@ -94,7 +93,7 @@ async function getTerminalOutputLifeCycle( export async function runCommand( projectsToRun: ProjectGraphProjectNode[], projectGraph: ProjectGraph, - { nxJson }: Environment, + { nxJson }: { nxJson: NxJsonConfiguration }, nxArgs: NxArgs, overrides: any, terminalOutputStrategy: 'default' | 'hide-cached-output' | 'run-one', diff --git a/packages/nx/src/tasks-runner/task-graph-creator.spec.ts b/packages/nx/src/tasks-runner/task-graph-creator.spec.ts index 27220a061d797..ceb59edbbfe26 100644 --- a/packages/nx/src/tasks-runner/task-graph-creator.spec.ts +++ b/packages/nx/src/tasks-runner/task-graph-creator.spec.ts @@ -1,4 +1,4 @@ -import { DependencyType, ProjectGraph } from '../shared/project-graph'; +import { DependencyType, ProjectGraph } from '../config/project-graph'; import { createTasksForProjectToRun } from './run-command'; import { TaskGraphCreator } from './task-graph-creator'; diff --git a/packages/nx/src/tasks-runner/task-graph-creator.ts b/packages/nx/src/tasks-runner/task-graph-creator.ts index 3373724ea4a45..66f93631011fe 100644 --- a/packages/nx/src/tasks-runner/task-graph-creator.ts +++ b/packages/nx/src/tasks-runner/task-graph-creator.ts @@ -1,7 +1,7 @@ -import { ProjectGraph } from '../shared/project-graph'; -import { Task, TaskGraph } from '../shared/tasks'; -import { TargetDependencyConfig } from '../shared/workspace'; +import { ProjectGraph } from '../config/project-graph'; +import { Task, TaskGraph } from '../config/task-graph'; import { getDependencyConfigs } from './utils'; +import { TargetDependencyConfig } from '../config/workspace-json-project-json'; export class TaskGraphCreator { constructor( diff --git a/packages/nx/src/tasks-runner/task-orchestrator.ts b/packages/nx/src/tasks-runner/task-orchestrator.ts index d7efeebab6e4e..a9a198da37699 100644 --- a/packages/nx/src/tasks-runner/task-orchestrator.ts +++ b/packages/nx/src/tasks-runner/task-orchestrator.ts @@ -1,8 +1,8 @@ -import { Workspaces } from 'nx/src/shared/workspace'; +import { Workspaces } from '../config/workspaces'; import { performance } from 'perf_hooks'; -import { Hasher } from '../core/hasher/hasher'; +import { Hasher } from '../hasher/hasher'; import { ForkedProcessTaskRunner } from './forked-process-task-runner'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../utils/app-root'; import { Cache } from './cache'; import { DefaultTasksRunnerOptions } from './default-tasks-runner'; import { TaskStatus } from './tasks-runner'; @@ -16,8 +16,8 @@ import { } from './utils'; import { Batch, TasksSchedule } from './tasks-schedule'; import { TaskMetadata } from './life-cycle'; -import { ProjectGraph } from '../shared/project-graph'; -import { Task, TaskGraph } from '../shared/tasks'; +import { ProjectGraph } from '../config/project-graph'; +import { Task, TaskGraph } from '../config/task-graph'; export class TaskOrchestrator { private cache = new Cache(this.options); diff --git a/packages/nx/src/tasks-runner/tasks-runner-v2.ts b/packages/nx/src/tasks-runner/tasks-runner-v2.ts index c5efe4ec6f361..5a3a2fbc5cfe2 100644 --- a/packages/nx/src/tasks-runner/tasks-runner-v2.ts +++ b/packages/nx/src/tasks-runner/tasks-runner-v2.ts @@ -5,9 +5,9 @@ import { import { TaskStatus } from './tasks-runner'; import { Subject } from 'rxjs/internal/Subject'; import type { Observable } from 'rxjs'; -import { ProjectGraph } from '../shared/project-graph'; -import { NxJsonConfiguration } from '../shared/nx'; -import { Task } from '../shared/tasks'; +import { ProjectGraph } from '../config/project-graph'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { Task } from '../config/task-graph'; export { DefaultTasksRunnerOptions, RemoteCache } from './default-tasks-runner'; diff --git a/packages/nx/src/tasks-runner/tasks-runner.ts b/packages/nx/src/tasks-runner/tasks-runner.ts index a3e64a0c71540..6c2e2e944a001 100644 --- a/packages/nx/src/tasks-runner/tasks-runner.ts +++ b/packages/nx/src/tasks-runner/tasks-runner.ts @@ -1,7 +1,7 @@ import type { Observable } from 'rxjs'; -import { NxJsonConfiguration } from '../shared/nx'; -import { ProjectGraph } from '../shared/project-graph'; -import { Task } from '../shared/tasks'; +import { NxJsonConfiguration } from '../config/nx-json'; +import { ProjectGraph } from '../config/project-graph'; +import { Task } from '../config/task-graph'; export type TaskStatus = | 'success' diff --git a/packages/nx/src/tasks-runner/tasks-schedule.spec.ts b/packages/nx/src/tasks-runner/tasks-schedule.spec.ts index a483b1d9492a1..c09177a0bb477 100644 --- a/packages/nx/src/tasks-runner/tasks-schedule.spec.ts +++ b/packages/nx/src/tasks-runner/tasks-schedule.spec.ts @@ -1,7 +1,7 @@ import { TasksSchedule } from './tasks-schedule'; -import { Workspaces } from 'nx/src/shared/workspace'; -import { removeTasksFromTaskGraph } from 'nx/src/tasks-runner/utils'; -import { Task, TaskGraph } from '../shared/tasks'; +import { Workspaces } from '../config/workspaces'; +import { removeTasksFromTaskGraph } from './utils'; +import { Task, TaskGraph } from '../config/task-graph'; function createMockTask(id: string): Task { const [project, target] = id.split(':'); diff --git a/packages/nx/src/tasks-runner/tasks-schedule.ts b/packages/nx/src/tasks-runner/tasks-schedule.ts index 1587c144741d0..5a547a90d3c9d 100644 --- a/packages/nx/src/tasks-runner/tasks-schedule.ts +++ b/packages/nx/src/tasks-runner/tasks-schedule.ts @@ -1,4 +1,4 @@ -import { Workspaces } from 'nx/src/shared/workspace'; +import { Workspaces } from '../config/workspaces'; import { calculateReverseDeps, @@ -8,9 +8,9 @@ import { removeTasksFromTaskGraph, } from './utils'; import { DefaultTasksRunnerOptions } from './default-tasks-runner'; -import { Hasher } from 'nx/src/core/hasher/hasher'; -import { Task, TaskGraph } from '../shared/tasks'; -import { ProjectGraph } from 'nx/src/shared/project-graph'; +import { Hasher } from '../hasher/hasher'; +import { Task, TaskGraph } from '../config/task-graph'; +import { ProjectGraph } from '../config/project-graph'; export interface Batch { executorName: string; diff --git a/packages/nx/src/tasks-runner/utils.spec.ts b/packages/nx/src/tasks-runner/utils.spec.ts index 2277f80f4908e..66965a5b6a8a6 100644 --- a/packages/nx/src/tasks-runner/utils.spec.ts +++ b/packages/nx/src/tasks-runner/utils.spec.ts @@ -1,8 +1,5 @@ -import { - getOutputsForTargetAndConfiguration, - unparse, -} from 'nx/src/tasks-runner/utils'; -import { ProjectGraphProjectNode } from '../shared/project-graph'; +import { getOutputsForTargetAndConfiguration, unparse } from './utils'; +import { ProjectGraphProjectNode } from '../config/project-graph'; describe('utils', () => { describe('getOutputsForTargetAndConfiguration', () => { diff --git a/packages/nx/src/tasks-runner/utils.ts b/packages/nx/src/tasks-runner/utils.ts index 3403bfc274d8b..25904d2d3c7ef 100644 --- a/packages/nx/src/tasks-runner/utils.ts +++ b/packages/nx/src/tasks-runner/utils.ts @@ -1,16 +1,17 @@ import { flatten } from 'flat'; import { output } from '../utils/output'; -import { TargetDependencyConfig, Workspaces } from 'nx/src/shared/workspace'; +import { Workspaces } from '../config/workspaces'; import { mergeNpmScriptsWithTargets } from '../utils/project-graph-utils'; import { existsSync } from 'fs'; import { join } from 'path'; import { loadNxPlugins, mergePluginTargetsWithNxTargets, -} from 'nx/src/utils/nx-plugin'; -import { Task, TaskGraph } from '../shared/tasks'; +} from '../utils/nx-plugin'; +import { Task, TaskGraph } from '../config/task-graph'; import { getPackageManagerCommand } from '../utils/package-manager'; -import { ProjectGraph, ProjectGraphProjectNode } from '../shared/project-graph'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; +import { TargetDependencyConfig } from '../config/workspace-json-project-json'; export function getCommandAsString(task: Task) { const execCommand = getPackageManagerCommand().exec; diff --git a/packages/nx/src/core/assert-workspace-validity.spec.ts b/packages/nx/src/utils/assert-workspace-validity.spec.ts similarity index 100% rename from packages/nx/src/core/assert-workspace-validity.spec.ts rename to packages/nx/src/utils/assert-workspace-validity.spec.ts diff --git a/packages/nx/src/core/assert-workspace-validity.ts b/packages/nx/src/utils/assert-workspace-validity.ts similarity index 97% rename from packages/nx/src/core/assert-workspace-validity.ts rename to packages/nx/src/utils/assert-workspace-validity.ts index ba7844aa0d40d..7b1a9984ed490 100644 --- a/packages/nx/src/core/assert-workspace-validity.ts +++ b/packages/nx/src/utils/assert-workspace-validity.ts @@ -1,8 +1,8 @@ import { ImplicitJsonSubsetDependency, NxJsonConfiguration, -} from 'nx/src/shared/nx'; -import { stripIndents } from '../utils/strip-indents'; +} from '../config/nx-json'; +import { stripIndents } from './strip-indents'; export function assertWorkspaceValidity( workspaceJson, diff --git a/packages/nx/src/utils/cache-directory.ts b/packages/nx/src/utils/cache-directory.ts index 6f4e0a1622c41..18203a422a4fc 100644 --- a/packages/nx/src/utils/cache-directory.ts +++ b/packages/nx/src/utils/cache-directory.ts @@ -1,7 +1,7 @@ import { join, isAbsolute } from 'path'; -import { workspaceRoot } from 'nx/src/utils/app-root'; -import { readJsonFile } from 'nx/src/utils/fileutils'; -import { NxJsonConfiguration } from 'nx/src/shared/nx'; +import { workspaceRoot } from './app-root'; +import { readJsonFile } from './fileutils'; +import { NxJsonConfiguration } from '../config/nx-json'; function readCacheDirectoryProperty(root: string): string | undefined { try { diff --git a/packages/nx/src/command-line/utils.spec.ts b/packages/nx/src/utils/command-line-utils.spec.ts similarity index 97% rename from packages/nx/src/command-line/utils.spec.ts rename to packages/nx/src/utils/command-line-utils.spec.ts index 32c2d72b03494..1fa525af6d046 100644 --- a/packages/nx/src/command-line/utils.spec.ts +++ b/packages/nx/src/utils/command-line-utils.spec.ts @@ -1,7 +1,10 @@ -import { splitArgsIntoNxArgsAndOverrides, getAffectedConfig } from './utils'; -import * as fileUtils from '../core/file-utils'; +import { + splitArgsIntoNxArgsAndOverrides, + getAffectedConfig, +} from './command-line-utils'; +import * as fileUtils from '../project-graph/file-utils'; -jest.mock('../core/file-utils'); +jest.mock('../project-graph/file-utils'); describe('splitArgs', () => { beforeEach(() => { diff --git a/packages/nx/src/command-line/utils.ts b/packages/nx/src/utils/command-line-utils.ts similarity index 98% rename from packages/nx/src/command-line/utils.ts rename to packages/nx/src/utils/command-line-utils.ts index 86b7877b2760f..5c1ac8881b223 100644 --- a/packages/nx/src/command-line/utils.ts +++ b/packages/nx/src/utils/command-line-utils.ts @@ -4,9 +4,9 @@ import { readNxJson, readWorkspaceJson, TEN_MEGABYTES, -} from '../core/file-utils'; -import { output } from '../utils/output'; -import { NxAffectedConfig } from '../shared/nx'; +} from '../project-graph/file-utils'; +import { output } from './output'; +import { NxAffectedConfig } from '../config/nx-json'; import { execSync } from 'child_process'; export function names(name: string): { diff --git a/packages/nx/src/utils/json-diff.ts b/packages/nx/src/utils/json-diff.ts index a723ee63b7448..b5ceb2a02f83b 100644 --- a/packages/nx/src/utils/json-diff.ts +++ b/packages/nx/src/utils/json-diff.ts @@ -1,4 +1,4 @@ -import { Change } from '../core/file-utils'; +import { Change } from '../project-graph/file-utils'; export enum DiffType { Deleted = 'JsonPropertyDeleted', diff --git a/packages/nx/src/utils/nx-plugin.ts b/packages/nx/src/utils/nx-plugin.ts index 6d2d1dba48080..b0b8cefe0ec3e 100644 --- a/packages/nx/src/utils/nx-plugin.ts +++ b/packages/nx/src/utils/nx-plugin.ts @@ -1,18 +1,18 @@ import { sync } from 'fast-glob'; import { existsSync } from 'fs'; import * as path from 'path'; -import { ProjectGraphProcessor } from '../shared/project-graph'; -import { - ProjectConfiguration, - TargetConfiguration, - WorkspaceJsonConfiguration, - Workspaces, -} from '../shared/workspace'; +import { ProjectGraphProcessor } from '../config/project-graph'; +import { Workspaces } from '../config/workspaces'; import { workspaceRoot } from '../utils/app-root'; import { readJsonFile } from '../utils/fileutils'; import { PackageJson } from './package-json'; -import { registerTsProject } from 'nx/src/utils/register'; +import { registerTsProject } from './register'; +import { + ProjectConfiguration, + TargetConfiguration, + WorkspaceJsonConfiguration, +} from '../config/workspace-json-project-json'; export type ProjectTargetConfigurator = ( file: string diff --git a/packages/nx/src/utils/output.ts b/packages/nx/src/utils/output.ts index 020cbb082da30..901432a8cba94 100644 --- a/packages/nx/src/utils/output.ts +++ b/packages/nx/src/utils/output.ts @@ -1,7 +1,7 @@ import * as chalk from 'chalk'; import { EOL } from 'os'; import { isCI } from './is-ci'; -import { TaskStatus } from 'nx/src/tasks-runner/tasks-runner'; +import { TaskStatus } from '../tasks-runner/tasks-runner'; export interface CLIErrorMessageConfig { title: string; diff --git a/packages/nx/src/utils/package-json.ts b/packages/nx/src/utils/package-json.ts index 45943e762dcb3..b4f3cb2678208 100644 --- a/packages/nx/src/utils/package-json.ts +++ b/packages/nx/src/utils/package-json.ts @@ -1,4 +1,4 @@ -import { TargetConfiguration } from '../shared/workspace'; +import { TargetConfiguration } from '../config/workspace-json-project-json'; export type PackageJsonTargetConfiguration = Omit< TargetConfiguration, diff --git a/packages/nx/src/utils/params.spec.ts b/packages/nx/src/utils/params.spec.ts index eab39d6627683..3d619d8bed986 100644 --- a/packages/nx/src/utils/params.spec.ts +++ b/packages/nx/src/utils/params.spec.ts @@ -13,7 +13,7 @@ import { validateOptsAgainstSchema, warnDeprecations, } from './params'; -import { TargetConfiguration } from '../shared/workspace'; +import { TargetConfiguration } from '../config/workspace-json-project-json'; describe('params', () => { describe('combineOptionsForExecutor', () => { diff --git a/packages/nx/src/utils/params.ts b/packages/nx/src/utils/params.ts index c1fd6b1609703..51981bf55c36f 100644 --- a/packages/nx/src/utils/params.ts +++ b/packages/nx/src/utils/params.ts @@ -1,10 +1,9 @@ -import type { Arguments } from 'yargs-parser'; +import { logger } from './logger'; +import { NxJsonConfiguration } from '../config/nx-json'; import { TargetConfiguration, WorkspaceJsonConfiguration, -} from '../shared/workspace'; -import { logger } from './logger'; -import { NxJsonConfiguration } from '../shared/nx'; +} from '../config/workspace-json-project-json'; type PropertyDescription = { type?: string | string[]; diff --git a/packages/nx/src/utils/plugins/installed-plugins.ts b/packages/nx/src/utils/plugins/installed-plugins.ts index 00de14a5a69f7..656ce0092c617 100644 --- a/packages/nx/src/utils/plugins/installed-plugins.ts +++ b/packages/nx/src/utils/plugins/installed-plugins.ts @@ -3,7 +3,7 @@ import { output } from '../output'; import type { CommunityPlugin, CorePlugin, PluginCapabilities } from './models'; import { getPluginCapabilities } from './plugin-capabilities'; import { hasElements } from './shared'; -import { readJsonFile } from 'nx/src/utils/fileutils'; +import { readJsonFile } from '../fileutils'; export function getInstalledPluginsFromPackageJson( workspaceRoot: string, diff --git a/packages/nx/src/utils/plugins/plugin-capabilities.ts b/packages/nx/src/utils/plugins/plugin-capabilities.ts index ffb76b89c230b..9d51f1f34a88d 100644 --- a/packages/nx/src/utils/plugins/plugin-capabilities.ts +++ b/packages/nx/src/utils/plugins/plugin-capabilities.ts @@ -1,10 +1,10 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from '../app-root'; import * as chalk from 'chalk'; import { dirname, join } from 'path'; import { output } from '../output'; import type { PluginCapabilities } from './models'; import { hasElements } from './shared'; -import { readJsonFile } from 'nx/src/utils/fileutils'; +import { readJsonFile } from '../fileutils'; import { getPackageManagerCommand } from '../package-manager'; function tryGetCollection( diff --git a/packages/nx/src/utils/project-graph-utils.spec.ts b/packages/nx/src/utils/project-graph-utils.spec.ts index 8c49a94e8b926..c268429ca888c 100644 --- a/packages/nx/src/utils/project-graph-utils.spec.ts +++ b/packages/nx/src/utils/project-graph-utils.spec.ts @@ -1,5 +1,5 @@ -import { PackageJson } from 'nx/src/utils/package-json'; -import { ProjectGraph } from '../shared/project-graph'; +import { PackageJson } from './package-json'; +import { ProjectGraph } from '../config/project-graph'; import { getProjectNameFromDirPath, getSourceDirOfDependentProjects, diff --git a/packages/nx/src/utils/project-graph-utils.ts b/packages/nx/src/utils/project-graph-utils.ts index 0221c039b4fd8..41c3063a86318 100644 --- a/packages/nx/src/utils/project-graph-utils.ts +++ b/packages/nx/src/utils/project-graph-utils.ts @@ -1,10 +1,10 @@ -import { buildTargetFromScript, PackageJson } from 'nx/src/utils/package-json'; +import { buildTargetFromScript, PackageJson } from './package-json'; import { join, relative } from 'path'; -import { ProjectGraph, ProjectGraphProjectNode } from '../shared/project-graph'; -import { TargetConfiguration } from '../shared/workspace'; -import { readJsonFile } from 'nx/src/utils/fileutils'; -import { normalizePath } from 'nx/src/utils/path'; -import { readCachedProjectGraph } from '../core/project-graph/project-graph'; +import { ProjectGraph, ProjectGraphProjectNode } from '../config/project-graph'; +import { readJsonFile } from './fileutils'; +import { normalizePath } from './path'; +import { readCachedProjectGraph } from '../project-graph/project-graph'; +import { TargetConfiguration } from '../config/workspace-json-project-json'; export function projectHasTarget( project: ProjectGraphProjectNode, diff --git a/packages/nx/src/core/target-project-locator.spec.ts b/packages/nx/src/utils/target-project-locator.spec.ts similarity index 99% rename from packages/nx/src/core/target-project-locator.spec.ts rename to packages/nx/src/utils/target-project-locator.spec.ts index a3411c883f2ee..26e0f7111dfc8 100644 --- a/packages/nx/src/core/target-project-locator.spec.ts +++ b/packages/nx/src/utils/target-project-locator.spec.ts @@ -4,7 +4,7 @@ import { ProjectGraphExternalNode, ProjectGraphProcessorContext, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; +} from '../config/project-graph'; jest.mock('nx/src/utils/app-root', () => ({ workspaceRoot: '/root', diff --git a/packages/nx/src/core/target-project-locator.ts b/packages/nx/src/utils/target-project-locator.ts similarity index 95% rename from packages/nx/src/core/target-project-locator.ts rename to packages/nx/src/utils/target-project-locator.ts index 7d60e8f7bd31a..8b207fafe07ca 100644 --- a/packages/nx/src/core/target-project-locator.ts +++ b/packages/nx/src/utils/target-project-locator.ts @@ -1,16 +1,13 @@ -import { - getRootTsConfigFileName, - resolveModuleByImport, -} from '../utils/typescript'; -import { isRelativePath } from '../utils/fileutils'; +import { getRootTsConfigFileName, resolveModuleByImport } from './typescript'; +import { isRelativePath } from './fileutils'; import { dirname, join, posix } from 'path'; -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from './app-root'; import { readFileSync } from 'fs'; import { ProjectGraphExternalNode, ProjectGraphProjectNode, -} from 'nx/src/shared/project-graph'; -import { parseJson } from 'nx/src/utils/json'; +} from '../config/project-graph'; +import { parseJson } from './json'; export class TargetProjectLocator { private projectRootMappings = createProjectRootMappings(this.nodes); diff --git a/packages/nx/src/utils/typescript.ts b/packages/nx/src/utils/typescript.ts index 4d3b160f2addc..8993fc5ea118c 100644 --- a/packages/nx/src/utils/typescript.ts +++ b/packages/nx/src/utils/typescript.ts @@ -1,4 +1,4 @@ -import { workspaceRoot } from 'nx/src/utils/app-root'; +import { workspaceRoot } from './app-root'; import { existsSync } from 'fs'; import { dirname, join } from 'path'; import type * as ts from 'typescript'; diff --git a/packages/react-native/src/generators/stories/stories-lib.spec.ts b/packages/react-native/src/generators/stories/stories-lib.spec.ts index 2b531a67281cb..a94c141117100 100644 --- a/packages/react-native/src/generators/stories/stories-lib.spec.ts +++ b/packages/react-native/src/generators/stories/stories-lib.spec.ts @@ -45,7 +45,7 @@ describe('react-native:stories for libraries', () => { }); // create another component appTree.write( - 'libs/test-ui-lib/src/lib/some-utils.ts', + 'libs/test-ui-lib/src/lib/some-command-line-utils.ts', `export const add = (a: number, b: number) => a + b;` ); diff --git a/packages/tao/src/shared/nx.ts b/packages/tao/src/shared/nx.ts index 4cb78e3c593be..bae4793a4217b 100644 --- a/packages/tao/src/shared/nx.ts +++ b/packages/tao/src/shared/nx.ts @@ -1 +1 @@ -export * from 'nx/src/shared/nx'; +export * from 'nx/src/config/nx-json'; diff --git a/packages/tao/src/shared/project-graph.ts b/packages/tao/src/shared/project-graph.ts index aa56155eefae2..864b5462a7c6b 100644 --- a/packages/tao/src/shared/project-graph.ts +++ b/packages/tao/src/shared/project-graph.ts @@ -1 +1 @@ -export * from 'nx/src/shared/project-graph'; +export * from 'nx/src/config/project-graph'; diff --git a/packages/tao/src/shared/tree.ts b/packages/tao/src/shared/tree.ts index fd231b6633fc0..99409b54a5114 100644 --- a/packages/tao/src/shared/tree.ts +++ b/packages/tao/src/shared/tree.ts @@ -1 +1 @@ -export * from 'nx/src/shared/tree'; +export * from 'nx/src/config/tree'; diff --git a/packages/tao/src/shared/workspace.ts b/packages/tao/src/shared/workspace.ts index d271a8a8f26dd..1a77ede0ec582 100644 --- a/packages/tao/src/shared/workspace.ts +++ b/packages/tao/src/shared/workspace.ts @@ -1 +1 @@ -export * from 'nx/src/shared/workspace'; +export * from 'nx/src/config/workspaces'; diff --git a/packages/workspace/index.ts b/packages/workspace/index.ts index bdc067877f1ee..04a24315c8acd 100644 --- a/packages/workspace/index.ts +++ b/packages/workspace/index.ts @@ -21,8 +21,8 @@ export { readNxJson, readWorkspaceConfig, readPackageJson, -} from 'nx/src/core/file-utils'; -export { ProjectGraphCache } from 'nx/src/core/nx-deps/nx-deps-cache'; +} from 'nx/src/project-graph/file-utils'; +export { ProjectGraphCache } from 'nx/src/project-graph/nx-deps-cache'; export { readJsonInTree, updateJsonInTree, diff --git a/packages/workspace/src/core/file-utils.ts b/packages/workspace/src/core/file-utils.ts index 7077efb9560bc..652835861ffbb 100644 --- a/packages/workspace/src/core/file-utils.ts +++ b/packages/workspace/src/core/file-utils.ts @@ -1 +1 @@ -export * from 'nx/src/core/file-utils'; +export * from 'nx/src/project-graph/file-utils'; diff --git a/packages/workspace/src/core/project-graph.ts b/packages/workspace/src/core/project-graph.ts index dabc3524be196..693beb9f7b779 100644 --- a/packages/workspace/src/core/project-graph.ts +++ b/packages/workspace/src/core/project-graph.ts @@ -1 +1 @@ -export * from 'nx/src/core/project-graph/project-graph'; +export * from 'nx/src/project-graph/project-graph'; diff --git a/packages/workspace/src/generators/workspace/workspace.ts b/packages/workspace/src/generators/workspace/workspace.ts index d8b1638192e47..6d95be3f98012 100644 --- a/packages/workspace/src/generators/workspace/workspace.ts +++ b/packages/workspace/src/generators/workspace/workspace.ts @@ -16,7 +16,7 @@ import { } from '../../utils/versions'; import { readFileSync } from 'fs'; import { join, join as pathJoin } from 'path'; -import { reformattedWorkspaceJsonOrNull } from 'nx/src/shared/workspace'; +import { reformattedWorkspaceJsonOrNull } from 'nx/src/config/workspaces'; import { Preset } from '../utils/presets'; import { deduceDefaultBase } from '../../utilities/default-base'; diff --git a/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.spec.ts b/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.spec.ts index c8f606589eade..652bef42e0658 100644 --- a/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.spec.ts +++ b/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.spec.ts @@ -3,7 +3,7 @@ import { RuleFailure } from 'tslint'; import * as ts from 'typescript'; import { Rule } from './nxEnforceModuleBoundariesRule'; import { DependencyType, FileData, ProjectGraph } from '@nrwl/devkit'; -import { TargetProjectLocator } from 'nx/src/core/target-project-locator'; +import { TargetProjectLocator } from 'nx/src/utils/target-project-locator'; import { mapProjectGraphFiles } from '@nrwl/workspace/src/utils/runtime-lint-utils'; jest.mock('fs', () => require('memfs').fs); diff --git a/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.ts b/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.ts index 20c3685d64f49..4005fcedae04e 100644 --- a/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.ts +++ b/packages/workspace/src/tslint/nxEnforceModuleBoundariesRule.ts @@ -26,7 +26,7 @@ import { isAngularSecondaryEntrypoint, } from '../utils/runtime-lint-utils'; import { normalize } from 'path'; -import { TargetProjectLocator } from 'nx/src/core/target-project-locator'; +import { TargetProjectLocator } from 'nx/src/utils/target-project-locator'; import { checkCircularPath, findFilesInCircularPath, diff --git a/packages/workspace/src/utilities/buildable-libs-utils.ts b/packages/workspace/src/utilities/buildable-libs-utils.ts index cd386be7721ae..73e8af58d6d1a 100644 --- a/packages/workspace/src/utilities/buildable-libs-utils.ts +++ b/packages/workspace/src/utilities/buildable-libs-utils.ts @@ -11,7 +11,7 @@ import { import * as ts from 'typescript'; import { unlinkSync } from 'fs'; import { output } from './output'; -import { isNpmProject } from 'nx/src/core/project-graph/operators'; +import { isNpmProject } from 'nx/src/project-graph/operators'; function isBuildable(target: string, node: ProjectGraphProjectNode): boolean { return ( diff --git a/packages/workspace/src/utilities/generate-globs.ts b/packages/workspace/src/utilities/generate-globs.ts index 06c81ad310456..3a3638b567e91 100644 --- a/packages/workspace/src/utilities/generate-globs.ts +++ b/packages/workspace/src/utilities/generate-globs.ts @@ -1,7 +1,7 @@ import { joinPathFragments } from '@nrwl/devkit'; import { workspaceRoot } from 'nx/src/utils/app-root'; import { relative, resolve } from 'path'; -import { readCachedProjectGraph } from 'nx/src/core/project-graph/project-graph'; +import { readCachedProjectGraph } from 'nx/src/project-graph/project-graph'; import { getProjectNameFromDirPath, getSourceDirOfDependentProjects, diff --git a/packages/workspace/src/utils/rules/format-files.spec.ts b/packages/workspace/src/utils/rules/format-files.spec.ts index 5353c785a00c3..8d46a55565460 100644 --- a/packages/workspace/src/utils/rules/format-files.spec.ts +++ b/packages/workspace/src/utils/rules/format-files.spec.ts @@ -3,7 +3,7 @@ import { Tree } from '@angular-devkit/schematics'; import * as prettier from 'prettier'; import * as path from 'path'; -import * as nxWorkspace from 'nx/src/shared/workspace'; +import * as nxWorkspace from 'nx/src/config/workspaces'; import { formatFiles } from './format-files'; import { workspaceRoot } from '@nrwl/devkit'; diff --git a/packages/workspace/src/utils/rules/format-files.ts b/packages/workspace/src/utils/rules/format-files.ts index ee5777c17f847..41f68cf6e2463 100644 --- a/packages/workspace/src/utils/rules/format-files.ts +++ b/packages/workspace/src/utils/rules/format-files.ts @@ -13,7 +13,7 @@ import { workspaceRoot } from '@nrwl/devkit'; import { reformattedWorkspaceJsonOrNull, workspaceConfigName, -} from 'nx/src/shared/workspace'; +} from 'nx/src/config/workspaces'; import { parseJson, serializeJson } from '@nrwl/devkit'; export function formatFiles( diff --git a/packages/workspace/src/utils/runtime-lint-utils.ts b/packages/workspace/src/utils/runtime-lint-utils.ts index a5367d5bb6239..fa39ccbe5583c 100644 --- a/packages/workspace/src/utils/runtime-lint-utils.ts +++ b/packages/workspace/src/utils/runtime-lint-utils.ts @@ -14,8 +14,8 @@ import { join } from 'path'; import { workspaceRoot } from './app-root'; import { getPath, pathExists } from './graph-utils'; import { existsSync } from 'fs'; -import { readFileIfExisting } from 'nx/src/core/file-utils'; -import { TargetProjectLocator } from 'nx/src/core/target-project-locator'; +import { readFileIfExisting } from 'nx/src/project-graph/file-utils'; +import { TargetProjectLocator } from 'nx/src/utils/target-project-locator'; export type MappedProjectGraphNode = ProjectGraphProjectNode & { data: { diff --git a/scripts/check-imports.js b/scripts/check-imports.js index 2e5c95ee517f9..63cd8317cb4a2 100644 --- a/scripts/check-imports.js +++ b/scripts/check-imports.js @@ -26,12 +26,12 @@ function allFilesInDir(dirName) { function check() { const exceptions = [ - 'packages/create-nx-workspace/bin/create-nx-workspace.ts', + 'packages/create-nx-workspace/bin/create-nx-workspaces.ts', 'packages/create-nx-plugin/bin/create-nx-plugin.ts', 'packages/workspace/src/command-line/affected.ts', 'packages/workspace/src/command-line/report.ts', 'packages/workspace/src/command-line/report.spec.ts', - 'packages/workspace/src/core/file-utils.ts', + 'packages/workspace/src/core/file-command-line-utils.ts', 'packages/workspace/src/generators/preset/preset.ts', 'packages/workspace/src/generators/init/init.ts', 'packages/workspace/src/utils/update-task.ts',