aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 6.39 kB
JavaScript
;var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||(function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o2){var ar=[];for(var k in o2)Object.prototype.hasOwnProperty.call(o2,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)k[i]!=="default"&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.App=void 0,exports.attachCustomSynthesis=attachCustomSynthesis;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var perf_hooks_1=()=>{var tmp=require("perf_hooks");return perf_hooks_1=()=>tmp,tmp},fs=()=>{var tmp=__importStar(require("fs-extra"));return fs=()=>tmp,tmp},helpers_internal_1=()=>{var tmp=require("./helpers-internal");return helpers_internal_1=()=>tmp,tmp},private_context_1=()=>{var tmp=require("./private/private-context");return private_context_1=()=>tmp,tmp},synthesis_1=()=>{var tmp=require("./private/synthesis");return synthesis_1=()=>tmp,tmp},prop_injectors_1=()=>{var tmp=require("./prop-injectors");return prop_injectors_1=()=>tmp,tmp},stage_1=()=>{var tmp=require("./stage");return stage_1=()=>tmp,tmp},cxapi=()=>{var tmp=__importStar(require("../../cx-api"));return cxapi=()=>tmp,tmp};const APP_SYMBOL=Symbol.for("@aws-cdk/core.App"),DEFAULT_SLOW_SYNTH_PER_STACK_THRESHOLD_MS=1e4,SLOW_SYNTH_THRESHOLD_CTX="@aws-cdk/core.slowSynthThreshold";class App extends stage_1().Stage{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.App",version:"2.260.0"};static of(construct){const root=construct.node.root;return App.isApp(root)?root:void 0}static isApp(obj){return APP_SYMBOL in obj}_treeMetadata;initMark;performanceReporting;alreadySynthed=!1;constructor(props={}){super(void 0,"",{outdir:props.outdir??process.env[cxapi().OUTDIR_ENV]});try{jsiiDeprecationWarnings().aws_cdk_lib_AppProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,App),error}this.initMark=perf_hooks_1().performance.now(),PERF_STATE.loadTimeMeasured||(perf_hooks_1().performance.measure("phase:Load",{end:this.initMark,detail:{[helpers_internal_1().TELEMETRY_FIELD]:!0}}),PERF_STATE.loadTimeMeasured=!0),props.propertyInjectors&&prop_injectors_1().PropertyInjectors.of(this).add(...props.propertyInjectors),props.policyValidationBeta1&&this._addValidationPlugins(...props.policyValidationBeta1),Object.defineProperty(this,APP_SYMBOL,{value:!0}),this.loadContext(props.context,props.postCliContext),props.stackTraces===!1&&this.node.setContext(cxapi().DISABLE_METADATA_STACK_TRACE,!0),props.defaultStackSynthesizer&&this.node.setContext(private_context_1().PRIVATE_CONTEXT_DEFAULT_STACK_SYNTHESIZER,props.defaultStackSynthesizer);const analyticsReporting=props.analyticsReporting??props.runtimeInfo;analyticsReporting!==void 0&&this.node.setContext(cxapi().ANALYTICS_REPORTING_ENABLED_CONTEXT,analyticsReporting),(props.autoSynth??cxapi().OUTDIR_ENV in process.env)&&process.once("beforeExit",()=>this.synth({errorOnDuplicateSynth:!1})),this._treeMetadata=props.treeMetadata??!0,this.performanceReporting=props.performanceReporting??this.node.tryGetContext(cxapi().PERFORMANCE_REPORTING_ENABLED_CONTEXT)??!0}loadContext(defaults={},final={}){for(const[k,v]of Object.entries(defaults))this.node.setContext(k,v);const context={...this.readContextFromEnvironment(),...this.readContextFromTempFile()};for(const[k,v]of Object.entries(context))this.node.setContext(k,v);for(const[k,v]of Object.entries(final))this.node.setContext(k,v)}synth(options={}){try{jsiiDeprecationWarnings().aws_cdk_lib_StageSynthesisOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.synth),error}if(this.alreadySynthed)return super.synth(options);this.alreadySynthed=!0;const startSynthMark=perf_hooks_1().performance.now();perf_hooks_1().performance.measure("phase:Construction",{start:this.initMark,end:startSynthMark,detail:{[helpers_internal_1().TELEMETRY_FIELD]:!0}});const ret=super.synth(options);perf_hooks_1().performance.measure("phase:Synthesis",{start:startSynthMark,detail:{[helpers_internal_1().TELEMETRY_FIELD]:!0}});const totalAppTimeMs=perf_hooks_1().performance.now()-this.initMark,stackCount=ret.stacksRecursively.length;return this.shouldReportSlowSynth(totalAppTimeMs/stackCount)&&emitPerformanceCountersFile(),perf_hooks_1().performance.clearMeasures(),ret}readContextFromTempFile(){const location=process.env[cxapi().CONTEXT_OVERFLOW_LOCATION_ENV];return location?fs().readJSONSync(location):{}}readContextFromEnvironment(){const contextJson=process.env[cxapi().CONTEXT_ENV];return contextJson?JSON.parse(contextJson):{}}shouldReportSlowSynth(perStackTime){if(!this.performanceReporting)return!1;const threshold=parseAsNumber(this.node.tryGetContext(SLOW_SYNTH_THRESHOLD_CTX))??DEFAULT_SLOW_SYNTH_PER_STACK_THRESHOLD_MS;return perStackTime>=threshold}}exports.App=App;function attachCustomSynthesis(construct,synthesis){(0,synthesis_1().addCustomSynthesis)(construct,synthesis)}function emitPerformanceCountersFile(){const filename=process.env[cxapi().PERF_COUNTERS_FILE_ENV];if(!filename)return;const counters={};for(const[name,ctr]of Object.entries((0,helpers_internal_1().readPerfCounters)({telemetry:!0})))counters[name]=ctr.total,counters[`${name}(cnt)`]=ctr.count;fs().writeFileSync(filename,JSON.stringify({counters},void 0,2),"utf-8")}const PERF_STATE=global[Symbol.for("@aws-cdk/core.AppPerfState")]??={loadTimeMeasured:!1};function parseAsNumber(x){if(typeof x=="number")return x;const r=parseInt(`${x}`,10);return isNaN(r)?void 0:r}