@bolttech/server-side-next
Version:
This library was generated with [Nx](https://nx.dev).
3 lines (2 loc) • 9.64 kB
JavaScript
"use strict";var e=require("./_rollupPluginBabelHelpers-41c00fec.js"),r=require("./_tslib-0e64cda4.js"),t=require("lodash"),n=require("./page-modular-d7472110.js"),a=require("./logger.service-16a2faf9.js"),s=require("./redis.service-708c1354.js"),u=require("@bolttech/essentials"),i=new(function(){return e._createClass((function r(){e._classCallCheck(this,r)}),[{key:"handle",value:function(t,s,u,i){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var o,c,p;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=void 0,s.mappers&&(o=s.mappers[t.template.replace(/-/g,"_")]),o){e.next=6;break}return e.next=5,i(t.template);case 5:o=e.sent;case 6:if(!o){e.next=10;break}c=new o(s,u,a.loggerService,t),e.next=15;break;case 10:return"fallback-mapper",e.next=13,i("fallback-mapper");case 13:p=e.sent,c=p?new p(s,u,a.loggerService,t):new n.FallbackComponent(s,u,a.loggerService,t);case 15:return e.abrupt("return",c.generateComponent());case 16:case"end":return e.stop()}}),r)})))}}])}()),o=function(){return e._createClass((function r(){e._classCallCheck(this,r),this.cmsRedisService=new s.RedisService(a.configService)}),[{key:"getPageIdByUrl",value:function(t){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var n;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.cmsRedisService.hget("cms_url_mapping",t);case 3:if(n=e.sent){e.next=6;break}return e.abrupt("return",{success:!1});case 6:return e.abrupt("return",{pageId:n,success:!0});case 9:return e.prev=9,e.t0=e.catch(0),a.loggerService.error("Unable to find page from url",e.t0.message||JSON.stringify(e.t0)),e.abrupt("return",{success:!1});case 13:case"end":return e.stop()}}),r,this,[[0,9]])})))}},{key:"getPageById",value:function(t){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var n;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cmsRedisService.get(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}}),r,this)})))}},{key:"getPageTime",value:function(t){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var n;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cmsRedisService.get("".concat(t,":time"));case 2:return n=e.sent,e.abrupt("return",parseInt(n,10));case 4:case"end":return e.stop()}}),r,this)})))}},{key:"getPageByReferenceId",value:function(t){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var n;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cmsRedisService.get("cms_page_".concat(t));case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}}),r,this)})))}}])}(),c=function(){return e._createClass((function r(t){e._classCallCheck(this,r),this.cmsRepository=new o,this.cmsHelper=new n.CmsHelper,this.mappers=t}),[{key:"renderComponents",value:function(t){var s=t.url,i=t.req,o=t.res,c=t.countPrevent,p=t.preRenderedPage,v=t.locale,m=void 0===v?"en":v,l=t.vertical,g=t.pageDevice,d=t.importMapper;return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var t,v,f,h,b;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.cmsRepository.getPageIdByUrl(s);case 3:if(t=e.sent,v=t.pageId,f=t.success,h=p||{},f&&v){e.next=9;break}return e.abrupt("return",this.renderErrorPageComponents({status:n.HttpStatusEnum.notFound,req:i,res:o,countPrevent:c,importMapper:d}));case 9:if(p){e.next=25;break}return e.prev=10,e.next=13,this.cmsRepository.getPageById(v);case 13:h=e.sent,e.next=20;break;case 16:return e.prev=16,e.t0=e.catch(10),a.loggerService.error("Unable to fetch pageId: ".concat(v," from redis"),e.t0),e.abrupt("return",this.renderErrorPageComponents({status:n.HttpStatusEnum.notFound,req:i,res:o,countPrevent:c,importMapper:d}));case 20:if(h){e.next=22;break}return e.abrupt("return",this.renderErrorPageComponents({status:n.HttpStatusEnum.serverError,req:i,res:o,countPrevent:c,importMapper:d}));case 22:return e.next=24,this.cmsRepository.getPageTime(v);case 24:h.time=e.sent;case 25:return this.cmsHelper.setRequest(i).setLocale(m).setLocale(m),g&&this.cmsHelper.setDevice(g===u.UserAgentDevicesEnum.Mobile?"mobile":"desktop"),l&&this.cmsHelper.setVertical(l),e.next=30,this.renderPageComponents(h,d);case 30:if(b=e.sent){e.next=33;break}return e.abrupt("return",this.renderErrorPageComponents({status:n.HttpStatusEnum.serverError,req:i,res:o,countPrevent:c,importMapper:d}));case 33:return e.abrupt("return",{url:s,locale:m,components:[b]});case 36:return e.prev=36,e.t1=e.catch(0),a.loggerService.error("Unable to fetch page components for ".concat(s),e.t1),e.abrupt("return",this.renderErrorPageComponents({status:n.HttpStatusEnum.serverError,req:i,res:o,countPrevent:c,importMapper:d}));case 40:case"end":return e.stop()}}),r,this,[[0,36],[10,16]])})))}},{key:"renderErrorPageComponents",value:function(t){var n=t.status,s=t.req,u=t.res,i=t.countPrevent,o=void 0===i?0:i,c=t.importMapper;return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var t;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t="/en/".concat(n),!(o>1)){e.next=4;break}return a.loggerService.log("Error! Infinite loop error!"),e.abrupt("return",this.renderFallbackErrorPage());case 4:return e.prev=4,e.abrupt("return",this.renderComponents({url:t,req:s,res:u,countPrevent:o+1,importMapper:c}));case 8:return e.prev=8,e.t0=e.catch(4),a.loggerService.error("Cannot render error page",e.t0),e.abrupt("return",this.renderFallbackErrorPage());case 12:case"end":return e.stop()}}),r,this,[[4,8]])})))}},{key:"renderFallbackErrorPage",value:function(){return{components:[{name:"FallBackError",props:{title:"",message:""}}]}}},{key:"renderPagesComponentsById",value:function(t,n){var a,s,u,i;return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function o(){var c,p,v;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=[],t){e.next=3;break}return e.abrupt("return",c);case 3:e.prev=3,a=r.__asyncValues(t);case 5:return e.next=7,a.next();case 7:if((s=e.sent).done){e.next=16;break}return p=s.value,e.next=12,this.renderPageComponentsById(p,n);case 12:(v=e.sent)&&c.push(v);case 14:e.next=5;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(3),u={error:e.t0};case 21:if(e.prev=21,e.prev=22,!s||s.done||!(i=a.return)){e.next=26;break}return e.next=26,i.call(a);case 26:if(e.prev=26,!u){e.next=29;break}throw u.error;case 29:return e.finish(26);case 30:return e.finish(21);case 31:return e.abrupt("return",c);case 32:case"end":return e.stop()}}),o,this,[[3,18,21,31],[22,,26,30]])})))}},{key:"renderPageComponentsById",value:function(t,n){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var a;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cmsRepository.getPageById(t);case 2:return a=e.sent,e.abrupt("return",this.renderPageComponents(a,n));case 4:case"end":return e.stop()}}),r,this)})))}},{key:"renderPagesComponents",value:function(t,n){var a,s,u,i;return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function o(){var c,p,v;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=[],t.length){e.next=3;break}return e.abrupt("return",c);case 3:e.prev=3,a=r.__asyncValues(t);case 5:return e.next=7,a.next();case 7:if((s=e.sent).done){e.next=16;break}return p=s.value,e.next=12,this.renderPageComponents(p,n);case 12:(v=e.sent)&&c.push(v);case 14:e.next=5;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(3),u={error:e.t0};case 21:if(e.prev=21,e.prev=22,!s||s.done||!(i=a.return)){e.next=26;break}return e.next=26,i.call(a);case 26:if(e.prev=26,!u){e.next=29;break}throw u.error;case 29:return e.finish(26);case 30:return e.finish(21);case 31:return e.abrupt("return",c);case 32:case"end":return e.stop()}}),o,this,[[3,18,21,31],[22,,26,30]])})))}},{key:"renderPageComponents",value:function(t,n){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var a,s;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.verifyPageTemplate(t);case 3:if(a=e.sent){e.next=6;break}return e.abrupt("return",null);case 6:return e.next=8,i.handle(a,this,this.cmsHelper,n);case 8:return s=e.sent,e.abrupt("return",s);case 12:return e.prev=12,e.t0=e.catch(0),e.abrupt("return",null);case 15:case"end":return e.stop()}}),r,this,[[0,12]])})))}},{key:"verifyPageTemplate",value:function(n){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var s;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.template){e.next=2;break}throw new Error("Cms module ".concat(n.id," don't have template"));case 2:if("module-reference"===n.template){e.next=4;break}return e.abrupt("return",n);case 4:if(!(s=t.get(n,"content.module_reference_page.0"))){e.next=7;break}return e.abrupt("return",this.cmsRepository.getPageByReferenceId(s));case 7:return a.loggerService.log("Page ".concat(n.id," doesn't have module content")),e.abrupt("return",null);case 9:case"end":return e.stop()}}),r,this)})))}}])}();exports.CmsRepository=o,exports.CmsService=c,exports.mapperService=i;
//# sourceMappingURL=cms.service-f0991254.js.map