From 87ffb1bd95e611a22d781339a0a82bf029ce8ac9 Mon Sep 17 00:00:00 2001 From: FrozenPandaz Date: Tue, 20 Aug 2024 17:32:16 -0400 Subject: [PATCH] fix(core): use withVerbose util --- packages/nx/src/command-line/add/add.ts | 7 +----- .../nx/src/command-line/add/command-object.ts | 9 ++------ .../command-line/generate/command-object.ts | 8 ++----- .../src/command-line/import/command-object.ts | 9 +++----- .../command-line/release/command-object.ts | 8 ++----- .../src/command-line/repair/command-object.ts | 8 ++----- packages/nx/src/command-line/repair/repair.ts | 8 ++----- .../src/command-line/show/command-object.ts | 22 +++++++------------ .../src/command-line/sync/command-object.ts | 15 +++---------- packages/nx/src/command-line/sync/sync.ts | 7 +----- .../src/command-line/watch/command-object.ts | 4 ++-- .../yargs-utils/shared-options.ts | 1 + 12 files changed, 29 insertions(+), 77 deletions(-) diff --git a/packages/nx/src/command-line/add/add.ts b/packages/nx/src/command-line/add/add.ts index 20c771b43d17ee..82e829f291fa0f 100644 --- a/packages/nx/src/command-line/add/add.ts +++ b/packages/nx/src/command-line/add/add.ts @@ -17,12 +17,7 @@ import type { AddOptions } from './command-object'; import { normalizeVersionForNxJson } from '../init/implementation/dot-nx/add-nx-scripts'; export function addHandler(options: AddOptions): Promise { - if (options.verbose) { - process.env.NX_VERBOSE_LOGGING = 'true'; - } - const isVerbose = process.env.NX_VERBOSE_LOGGING === 'true'; - - return handleErrors(isVerbose, async () => { + return handleErrors(options.verbose, async () => { output.addNewline(); const [pkgName, version] = parsePackageSpecifier(options.packageSpecifier); diff --git a/packages/nx/src/command-line/add/command-object.ts b/packages/nx/src/command-line/add/command-object.ts index a06d51dd2ae2f5..266d41902f10a0 100644 --- a/packages/nx/src/command-line/add/command-object.ts +++ b/packages/nx/src/command-line/add/command-object.ts @@ -1,5 +1,5 @@ import { CommandModule } from 'yargs'; -import { withOverrides } from '../yargs-utils/shared-options'; +import { withOverrides, withVerbose } from '../yargs-utils/shared-options'; export interface AddOptions { packageSpecifier: string; @@ -15,7 +15,7 @@ export const yargsAddCommand: CommandModule< command: 'add ', describe: 'Install a plugin and initialize it.', builder: (yargs) => - yargs + withVerbose(yargs) .parserConfiguration({ 'strip-dashed': true, 'unknown-options-as-args': true, @@ -30,11 +30,6 @@ export const yargsAddCommand: CommandModule< description: 'Update `package.json` scripts with inferred targets. Defaults to `true` when the package is a core Nx plugin', }) - .option('verbose', { - type: 'boolean', - description: - 'Prints additional information about the commands (e.g., stack traces)', - }) .example( '$0 add @nx/react', 'Install the latest version of the `@nx/react` package and run its `@nx/react:init` generator' diff --git a/packages/nx/src/command-line/generate/command-object.ts b/packages/nx/src/command-line/generate/command-object.ts index 707b68bace404b..de6fefbf38fa0a 100644 --- a/packages/nx/src/command-line/generate/command-object.ts +++ b/packages/nx/src/command-line/generate/command-object.ts @@ -1,6 +1,7 @@ import { CommandModule, Argv } from 'yargs'; import { getCwd } from '../../utils/path'; import { linkToNxDevAndExamples } from '../yargs-utils/documentation'; +import { withVerbose } from '../yargs-utils/shared-options'; export const yargsGenerateCommand: CommandModule = { command: 'generate [_..]', @@ -19,7 +20,7 @@ export const yargsGenerateCommand: CommandModule = { function withGenerateOptions(yargs: Argv) { const generatorWillShowHelp = process.argv[3] && !process.argv[3].startsWith('-'); - const res = yargs + const res = withVerbose(yargs) .positional('generator', { describe: 'Name of the generator (e.g., @nx/js:library, library)', type: 'string', @@ -36,11 +37,6 @@ function withGenerateOptions(yargs: Argv) { type: 'boolean', default: true, }) - .option('verbose', { - describe: - 'Prints additional information about the commands (e.g., stack traces)', - type: 'boolean', - }) .option('quiet', { describe: 'Hides logs from tree operations (e.g. `CREATE package.json`)', type: 'boolean', diff --git a/packages/nx/src/command-line/import/command-object.ts b/packages/nx/src/command-line/import/command-object.ts index c3b9971b74737d..0158249d091028 100644 --- a/packages/nx/src/command-line/import/command-object.ts +++ b/packages/nx/src/command-line/import/command-object.ts @@ -37,12 +37,9 @@ export const yargsImportCommand: CommandModule = { 'import' ), handler: async (args) => { - const exitCode = await handleErrors( - (args.verbose as boolean) ?? process.env.NX_VERBOSE_LOGGING === 'true', - async () => { - return (await import('./import')).importHandler(args as any); - } - ); + const exitCode = await handleErrors(args.verbose as boolean, async () => { + return (await import('./import')).importHandler(args as any); + }); process.exit(exitCode); }, }; diff --git a/packages/nx/src/command-line/release/command-object.ts b/packages/nx/src/command-line/release/command-object.ts index d1c197806bc5ee..64f27d17342791 100644 --- a/packages/nx/src/command-line/release/command-object.ts +++ b/packages/nx/src/command-line/release/command-object.ts @@ -10,6 +10,7 @@ import { withOutputStyleOption, withOverrides, withRunManyOptions, + withVerbose, } from '../yargs-utils/shared-options'; import { VersionData } from './utils/shared'; @@ -102,7 +103,7 @@ export const yargsReleaseCommand: CommandModule< describe: 'Orchestrate versioning and publishing of applications and libraries', builder: (yargs) => - yargs + withVerbose(yargs) .command(releaseCommand) .command(versionCommand) .command(changelogCommand) @@ -133,11 +134,6 @@ export const yargsReleaseCommand: CommandModule< type: 'boolean', default: false, }) - .option('verbose', { - type: 'boolean', - describe: - 'Prints additional information about the commands (e.g., stack traces)', - }) // NOTE: The camel case format is required for the coerce() function to be called correctly. It still supports --print-config casing. .option('printConfig', { type: 'string', diff --git a/packages/nx/src/command-line/repair/command-object.ts b/packages/nx/src/command-line/repair/command-object.ts index 1fec2ead98bd14..563abe7589620a 100644 --- a/packages/nx/src/command-line/repair/command-object.ts +++ b/packages/nx/src/command-line/repair/command-object.ts @@ -1,5 +1,6 @@ import { ArgumentsCamelCase, CommandModule } from 'yargs'; import { linkToNxDevAndExamples } from '../yargs-utils/documentation'; +import { withVerbose } from '../yargs-utils/shared-options'; export const yargsRepairCommand: CommandModule = { command: 'repair', @@ -13,12 +14,7 @@ export const yargsRepairCommand: CommandModule = { If your repository has only ever updated to newer versions of Nx with \`nx migrate\`, running \`nx repair\` should do nothing. `, - builder: (yargs) => - linkToNxDevAndExamples(yargs, 'repair').option('verbose', { - type: 'boolean', - describe: - 'Prints additional information about the commands (e.g., stack traces)', - }), + builder: (yargs) => linkToNxDevAndExamples(withVerbose(yargs), 'repair'), handler: async (args: ArgumentsCamelCase<{ verbose: boolean }>) => process.exit(await (await import('./repair')).repair(args)), }; diff --git a/packages/nx/src/command-line/repair/repair.ts b/packages/nx/src/command-line/repair/repair.ts index 204223a427c004..cae45407694917 100644 --- a/packages/nx/src/command-line/repair/repair.ts +++ b/packages/nx/src/command-line/repair/repair.ts @@ -7,11 +7,7 @@ export async function repair( args: { verbose: boolean }, extraMigrations = [] as any[] ) { - if (args['verbose']) { - process.env.NX_VERBOSE_LOGGING = 'true'; - } - const verbose = process.env.NX_VERBOSE_LOGGING === 'true'; - return handleErrors(verbose, async () => { + return handleErrors(args.verbose, async () => { const nxMigrations = Object.entries(migrationsJson.generators).reduce( (agg, [name, migration]) => { const skip = migration['x-repair-skip']; @@ -33,7 +29,7 @@ export async function repair( const migrationsThatMadeNoChanges = await executeMigrations( process.cwd(), migrations, - verbose, + args.verbose, false, '' ); diff --git a/packages/nx/src/command-line/show/command-object.ts b/packages/nx/src/command-line/show/command-object.ts index aacc0e9f62ba57..07e32293e11cc8 100644 --- a/packages/nx/src/command-line/show/command-object.ts +++ b/packages/nx/src/command-line/show/command-object.ts @@ -124,13 +124,10 @@ const showProjectsCommand: CommandModule = { 'Show affected projects in the workspace, excluding end-to-end projects' ) as any, handler: async (args) => { - const exitCode = await handleErrors( - args.verbose ?? process.env.NX_VERBOSE_LOGGING === 'true', - async () => { - const { showProjectsHandler } = await import('./projects'); - await showProjectsHandler(args); - } - ); + const exitCode = await handleErrors(args.verbose as boolean, async () => { + const { showProjectsHandler } = await import('./projects'); + await showProjectsHandler(args); + }); process.exit(exitCode); }, }; @@ -178,13 +175,10 @@ const showProjectCommand: CommandModule = { 'View project information for my-app in the browser' ), handler: async (args) => { - const exitCode = await handleErrors( - args.verbose ?? process.env.NX_VERBOSE_LOGGING === 'true', - async () => { - const { showProjectHandler } = await import('./project'); - await showProjectHandler(args); - } - ); + const exitCode = await handleErrors(args.verbose as boolean, async () => { + const { showProjectHandler } = await import('./project'); + await showProjectHandler(args); + }); process.exit(exitCode); }, }; diff --git a/packages/nx/src/command-line/sync/command-object.ts b/packages/nx/src/command-line/sync/command-object.ts index 238ad559b5a989..8688891bb87fc9 100644 --- a/packages/nx/src/command-line/sync/command-object.ts +++ b/packages/nx/src/command-line/sync/command-object.ts @@ -1,4 +1,5 @@ import type { CommandModule } from 'yargs'; +import { withVerbose } from '../yargs-utils/shared-options'; export interface SyncArgs { verbose?: boolean; @@ -10,12 +11,7 @@ export const yargsSyncCommand: CommandModule< > = { command: 'sync', describe: false, - builder: (yargs) => - yargs.option('verbose', { - type: 'boolean', - description: - 'Prints additional information about the commands (e.g., stack traces)', - }), + builder: (yargs) => withVerbose(yargs), handler: async (args) => { process.exit(await import('./sync').then((m) => m.syncHandler(args))); }, @@ -27,12 +23,7 @@ export const yargsSyncCheckCommand: CommandModule< > = { command: 'sync:check', describe: false, - builder: (yargs) => - yargs.option('verbose', { - type: 'boolean', - description: - 'Prints additional information about the commands (e.g., stack traces)', - }), + builder: (yargs) => withVerbose(yargs), handler: async (args) => { process.exit( await import('./sync').then((m) => diff --git a/packages/nx/src/command-line/sync/sync.ts b/packages/nx/src/command-line/sync/sync.ts index 2416d8f9e20c4e..4f35112af5807b 100644 --- a/packages/nx/src/command-line/sync/sync.ts +++ b/packages/nx/src/command-line/sync/sync.ts @@ -16,12 +16,7 @@ interface SyncOptions extends SyncArgs { } export function syncHandler(options: SyncOptions): Promise { - if (options.verbose) { - process.env.NX_VERBOSE_LOGGING = 'true'; - } - const isVerbose = process.env.NX_VERBOSE_LOGGING === 'true'; - - return handleErrors(isVerbose, async () => { + return handleErrors(options.verbose, async () => { const projectGraph = await createProjectGraphAsync(); const syncGenerators = await collectAllRegisteredSyncGenerators( projectGraph diff --git a/packages/nx/src/command-line/watch/command-object.ts b/packages/nx/src/command-line/watch/command-object.ts index b6e7f002720b55..77fb291537bea5 100644 --- a/packages/nx/src/command-line/watch/command-object.ts +++ b/packages/nx/src/command-line/watch/command-object.ts @@ -1,7 +1,7 @@ import { Argv, CommandModule } from 'yargs'; import { WatchArguments } from './watch'; import { linkToNxDevAndExamples } from '../yargs-utils/documentation'; -import { parseCSV } from '../yargs-utils/shared-options'; +import { parseCSV, withVerbose } from '../yargs-utils/shared-options'; export const yargsWatchCommand: CommandModule = { command: 'watch', @@ -13,7 +13,7 @@ export const yargsWatchCommand: CommandModule = { }; function withWatchOptions(yargs: Argv) { - return yargs + return withVerbose(yargs) .parserConfiguration({ 'strip-dashed': true, 'populate--': true, diff --git a/packages/nx/src/command-line/yargs-utils/shared-options.ts b/packages/nx/src/command-line/yargs-utils/shared-options.ts index 3e673ab1339b16..4b7da69ec20b55 100644 --- a/packages/nx/src/command-line/yargs-utils/shared-options.ts +++ b/packages/nx/src/command-line/yargs-utils/shared-options.ts @@ -132,6 +132,7 @@ export function withVerbose(yargs: Argv) { type: 'boolean', }) .middleware((args) => { + args.verbose = process.env.NX_VERBOSE_LOGGING === 'true'; if (args.verbose) { process.env.NX_VERBOSE_LOGGING = 'true'; }