aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 2.22 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.assertBound=exports.contentHash=exports.addStackArtifactToAssembly=void 0;var crypto=()=>{var tmp=require("crypto");return crypto=()=>tmp,tmp},constructs_1=()=>{var tmp=require("constructs");return constructs_1=()=>tmp,tmp},cxschema=()=>{var tmp=require("../../../cloud-assembly-schema");return cxschema=()=>tmp,tmp},stack_1=()=>{var tmp=require("../stack");return stack_1=()=>tmp,tmp};function addStackArtifactToAssembly(session,stack,stackProps,additionalStackDependencies){stack.tags.hasTags()&&stack.node.addMetadata(cxschema().ArtifactMetadataEntryType.STACK_TAGS,stack.tags.renderTags());const deps=[...stack.dependencies.map(s=>s.artifactId),...additionalStackDependencies],meta=collectStackMetadata(stack),stackNameProperty=stack.stackName===stack.artifactId?{}:{stackName:stack.stackName},properties={templateFile:stack.templateFile,terminationProtection:stack.terminationProtection,tags:nonEmptyDict(stack.tags.tagValues()),validateOnSynth:session.validateOnSynth,...stackProps,...stackNameProperty};session.assembly.addArtifact(stack.artifactId,{type:cxschema().ArtifactType.AWS_CLOUDFORMATION_STACK,environment:stack.environment,properties,dependencies:deps.length>0?deps:void 0,metadata:Object.keys(meta).length>0?meta:void 0,displayName:stack.node.path})}exports.addStackArtifactToAssembly=addStackArtifactToAssembly;function collectStackMetadata(stack){const output={};return visit(stack),output;function visit(node){if(findParentStack(node)===stack){node.node.metadata.length>0&&(output[constructs_1().Node.PATH_SEP+node.node.path]=node.node.metadata.map(md=>stack.resolve(md)));for(const child of node.node.children)visit(child)}}function findParentStack(node){if(stack_1().Stack.isStack(node)&&node.nestedStackParent===void 0)return node;if(node.node.scope)return findParentStack(node.node.scope)}}function contentHash(content){return crypto().createHash("sha256").update(content).digest("hex")}exports.contentHash=contentHash;function assertBound(x){if(x===null&&x===void 0)throw new Error("You must call bindStack() first")}exports.assertBound=assertBound;function nonEmptyDict(xs){return Object.keys(xs).length>0?xs:void 0}