aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 2.06 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.PostResolveToken=void 0,exports.capitalizePropertyNames=capitalizePropertyNames,exports.ignoreEmpty=ignoreEmpty,exports.filterUndefined=filterUndefined,exports.pathToTopLevelStack=pathToTopLevelStack,exports.findLastCommonElement=findLastCommonElement,exports.undefinedIfAllValuesAreEmpty=undefinedIfAllValuesAreEmpty;var intrinsic_1=()=>{var tmp=require("./private/intrinsic");return intrinsic_1=()=>tmp,tmp},stack_1=()=>{var tmp=require("./stack");return stack_1=()=>tmp,tmp};function capitalizePropertyNames(construct,obj){if(obj=stack_1().Stack.of(construct).resolve(obj),typeof obj!="object")return obj;if(Array.isArray(obj))return obj.map(x=>capitalizePropertyNames(construct,x));const newObj={};for(const key of Object.keys(obj)){const value=obj[key],newKey=key.charAt(0).toUpperCase()+key.slice(1);newObj[newKey]=capitalizePropertyNames(construct,value)}return newObj}function ignoreEmpty(obj){return new PostResolveToken(obj,o=>{if(o==null)return o;if(!(Array.isArray(o)&&o.length===0)&&!(typeof o=="object"&&Object.keys(o).length===0))return o})}function filterUndefined(obj){if(Array.isArray(obj))return obj.filter(x=>x!=null).map(x=>filterUndefined(x));if(typeof obj=="object"){const ret={};for(const[key,value]of Object.entries(obj))value!=null&&(ret[key]=filterUndefined(value));return ret}return obj}class PostResolveToken extends intrinsic_1().Intrinsic{constructor(value,processor){super(value,{stackTrace:!1}),this.processor=processor}resolve(context){return context.registerPostProcessor(this),super.resolve(context)}postProcess(o,context){return this.processor(o,context)}}exports.PostResolveToken=PostResolveToken;function pathToTopLevelStack(s){return s.nestedStackParent?[...pathToTopLevelStack(s.nestedStackParent),s]:[s]}function findLastCommonElement(path1,path2){let i=0;for(;i<path1.length&&i<path2.length&&path1[i]===path2[i];)i++;return path1[i-1]}function undefinedIfAllValuesAreEmpty(object){return Object.values(object).some(v=>v!==void 0)?object:void 0}
;