Skip to content

Commit b00e23c

Browse files
committed
add SkipPrompter to deploy and sync wizard for template parameter
1 parent 9b44ba3 commit b00e23c

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

packages/core/src/shared/sam/deploy.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import { getErrorCode, getProjectRoot, getSamCliPathAndVersion, getSource, updat
2828
import { runInTerminal } from './processTerminal'
2929
import { WizardPrompter } from '../ui/wizardPrompter'
3030
import { TemplateParametersWizard } from '../../awsService/appBuilder/wizards/templateParametersWizard'
31+
import { SkipPrompter } from '../ui/common/skipPrompter'
32+
import { getParameters } from '../../lambda/config/parameterUtils'
3133

3234
export interface DeployParams {
3335
readonly paramsSource: ParamsSource
@@ -83,10 +85,13 @@ export class DeployWizard extends Wizard<DeployParams> {
8385

8486
this.form.template.bindPrompter(() => createTemplatePrompter(this.registry, deployMementoRootKey))
8587

86-
this.form.templateParameters.bindPrompter(
87-
({ template }) =>
88-
new WizardPrompter(new TemplateParametersWizard(template.uri, samDeployUrl, deployMementoRootKey))
89-
)
88+
this.form.templateParameters.bindPrompter(async ({ template }) => {
89+
const samTemplateParameters = await getParameters(template.uri)
90+
if (!samTemplateParameters || samTemplateParameters.size === 0) {
91+
return new SkipPrompter({} as Partial<any>)
92+
}
93+
return new WizardPrompter(new TemplateParametersWizard(template.uri, samDeployUrl, deployMementoRootKey))
94+
})
9095

9196
this.form.projectRoot.setDefault(({ template }) => getProjectRoot(template))
9297

packages/core/src/shared/sam/sync.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { createExitPrompter } from '../ui/common/exitPrompter'
2828
import { getConfigFileUri, SamConfig, validateSamSyncConfig, writeSamconfigGlobal } from './config'
2929
import { cast, Optional } from '../utilities/typeConstructors'
3030
import { pushIf, toRecord } from '../utilities/collectionUtils'
31-
import { getOverriddenParameters } from '../../lambda/config/parameterUtils'
31+
import { getOverriddenParameters, getParameters } from '../../lambda/config/parameterUtils'
3232
import { addTelemetryEnvVar } from './cli/samCliInvokerUtils'
3333
import { samSyncParamUrl, samSyncUrl, samUpgradeUrl } from '../constants'
3434
import { openUrl } from '../utilities/vsCodeUtils'
@@ -54,6 +54,7 @@ import { BucketSource, createBucketNamePrompter } from '../ui/sam/bucketPrompter
5454
import { runInTerminal } from './processTerminal'
5555
import { WizardPrompter } from '../ui/wizardPrompter'
5656
import { TemplateParametersWizard } from '../../awsService/appBuilder/wizards/templateParametersWizard'
57+
import { SkipPrompter } from '../ui/common/skipPrompter'
5758

5859
export interface SyncParams {
5960
readonly paramsSource: ParamsSource
@@ -160,10 +161,13 @@ export class SyncWizard extends Wizard<SyncParams> {
160161
super({ initState: state, exitPrompterProvider: shouldPromptExit ? createExitPrompter : undefined })
161162
this.registry = registry
162163
this.form.template.bindPrompter(() => createTemplatePrompter(this.registry, syncMementoRootKey))
163-
this.form.templateParameters.bindPrompter(
164-
({ template }) =>
165-
new WizardPrompter(new TemplateParametersWizard(template!.uri, samSyncUrl, syncMementoRootKey))
166-
)
164+
this.form.templateParameters.bindPrompter(async ({ template }) => {
165+
const samTemplateParameters = await getParameters(template!.uri)
166+
if (!samTemplateParameters || samTemplateParameters.size === 0) {
167+
return new SkipPrompter({} as Partial<any>)
168+
}
169+
return new WizardPrompter(new TemplateParametersWizard(template!.uri, samSyncParamUrl, syncMementoRootKey))
170+
})
167171

168172
this.form.projectRoot.setDefault(({ template }) => getProjectRoot(template))
169173

0 commit comments

Comments
 (0)