@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.8 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRepositoryNameFromUrl=exports.isHostedRepository=exports.normalizeExtFilter=exports.createErrorHandler=void 0;const Errors_1=require("../common/Errors"),Logging_1=require("../common/Logging"),Axios_1=require("../common/Utils/Axios"),first_1=require("@reactivex/ix-es2015-cjs/iterable/first"),from_1=require("@reactivex/ix-es2015-cjs/iterable/from"),filter_1=require("@reactivex/ix-es2015-cjs/iterable/operators/filter"),map_1=require("@reactivex/ix-es2015-cjs/iterable/operators/map"),NonEmptyString_1=require("../common/CustomTypes/NonEmptyString");function createErrorHandler({provider:r,hostErrorMapping:e,userErrorMapping:o,logger:t=(0,Logging_1.nullLogger)()}){return i=>{var s;throw t.verbose(r+" responded with error to the last request",{error:i}),isHostError(i)?e(i):(0,Axios_1.isAxiosError)(i)&&null!==(s=null==o?void 0:o(i))&&void 0!==s?s:i}}function isHostError(r){var e,o;return r instanceof Errors_1.AltoError?isHostError(r.inner):(0,Axios_1.isAxiosError)(r)&&(null!==(o=null===(e=r.response)||void 0===e?void 0:e.status)&&void 0!==o?o:0)>=500}function normalizeExtFilter(r){return(r=r?"string"==typeof r?[r]:r:[]).map(r=>r.toLowerCase())}function isHostedRepository(r,e){return r.some(r=>r.test(e))}function getRepositoryNameFromUrl(r,e,o){const t=(0,first_1.first)((0,from_1.from)(r).pipe((0,map_1.map)(r=>r.exec(o)),(0,filter_1.filter)(r=>!!r),(0,map_1.map)(r=>r[e])));if(!(0,NonEmptyString_1.isNonEmptyString)(t))throw Errors_1.AltoError.create("Invalid repository url",{data:{repositoryUrl:o}});return t}exports.createErrorHandler=createErrorHandler,exports.normalizeExtFilter=normalizeExtFilter,exports.isHostedRepository=isHostedRepository,exports.getRepositoryNameFromUrl=getRepositoryNameFromUrl;