66 */
77
88import { parseVarArgs , Flags , loglevel } from '@salesforce/sf-plugins-core' ;
9- import { Config , Messages , Org , SfError , OrgConfigProperties , SfdxConfigAggregator } from '@salesforce/core' ;
9+ import { Config , Messages , Org , SfError , OrgConfigProperties } from '@salesforce/core' ;
1010import { CONFIG_HELP_SECTION , ConfigCommand , Msg } from '../../config' ;
1111
1212Messages . importMessagesDirectory ( __dirname ) ;
@@ -42,7 +42,10 @@ export class Set extends ConfigCommand<SetConfigCommandResult> {
4242
4343 for ( const name of Object . keys ( parsed ) ) {
4444 const value = parsed [ name ] as string ;
45+ let resolvedName = name ;
4546 try {
47+ // this needs to be inside the try/catch because it can throw an error
48+ resolvedName = this . configAggregator . getPropertyMeta ( name ) ?. newKey ?? name ;
4649 if ( ! value ) {
4750 // Push a failure if users are try to unset a value with `set=`.
4851 this . pushFailure ( name , messages . createError ( 'error.ValueRequired' ) , value ) ;
@@ -51,36 +54,13 @@ export class Set extends ConfigCommand<SetConfigCommandResult> {
5154 // currently no way to validate an org synchronously. Therefore, we have to manually
5255 // validate the org here and manually set the error message if it fails
5356 // eslint-disable-next-line no-await-in-loop
54- if ( isOrgKey ( name ) && value ) await validateOrg ( value ) ;
55- config . set ( name , value ) ;
56- this . setResponses . successes . push ( { name, value, success : true } ) ;
57+ if ( isOrgKey ( resolvedName ) && value ) await validateOrg ( value ) ;
58+ config . set ( resolvedName , value ) ;
59+ this . setResponses . successes . push ( { name : resolvedName , value, success : true } ) ;
5760 }
5861 } catch ( err ) {
5962 const error = err as Error ;
60- if ( error . name === 'DeprecatedConfigKeyError' ) {
61- const newKey = Config . getPropertyConfigMeta ( name ) ?. key ?? name ;
62- try {
63- config . set ( newKey , value ) ;
64- this . setResponses . successes . push ( {
65- name,
66- value,
67- success : true ,
68- error,
69- message : error . message . replace ( / \. \. $ / , '.' ) ,
70- } ) ;
71- } catch ( e ) {
72- const secondError = e as Error ;
73- // if that deprecated value was also set to an invalid value
74- this . setResponses . failures . push ( {
75- name,
76- key : name ,
77- success : false ,
78- value,
79- error : secondError ,
80- message : secondError . message . replace ( / \. \. $ / , '.' ) ,
81- } ) ;
82- }
83- } else if ( error . name . includes ( 'UnknownConfigKeyError' ) ) {
63+ if ( error . name . includes ( 'UnknownConfigKeyError' ) ) {
8464 if ( this . jsonEnabled ( ) ) {
8565 process . exitCode = 1 ;
8666 this . setResponses . failures . push ( {
@@ -101,7 +81,7 @@ export class Set extends ConfigCommand<SetConfigCommandResult> {
10181 }
10282 }
10383 } else {
104- this . pushFailure ( name , err as Error , value ) ;
84+ this . pushFailure ( resolvedName , err as Error , value ) ;
10585 }
10686 }
10787 }
@@ -128,7 +108,6 @@ export class Set extends ConfigCommand<SetConfigCommandResult> {
128108
129109const loadConfig = async ( global : boolean ) : Promise < Config > => {
130110 try {
131- await SfdxConfigAggregator . create ( { } ) ;
132111 const config = await Config . create ( Config . getDefaultOptions ( global ) ) ;
133112 await config . read ( ) ;
134113 return config ;
0 commit comments