From 694510e21142cfa3c82a052c8a5a810b6fff8d3b Mon Sep 17 00:00:00 2001 From: Victor Savkin Date: Tue, 14 Jun 2022 16:03:22 -0400 Subject: [PATCH] fix(core): handle empty positional overrides --- .../nx/src/utils/command-line-utils.spec.ts | 23 ++++++++++++++++++- packages/nx/src/utils/command-line-utils.ts | 5 +++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/nx/src/utils/command-line-utils.spec.ts b/packages/nx/src/utils/command-line-utils.spec.ts index 9252f1c4673b1..e2e10c8a99315 100644 --- a/packages/nx/src/utils/command-line-utils.spec.ts +++ b/packages/nx/src/utils/command-line-utils.spec.ts @@ -10,7 +10,7 @@ describe('splitArgs', () => { base: 'sha1', head: 'sha2', notNxArg: true, - _: ['--override'], + override: true, $0: '', }, 'affected', @@ -99,6 +99,7 @@ describe('splitArgs', () => { { files: [''], notNxArg: true, + __positional_overrides__: [], $0: '', }, 'affected', @@ -111,6 +112,26 @@ describe('splitArgs', () => { }); }); + it('should split non nx specific arguments into target args (with positonal args)', () => { + expect( + splitArgsIntoNxArgsAndOverrides( + { + files: [''], + notNxArg: true, + __positional_overrides__: ['positional'], + $0: '', + }, + 'affected', + {} as any, + {} as any + ).overrides + ).toEqual({ + _: ['positional'], + __overrides_unparsed__: ['positional', '--notNxArg=true'], + notNxArg: true, + }); + }); + it('should only use explicitly provided overrides', () => { expect( splitArgsIntoNxArgsAndOverrides( diff --git a/packages/nx/src/utils/command-line-utils.ts b/packages/nx/src/utils/command-line-utils.ts index 41946af2c3ca5..3827d9e34522b 100644 --- a/packages/nx/src/utils/command-line-utils.ts +++ b/packages/nx/src/utils/command-line-utils.ts @@ -161,7 +161,10 @@ export function splitArgsIntoNxArgsAndOverrides( } } const overridesFromMainArgs = {} as any; - if (args['__positional_overrides__']) { + if ( + args['__positional_overrides__'] && + args['__positional_overrides__'].length > 0 + ) { overridesFromMainArgs['_'] = args['__positional_overrides__']; } const nxArgs: RawNxArgs = {};