diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c8c861555..778b281512 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 ba6f7f5e6f..b74538c54d 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 328238ec37..4993745d54 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 2075ad4f94..3cfcb39eb8 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 e0ef3e38f6..02fadb3c12 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 8b3b341695..3f1cae6b82 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 8f680b5553..c89e7076c2 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 f9f29c3d67..fffbc62adf 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 65d8f13f5e..24fef2a9b4 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 77f96d05c6..f5f3386fcd 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 1eaf23fe00..cbcc85ad35 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 aaaee0dbba..1f42858c3c 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 01ec38ed7f..fe5b1686eb 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 dc73dba1b9..19bcbafa9a 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 b12376800d..082f95d219 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 6ff888d730..7b9e9a8882 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 0fdaf4ea12..ec5a6e0b28 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 2d7bf166f2..ccc8fc6e10 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 399082a28f..7f19f17f3a 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 8e1926e275..c9dbd6962a 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 9e8de78992..c467cf0ab8 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 266bb3a162..6c8dbfdc6f 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 6ed46078ae..b21faa8bab 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 aa613019cf..0d29982744 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 b5068bcfd6..7e62a82e7d 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 c06cc7915b..4464dd5d93 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 fc9596ca77..e9d99e2d36 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 b0acc82b50..ed2b6b7426 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 c76ef258d5..bf5f04dc8c 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 c8b5fcbde3..e376e4c6f3 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 811436af89..f544c28077 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 8df2949fe7..4774020caf 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 d070ba268b..cf0c240eca 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 124978c313..9518f8d8e2 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 80c2bcc35d..ae9f24884a 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 733c6f5dc1..61a987fe72 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 0e0f31516f..2c03482a25 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 71d73b41e0..cc00d19969 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 b8eef81a89..f7df4067a1 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 7c23ea1c3b..3f9bfe8f4d 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 4a9bf58551..d631e4783f 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 1c633d68cf..af655e09cf 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 1e2922436b..192d7717c7 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 cd7ee88d3e..0547619a13 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 b9cc727a6c..04fc5329f5 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 e711f49cbe..9b50db17e3 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 b1e35fd1a1..3d8d569283 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 0000000000..c4eb524cb8 --- /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 ce8602298a..a6b44f164f 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 b2ce0070e9..bbfa8eeadb 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 6b608bc7ec..1d3b395280 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 1024dce377..0e80e0b9bb 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 4a2c17cc4e..7b90893a6c 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 8aadce61b2..57cb9619e8 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 18163a6e2c..f1b4d84f9e 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 0000000000..72e53fe959 --- /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 f034594a24..0fedd594ca 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 39c9df6667..905e31d3ed 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 0000000000..ac5ab5c773 --- /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 b2dc82467d..3a608dda9d 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 da5438e65c..32df94828d 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 895811b820..0000000000 --- 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 741842d980..0000000000 --- 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 7bf15adfdc..8c882cbfc4 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 875717da97..05bfd4a525 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 5a53040713..caea0d6313 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 e6f2efff8e..481ee1da4a 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 c2392777fe..12fceb318f 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 b325a25084..fde7949566 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 28ab11cdae..d61d78c438 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 d0ab52f08e..a914e10a58 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 413bb4df73..d0fc5b01c9 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 0c38a67885..5c1a096841 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 4988d65477..336403841c 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 89f8498055..7104a790d5 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 1cd829d698..ed5e6e182f 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 5d39b679fd..89ffacba30 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 68fc9f9779..00c13b4fb7 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 5053f9a629..aca20b97c4 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 db09d1b949..0e82329526 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 85e2cd7232..900c0db729 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 e32e67fd7e..0a42f5559c 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 f7aab937c7..67c05d5de0 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 a284b2009c..39f5a93336 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 f029217509..30799238a6 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 5a287511a0..a7d60a2223 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 10d1bb822d..ca612d052a 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 d8ff5f392f..4f4f303a07 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 35456f726a..cb8d9b9e76 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 4dada6e6e9..3b60a92b22 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 20c0240bdd..ff2c777d53 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 3e5a666b72..866dd001f5 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 de83c11688..b8c9988444 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 0d9b0fb38b..853e15c7f1 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 29fe24a5b6..1e608f1e9b 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 f7f9e0bc84..673bc089ef 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 1ab1730b2f..8f284c94cd 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 7d42f7bb67..7069b1f7df 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 0776a68add..a958869d4c 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 54cfad3e8e..1e8f4e322e 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 95b8214fd3..8b169ec91b 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 8852ad6280..81f7ad9911 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 efcb14f533..520dd2fbd5 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 76e8abf347..4cd3fa5845 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 cb2256672e..f601b3c4d0 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 2a5b394b1a..b0103981fa 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 09dd8e88e6..c5daabd508 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 a0737f2d64..b2402888cc 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 f36b1eda77..8b30795bc9 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 f1fb9e6bf9..fe952fe7eb 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 78f81a2770..6bed7e4334 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 a0885ef10f..7f6ff00f4e 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 3b9bb42aa9..e6631469de 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 427297314e..ead53c7f80 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 762ccb0e9b..1192a73415 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 1bbe3ecdc2..80c61ada7f 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 a30418ccc2..58cdc88e40 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 adeb93a659..e1faa49b66 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 5bb1e37bf1..d40b3615d2 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 89eb015883..80bccb965f 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 d96814e254..1f4ae0ea56 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 feecfe2a2b..1d57f9568d 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 03662bf9b3..0000000000 --- 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 0a68444114..efdffcb0d1 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 9248efff75..5aa0a1aa35 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 27220a061d..ceb59edbbf 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 3373724ea4..66f9363101 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 d7efeebab6..a9a198da37 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 c5efe4ec6f..5a3a2fbc5c 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 a3e64a0c71..6c2e2e944a 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 a483b1d949..c09177a0bb 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 1587c14474..5a547a90d3 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 2277f80f49..66965a5b6a 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 3403bfc274..25904d2d3c 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 ba7844aa0d..7b1a9984ed 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 6f4e0a1622..18203a422a 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 32c2d72b03..1fa525af6d 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 86b7877b27..5c1ac8881b 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 a723ee63b7..b5ceb2a02f 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 6d2d1dba48..b0b8cefe0e 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 020cbb082d..901432a8cb 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 45943e762d..b4f3cb2678 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 eab39d6627..3d619d8bed 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 c1fd6b1609..51981bf55c 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 00de14a5a6..656ce0092c 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 ffb76b89c2..9d51f1f34a 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 8c49a94e8b..c268429ca8 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 0221c039b4..41c3063a86 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 a3411c883f..26e0f7111d 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 7d60e8f7bd..8b207fafe0 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 4d3b160f2a..8993fc5ea1 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 2b531a6728..a94c141117 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 4cb78e3c59..bae4793a42 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 aa56155eef..864b5462a7 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 fd231b6633..99409b54a5 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 d271a8a8f2..1a77ede0ec 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 bdc067877f..04a24315c8 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 7077efb956..652835861f 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 dabc3524be..693beb9f7b 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 d8b1638192..6d95be3f98 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 c8f606589e..652bef42e0 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 20c3685d64..4005fcedae 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 cd386be772..73e8af58d6 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 06c81ad310..3a3638b567 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 5353c785a0..8d46a55565 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 ee5777c17f..41f68cf6e2 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 a5367d5bb6..fa39ccbe55 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 2e5c95ee51..63cd8317cb 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',