UNPKG

@bddh/starling-realtime-client

Version:

2 lines (1 loc) 3.81 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./_virtual/_rollupPluginBabelHelpers.js"),r=require("uuid"),t=require("@bddh/starling-web-socket/es/create-web-socket"),n=require("lodash/pick"),o=require("lodash/omit"),s=require("./interface.js"),a=function(a){function c(a){var i,u=this;e.classCallCheck(this,c),e.defineProperty(this,"dhServerSocket",null),e.defineProperty(this,"socketClosingPromise",null),e.defineProperty(this,"url",void 0),e.defineProperty(this,"firstConnect",!0),e.defineProperty(this,"connectParams",null),e.defineProperty(this,"createSocket",(function(n){return(i=i||e.asyncToGenerator(e.regeneratorRuntime().mark((function n(o){var a,c,i,d;return e.regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u.connectParams=o,a=o.token,c=o.sessionId,i=o.onConnect,d=o.onDigitalHumanCallback,!u.socketClosingPromise){e.next=5;break}return e.next=5,u.socketClosingPromise;case 5:if(!u.dhServerSocket){e.next=8;break}return e.next=8,u.closeSocket();case 8:return e.abrupt("return",new Promise((function(e,n){var o=t.createWebSocket(u.url,{reopen:!0,keepAlive:"heartbeat",combine:function(e,r){return e&&r&&e.requestId===r.requestId},onOpen:function(){if(u.dhServerSocket=o,c&&u.firstConnect)return o.request({action:"RE_CONNECT",requestId:r.v4(),body:JSON.stringify({token:a,sessionId:c})}).on((function(r,t){i(r),0!==r.code&&(t(),u.handleConnect()),e(o)})),void(u.firstConnect=!1);u.handleConnect()},onClose:function(){u.dhServerSocket=null,u.socketClosingPromise=null},onError:function(e){n(e)}});o.onReadyStateChange((function(e){0===e&&d&&d({status:s.statusEnum.DH_LIB_INIT}),d&&d({status:s.statusEnum.DH_LIB_FULL_STATUS,content:{type:"wsState",readyState:e,body:s.WS_STATUS_MAP[e]}})})),o.onMessage((function(e){var r=e.action;[s.errorTypeEnum.TIMEOUT_EXIT,s.errorTypeEnum.DISCONNECT_ALERT].includes(r)&&d&&d({status:s.statusEnum.DH_LIB_STATUS,content:{type:r}})})),o.open()})));case 9:case"end":return e.stop()}}),n)})))).apply(this,arguments)})),e.defineProperty(this,"closeSocket",e.asyncToGenerator(e.regeneratorRuntime().mark((function r(){return e.regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u.dhServerSocket){e.next=2;break}return e.abrupt("return");case 2:return u.socketClosingPromise=u.dhServerSocket.close(),e.next=5,u.socketClosingPromise;case 5:u.dhServerSocket=null;case 6:case"end":return e.stop()}}),r)})))),e.defineProperty(this,"handleConnect",e.asyncToGenerator(e.regeneratorRuntime().mark((function t(){var a,c,i,d,p,l;return e.regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u.connectParams){t.next=2;break}return t.abrupt("return");case 2:if(a=u.connectParams,c=a.appId,i=a.appKey,d=a.token,p=a.parameters,l=a.onConnect,c||i||d){t.next=5;break}return t.abrupt("return");case 5:u.dhServerSocket&&u.dhServerSocket.request({action:"CONNECT",clientTs:(new Date).getTime(),requestId:r.v4(),body:JSON.stringify(e.objectSpread2(e.objectSpread2({token:d,appId:c,appKey:i},n(u.connectParams,s.CONNECT_MAIN_KEY)),{},{parameters:e.objectSpread2(e.objectSpread2({},o(p,["parameters"])),p&&p.parameters?p.parameters:{})}))}).on((function(e,r){l(e),0!==e.code&&r()}));case 6:case"end":return t.stop()}}),t)})))),this.url=a}return e.createClass(c,[{key:"sendMessage",value:function(r,t){return(a=a||e.asyncToGenerator(e.regeneratorRuntime().mark((function r(t,n){return e.regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{this.dhServerSocket&&this.dhServerSocket&&this.dhServerSocket.request(t).on((function(e){n&&n(e)}))}catch(e){n&&n({code:-11,body:null,action:"RENDER_ERROR",requestId:t.requestId,message:JSON.stringify(e)})}case 1:case"end":return e.stop()}}),r,this)})))).apply(this,arguments)}}]),c}();exports.default=a;