@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.74 kB
JavaScript
;var __awaiter=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))((function(i,a){function s(e){try{m(o.next(e))}catch(e){a(e)}}function c(e){try{m(o.throw(e))}catch(e){a(e)}}function m(e){var r;e.done?i(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(s,c)}m((o=o.apply(e,r||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MockedTemplatesProvider=void 0;const AltoError_1=require("../../../common/Errors/AltoError"),Object_1=require("../../../common/Utils/Object"),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"),TemplatesProvider_1=require("../TemplatesProvider"),MockedTemplate_1=require("./MockedTemplate");class MockedTemplatesProvider extends TemplatesProvider_1.TemplatesProviderBase{constructor(e,r){super(r=null!=r?r:MockedTemplate_1.MOCKED_TEMPLATE_TYPE),Array.isArray(e)?this.mocks=(0,Object_1.fromEntries)((0,from_1.from)(e).pipe((0,map_1.map)(e=>"string"!=typeof e?e:new MockedTemplate_1.MockedTemplate(e,r)),(0,map_1.map)(t=>{if(t.type!==r)throw AltoError_1.AltoError.create({message:"All mocked templates must have the provider's type",data:{mocks:e}});return t}),(0,map_1.map)(e=>[e.name,e]))):this.mocks=e}list(){return __awaiter(this,void 0,void 0,(function*(){return[...(0,from_1.from)(Object.values(this.mocks)).pipe((0,filter_1.filter)(e=>!!e),(0,map_1.map)(e=>e.name))]}))}get(e){return __awaiter(this,void 0,void 0,(function*(){const r=this.mocks[e];if(!r)throw new AltoError_1.AltoError(`Template named ${e} does not exists`);return r}))}}exports.MockedTemplatesProvider=MockedTemplatesProvider;