diff --git a/src/commands/project/deploy/report.ts b/src/commands/project/deploy/report.ts index 043a5fda..85b23a3a 100644 --- a/src/commands/project/deploy/report.ts +++ b/src/commands/project/deploy/report.ts @@ -74,7 +74,7 @@ export default class DeployMetadataReport extends SfCommand { const jobId = cache.resolveLatest(flags['use-most-recent'], flags['job-id'], false); const deployOpts = cache.get(jobId) ?? {}; - const waitDuration = flags['wait']; + const wait = flags['wait']; const org = flags['target-org'] ?? (await Org.create({ aliasOrUsername: deployOpts['target-org'] })); // if we're using mdapi we won't have a component set @@ -85,12 +85,12 @@ export default class DeployMetadataReport extends SfCommand { try { this.project = await SfProject.resolve(); const sourcepath = this.project.getUniquePackageDirectories().map((pDir) => pDir.fullPath); - componentSet = await buildComponentSet({ 'source-dir': sourcepath, wait: waitDuration }); + componentSet = await buildComponentSet({ 'source-dir': sourcepath, wait }); } catch (err) { // ignore the error. this was just to get improved command output. } } else { - componentSet = await buildComponentSet({ ...deployOpts, wait: waitDuration }); + componentSet = await buildComponentSet({ ...deployOpts, wait }); } } const mdapiDeploy = new MetadataApiDeploy({ @@ -117,11 +117,11 @@ export default class DeployMetadataReport extends SfCommand { }; let result: DeployResult; - if (waitDuration) { + if (wait) { // poll for deploy results try { new DeployProgress(mdapiDeploy, this.jsonEnabled()).start(); - result = await mdapiDeploy.pollStatus(500, waitDuration.seconds); + result = await mdapiDeploy.pollStatus(500, wait.seconds); } catch (error) { if (error instanceof Error && error.message.includes('The client has timed out')) { this.debug('[project deploy report] polling timed out. Requesting status...'); diff --git a/src/formatters/deployReportResultFormatter.ts b/src/formatters/deployReportResultFormatter.ts index 2d338923..0654c0ac 100644 --- a/src/formatters/deployReportResultFormatter.ts +++ b/src/formatters/deployReportResultFormatter.ts @@ -7,6 +7,7 @@ import { ux } from '@oclif/core'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; import { StandardColors } from '@salesforce/sf-plugins-core'; +import { Duration } from '@salesforce/kit'; import { tableHeader } from '../utils/output'; import { DeployResultFormatter } from './deployResultFormatter'; @@ -38,8 +39,9 @@ export class DeployReportResultFormatter extends DeployResultFormatter { if (key === 'target-org') { return result.concat({ key: 'target-org', value: this.flags['target-org']?.getUsername() }); } - if (key === 'wait') { - return result.concat({ key: 'wait', value: `${this.flags['wait']?.quantity} minutes` }); + if (key === 'wait' && this.flags['wait']) { + const wait = this.flags['wait'] instanceof Duration ? this.flags['wait'].quantity : this.flags['wait']; + return result.concat({ key: 'wait', value: `${wait} minutes` }); } return result.concat({ key, value }); }, []); diff --git a/src/formatters/deployResultFormatter.ts b/src/formatters/deployResultFormatter.ts index 4393544f..89e5b6c5 100644 --- a/src/formatters/deployResultFormatter.ts +++ b/src/formatters/deployResultFormatter.ts @@ -45,7 +45,7 @@ export class DeployResultFormatter extends TestResultsFormatter implements Forma junit: boolean; 'results-dir': string; 'target-org': Org; - wait: Duration; + wait: Duration | number; }> ) { super(result, flags);