Skip to content

Commit

Permalink
cleanup(core): do not parse unknown args into options
Browse files Browse the repository at this point in the history
  • Loading branch information
leosvelperez committed Apr 17, 2024
1 parent 15b06c9 commit d1f3ab9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 18 deletions.
22 changes: 5 additions & 17 deletions packages/nx/src/command-line/add/add.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,14 @@ async function initializePlugin(
process.env.NX_ADD_PLUGINS !== 'false' &&
coreNxPlugins.includes(pkgName);
}
const extraArgs = getExtraArgs(options);
await runNxAsync(
`g ${pkgName}:${initGenerator} --keepExistingVersions${
updatePackageScripts ? ' --updatePackageScripts' : ''
}${extraArgs.length ? ' ' + extraArgs.join(' ') : ''}`,
}${
options.__overrides_unparsed__.length
? ' ' + options.__overrides_unparsed__.join(' ')
: ''
}`,
{
silent: !options.verbose,
}
Expand Down Expand Up @@ -176,21 +179,6 @@ function parsePackageSpecifier(
return [pkgName, version];
}

const knownCommandArgs = [
'packageSpecifier',
'updatePackageScripts',
'verbose',
'__overrides_unparsed__',
'$0',
];
function getExtraArgs(options: AddOptions): string[] {
const unknownOptions = Object.keys(options)
.filter((p) => knownCommandArgs.indexOf(p) === -1)
.map((p) => `--${p}=${options[p]}`);

return [...options.__overrides_unparsed__, ...unknownOptions];
}

const coreNxPlugins = [
'@nx/angular',
'@nx/cypress',
Expand Down
6 changes: 5 additions & 1 deletion packages/nx/src/command-line/add/command-object.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CommandModule } from 'yargs';
import { withOverrides } from '../yargs-utils/shared-options';

export interface AddOptions extends Record<string, unknown> {
export interface AddOptions {
packageSpecifier: string;
updatePackageScripts?: boolean;
verbose?: boolean;
Expand All @@ -16,6 +16,10 @@ export const yargsAddCommand: CommandModule<
describe: 'Install a plugin and initialize it.',
builder: (yargs) =>
yargs
.parserConfiguration({
'strip-dashed': true,
'unknown-options-as-args': true,
})
.positional('packageSpecifier', {
type: 'string',
description:
Expand Down

0 comments on commit d1f3ab9

Please sign in to comment.