From 6b43833d2ca03e4caafd56b163c99d4d159fb4f5 Mon Sep 17 00:00:00 2001 From: Emily Xiong Date: Thu, 3 Aug 2023 13:36:28 -0400 Subject: [PATCH] chore(core): move relativeCwd out of workspaces (#18229) --- packages/devkit/src/executors/read-target-options.ts | 4 +++- packages/nx/src/adapter/angular-json.ts | 1 - packages/nx/src/command-line/generate/generate.ts | 9 ++------- packages/nx/src/command-line/run/run.ts | 10 ++-------- packages/nx/src/config/workspaces.ts | 4 ---- 5 files changed, 7 insertions(+), 21 deletions(-) diff --git a/packages/devkit/src/executors/read-target-options.ts b/packages/devkit/src/executors/read-target-options.ts index bf9758eb477ac0..bfe96da0a53605 100644 --- a/packages/devkit/src/executors/read-target-options.ts +++ b/packages/devkit/src/executors/read-target-options.ts @@ -3,6 +3,7 @@ import type { ExecutorContext } from 'nx/src/config/misc-interfaces'; // eslint-disable-next-line @typescript-eslint/no-restricted-imports import { combineOptionsForExecutor } from 'nx/src/utils/params'; import { requireNx } from '../../nx'; +import { relative } from 'path'; const { Workspaces, getExecutorInformation, calculateDefaultProjectName } = requireNx(); @@ -21,6 +22,7 @@ export function readTargetOptions( ).projects[project]; const targetConfiguration = projectConfiguration.targets[target]; + // TODO(v18): remove Workspaces. const ws = new Workspaces(context.root); const [nodeModule, executorName] = targetConfiguration.executor.split(':'); const { schema } = getExecutorInformation @@ -48,6 +50,6 @@ export function readTargetOptions( targetConfiguration, schema, defaultProject, - ws.relativeCwd(context.cwd) + relative(context.cwd, context.root) ) as T; } diff --git a/packages/nx/src/adapter/angular-json.ts b/packages/nx/src/adapter/angular-json.ts index 19c88d01a40687..66c5350f6789a7 100644 --- a/packages/nx/src/adapter/angular-json.ts +++ b/packages/nx/src/adapter/angular-json.ts @@ -6,7 +6,6 @@ import { ProjectsConfigurations, } from '../config/workspace-json-project-json'; import { renamePropertyWithStableKeys } from '../config/workspaces'; -import { workspaceRoot } from '../utils/workspace-root'; export function shouldMergeAngularProjects( root: string, diff --git a/packages/nx/src/command-line/generate/generate.ts b/packages/nx/src/command-line/generate/generate.ts index 57b4c901f3830f..21faa0eab8388d 100644 --- a/packages/nx/src/command-line/generate/generate.ts +++ b/packages/nx/src/command-line/generate/generate.ts @@ -1,9 +1,9 @@ import * as chalk from 'chalk'; import { prompt } from 'enquirer'; +import { relative } from 'path'; import { readNxJson } from '../../config/configuration'; import { ProjectsConfigurations } from '../../config/workspace-json-project-json'; -import { Workspaces } from '../../config/workspaces'; import { FileChange, flushChanges, FsTree } from '../../generators/tree'; import { createProjectGraphAsync, @@ -51,7 +51,6 @@ export function printChanges(fileChanges: FileChange[]) { async function promptForCollection( generatorName: string, - ws: Workspaces, interactive: boolean, projectsConfiguration: ProjectsConfigurations ): Promise { @@ -202,7 +201,6 @@ function parseGeneratorString(value: string): { async function convertToGenerateOptions( generatorOptions: { [p: string]: any }, - ws: Workspaces, defaultCollectionName: string, mode: 'generate' | 'new', projectsConfiguration?: ProjectsConfigurations @@ -221,7 +219,6 @@ async function convertToGenerateOptions( } else if (!defaultCollectionName) { const generatorString = await promptForCollection( generatorDescriptor, - ws, interactive, projectsConfiguration ); @@ -302,7 +299,6 @@ export async function generate(cwd: string, args: { [k: string]: any }) { } const verbose = process.env.NX_VERBOSE_LOGGING === 'true'; - const ws = new Workspaces(workspaceRoot); const nxJsonConfiguration = readNxJson(); const projectGraph = await createProjectGraphAsync({ exitOnError: true }); const projectsConfigurations = @@ -311,7 +307,6 @@ export async function generate(cwd: string, args: { [k: string]: any }) { return handleErrors(verbose, async () => { const opts = await convertToGenerateOptions( args, - ws, readDefaultCollection(nxJsonConfiguration), 'generate', projectsConfigurations @@ -366,7 +361,7 @@ export async function generate(cwd: string, args: { [k: string]: any }) { projectsConfigurations, nxJsonConfiguration ), - ws.relativeCwd(cwd), + relative(cwd, workspaceRoot), verbose ); diff --git a/packages/nx/src/command-line/run/run.ts b/packages/nx/src/command-line/run/run.ts index e6fd53a211b5b5..a5c9a84be5fcf4 100644 --- a/packages/nx/src/command-line/run/run.ts +++ b/packages/nx/src/command-line/run/run.ts @@ -4,11 +4,10 @@ import { Schema, } from '../../utils/params'; import { printHelp } from '../../utils/print-help'; -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'; +import { join, relative } from 'path'; import { existsSync } from 'fs'; import { loadNxPlugins, @@ -111,7 +110,6 @@ function createImplicitTargetConfig( } async function parseExecutorAndTarget( - ws: Workspaces, { project, target, configuration }: Target, root: string, projectsConfigurations: ProjectsConfigurations, @@ -147,9 +145,7 @@ async function printTargetRunHelpInternal( projectsConfigurations: ProjectsConfigurations, nxJsonConfiguration: NxJsonConfiguration ) { - const ws = new Workspaces(root); const { executor, nodeModule, schema } = await parseExecutorAndTarget( - ws, { project, target, configuration }, root, projectsConfigurations, @@ -176,10 +172,8 @@ async function runExecutorInternal( ): Promise> { validateProject(projectsConfigurations, project); - const ws = new Workspaces(root); const { executor, implementationFactory, nodeModule, schema, targetConfig } = await parseExecutorAndTarget( - ws, { project, target, configuration }, root, projectsConfigurations, @@ -193,7 +187,7 @@ async function runExecutorInternal( targetConfig, schema, project, - ws.relativeCwd(cwd), + relative(cwd, root), isVerbose ); diff --git a/packages/nx/src/config/workspaces.ts b/packages/nx/src/config/workspaces.ts index 8febcdb540a542..56605ef1d9bfc2 100644 --- a/packages/nx/src/config/workspaces.ts +++ b/packages/nx/src/config/workspaces.ts @@ -27,10 +27,6 @@ export class Workspaces { constructor(private root: string) {} - relativeCwd(cwd: string) { - return path.relative(this.root, cwd).replace(/\\/g, '/') || null; - } - /** * @deprecated */