@altostra/core
Version:
Core library for shared types and logic
1 lines • 2.71 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.vpcDataFromConfiguration=exports.configurationFromVPCData=exports.isVPCConfiguration=exports.isVPCParams=exports.isVPCData=exports.reservedVPCKeys=exports.VPCDataKeys=void 0;const NonEmptyString_1=require("../../../../common/CustomTypes/NonEmptyString"),SubnetId_1=require("../../../../common/CustomTypes/SubnetId"),type_validations_1=require("@altostra/type-validations"),primitives_1=require("@altostra/type-validations/lib/primitives");var VPCDataKeys;!function(t){t.VPCId="ALTOSTRA__DEFAULT_VPC_ID",t.PrivateSubnets="ALTOSTRA__PRIVATE_SUBNETS",t.PublicSubnets="ALTOSTRA__PUBLIC_SUBNETS",t.Subnets="ALTOSTRA__SUBNETS"}(VPCDataKeys=exports.VPCDataKeys||(exports.VPCDataKeys={})),exports.reservedVPCKeys=Object.values(VPCDataKeys);const vpcDataValidations={vpcId:NonEmptyString_1.isNonEmptyString,privateSubnets:(0,type_validations_1.maybe)((0,type_validations_1.arrayOf)(SubnetId_1.isSubnetId)),publicSubnets:(0,type_validations_1.maybe)((0,type_validations_1.arrayOf)(SubnetId_1.isSubnetId))};function configurationFromVPCData({vpcId:t,privateSubnets:a,publicSubnets:i}){return Object.assign(Object.assign({[VPCDataKeys.VPCId]:t},(null==a?void 0:a.length)&&{[VPCDataKeys.PrivateSubnets]:a.join(",")}),(null==i?void 0:i.length)&&{[VPCDataKeys.PublicSubnets]:i.join(",")})}function vpcDataFromConfiguration({[VPCDataKeys.VPCId]:t,[VPCDataKeys.PrivateSubnets]:a,[VPCDataKeys.PublicSubnets]:i}={}){const e=Object.assign(Object.assign({vpcId:t},(null==a?void 0:a.length)&&{privateSubnets:a.split(",")}),(null==i?void 0:i.length)&&{publicSubnets:i.split(",")});return(0,exports.isVPCData)(e)?e:void 0}function nonEmptyArrayOf(t){return(0,type_validations_1.allOf)((0,type_validations_1.arrayOf)(t),t=>t.length>0)}exports.isVPCData=(0,type_validations_1.anyOf)((0,type_validations_1.objectOf)(Object.assign(Object.assign({},vpcDataValidations),{privateSubnets:nonEmptyArrayOf(SubnetId_1.isSubnetId)})),(0,type_validations_1.objectOf)(Object.assign(Object.assign({},vpcDataValidations),{publicSubnets:nonEmptyArrayOf(SubnetId_1.isSubnetId)}))),exports.isVPCParams=(0,type_validations_1.objectOf)({[VPCDataKeys.VPCId]:NonEmptyString_1.isNonEmptyString,[VPCDataKeys.PrivateSubnets]:(0,type_validations_1.maybe)(primitives_1.string,!0),[VPCDataKeys.PublicSubnets]:(0,type_validations_1.maybe)(primitives_1.string,!0),[VPCDataKeys.Subnets]:(0,type_validations_1.maybe)(primitives_1.string,!0)}),exports.isVPCConfiguration=(0,type_validations_1.objectOf)({type:(0,type_validations_1.is)("vpc"),configurations:exports.isVPCParams}),exports.configurationFromVPCData=configurationFromVPCData,exports.vpcDataFromConfiguration=vpcDataFromConfiguration;