export async function captureStackOutputs()

in src/lib/cloudformationutils.ts [14:51]


export async function captureStackOutputs(
    cloudFormationClient: CloudFormation,
    stackName: string,
    asJsonBlob: boolean,
    asSecureVars: boolean
): Promise<void> {
    const response = await cloudFormationClient
        .describeStacks({
            StackName: stackName
        })
        .promise()

    try {
        if (!response.Stacks) {
            throw new Error('No stacks in response')
        }
        const stack = response.Stacks[0]
        if (asJsonBlob) {
            console.log(tl.loc('ProcessingStackOutputsToJsonBlobBuildVariable'))
            const blob = JSON.stringify(stack.Outputs)
            const varName = `${stackName}Outputs`
            console.log(tl.loc('CreatingStackOutputVariable', varName))
            tl.setVariable(varName, blob, asSecureVars)
        } else {
            console.log(tl.loc('ProcessingStackOutputsToBuildVariables'))
            if (stack.Outputs) {
                stack.Outputs.forEach(o => {
                    if (o.OutputKey) {
                        console.log(tl.loc('CreatingStackOutputVariable', o.OutputKey))
                        tl.setVariable(o.OutputKey, `${o.OutputValue}`, asSecureVars)
                    }
                })
            }
        }
    } catch (err) {
        console.log(tl.loc('ErrorRetrievingStackOutputs', stackName, err))
    }
}