aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 1.03 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PropertyReflection=void 0;var token_1=()=>{var tmp=require("../token");return token_1=()=>tmp,tmp};function resolvedTraverse(obj,path){let current=obj;for(const key of path.split(".")){if(current==null)return{status:"missing"};if((0,token_1().isResolvableObject)(current))return{status:"token"};current=current[key]}return(0,token_1().isResolvableObject)(current)?{status:"token"}:current==null?{status:"missing"}:{status:"found",value:current}}class PropertyReflection{result;static of(obj,path){return new PropertyReflection(resolvedTraverse(obj,path))}constructor(result){this.result=result}exists(){if(this.result.status!=="token")return this.result.status==="found"}equals(expected){if(this.result.status!=="token")return this.result.status==="missing"?!1:this.result.value===expected}get(fallback){if(this.result.status==="token")return fallback;if(this.result.status!=="missing")return this.result.value}}exports.PropertyReflection=PropertyReflection;