UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 1.23 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRelationalDBProxyResourceUtils=void 0;const AltoError_1=require("../../../common/Errors/AltoError"),filter_1=require("@reactivex/ix-es2015-cjs/iterable/operators/filter"),map_1=require("@reactivex/ix-es2015-cjs/iterable/operators/map"),ExternalDataBase_1=require("../../Resources/ExternalResource/ExternalDataBase"),DBProxy_1=require("../../Resources/RelationalDatabase/DBProxy");function getRelationalDBProxyResourceUtils(e){return{isDbVersionValidForProxy:(e,r)=>(0,DBProxy_1.isDbVersionValidForProxy)(e,r),getProxyTargetsCount(){var r;return null===(r=getProxyTargets(e))||void 0===r?void 0:r.length},getValidProxyTarget(){const r=getProxyTargets(e);if(r.length>1)throw AltoError_1.AltoError.create("Proxy must have single target",{data:{connections:e.outgoingConnections}});return r[0]}}}function getProxyTargets(e){return[...e.outgoingConnections.ofType("connection.resource-access").pipe((0,filter_1.filter)(e=>e.target.is("resource.rdb.cluster","resource.rdb.instance")||(0,ExternalDataBase_1.isExternalRelationalResource)(e.target.resource)),(0,map_1.map)(e=>e.target))]}exports.getRelationalDBProxyResourceUtils=getRelationalDBProxyResourceUtils;