From 46ee75ca56367cc90588b0555fbdb66b6d6e9198 Mon Sep 17 00:00:00 2001 From: "Marko (ServerlessLife)" Date: Fri, 25 Apr 2025 18:50:05 +0200 Subject: [PATCH 1/2] feat: #122 Add SAM stack name parameter --- src/configuration/getConfigFromCliArgs.ts | 1 + src/configuration/getConfigFromWizard.ts | 11 +++++++++++ src/frameworks/samFramework.ts | 8 +++++++- src/types/lldConfig.ts | 5 +++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/configuration/getConfigFromCliArgs.ts b/src/configuration/getConfigFromCliArgs.ts index 90c9a7b1..3dbd34e7 100644 --- a/src/configuration/getConfigFromCliArgs.ts +++ b/src/configuration/getConfigFromCliArgs.ts @@ -54,6 +54,7 @@ export async function getConfigFromCliArgs( program.option('--config-env ', 'SAM environment'); program.option('--sam-config-file ', 'SAM configuration file'); program.option('--sam-template-file ', 'SAM template file'); + program.option('--sam-stack-name ', 'SAM stack name'); program.option('--profile ', 'AWS profile to use'); program.option('--region ', 'AWS region to use'); program.option('--role ', 'AWS role to use'); diff --git a/src/configuration/getConfigFromWizard.ts b/src/configuration/getConfigFromWizard.ts index ac0fe01e..0c4454c2 100644 --- a/src/configuration/getConfigFromWizard.ts +++ b/src/configuration/getConfigFromWizard.ts @@ -139,6 +139,14 @@ export async function getConfigFromWizard({ default: configFromCliArgs.samTemplateFile ?? currentConfig?.samTemplateFile, }, + { + type: 'input', + name: 'samStackName', + message: + 'Would you like to enter SAM stack name and not use the one from config?', + default: + configFromCliArgs.samStackName ?? currentConfig?.samStackName, + }, ]); answers = { ...answers, ...samAnswers }; @@ -421,6 +429,8 @@ export default { samConfigFile: "${config.samConfigFile}", // SAM framework template file samTemplateFile: "${config.samTemplateFile}", + // SAM framework stack name + samStackName: "${config.samStackName}", // Observable mode observable: ${config.observable}, // Observable mode interval @@ -468,6 +478,7 @@ function getConfigFromAnswers(answers: any): LldConfigCliArgs { configEnv: answers.configEnv, samConfigFile: answers.samConfigFile, samTemplateFile: answers.samTemplateFile, + samStackName: answers.samStackName, observable: answers.observable, interval: answers.interval !== undefined diff --git a/src/frameworks/samFramework.ts b/src/frameworks/samFramework.ts index 4f784490..efef8993 100755 --- a/src/frameworks/samFramework.ts +++ b/src/frameworks/samFramework.ts @@ -90,7 +90,13 @@ export class SamFramework implements IFramework { samConfig = yaml.parse(samConfigContent); } - const stackName = samConfig[environment]?.global?.parameters?.stack_name; + let stackName: string | undefined; + + if (config.samStackName) { + stackName = config.samStackName; + } else { + stackName = samConfig[environment]?.global?.parameters?.stack_name; + } if (!stackName) { throw new Error(`Stack name not found in ${samConfigFile}`); diff --git a/src/types/lldConfig.ts b/src/types/lldConfig.ts index 0c121e60..201f84e1 100644 --- a/src/types/lldConfig.ts +++ b/src/types/lldConfig.ts @@ -56,6 +56,11 @@ export type LldConfigBase = { */ samTemplateFile?: string; + /** + * SAM framework cli parameter stack-name + */ + samStackName?: string; + /** * Resources discovery function */ From 37ff0f47f4c7a66e6239c081273fcc17268cf10d Mon Sep 17 00:00:00 2001 From: "Marko (ServerlessLife)" Date: Fri, 25 Apr 2025 19:15:16 +0200 Subject: [PATCH 2/2] chore: add documentation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a7071512..83d744a0 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,7 @@ The configuration is saved to `lldebugger.config.ts`. --config-env SAM environment --sam-config-file SAM configuration file --sam-template-file SAM template file + --sam-stack-name SAM stack name; --profile AWS profile to use --region AWS region to use --role AWS role to use