awv3
Version:
AWV client CAD framework
1 lines • 5.99 kB
JavaScript
;function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}exports.__esModule=!0;var _getIterator2=require("babel-runtime/core-js/get-iterator"),_getIterator3=_interopRequireDefault(_getIterator2),_stringify=require("babel-runtime/core-js/json/stringify"),_stringify2=_interopRequireDefault(_stringify),_regenerator=require("babel-runtime/regenerator"),_regenerator2=_interopRequireDefault(_regenerator),_asyncToGenerator2=require("babel-runtime/helpers/asyncToGenerator"),_asyncToGenerator3=_interopRequireDefault(_asyncToGenerator2),_promise=require("babel-runtime/core-js/promise"),_promise2=_interopRequireDefault(_promise),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_possibleConstructorReturn2=require("babel-runtime/helpers/possibleConstructorReturn"),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=require("babel-runtime/helpers/inherits"),_inherits3=_interopRequireDefault(_inherits2),_base=require("../communication/base"),_base2=_interopRequireDefault(_base),_parser=require("../core/parser"),_parser2=_interopRequireDefault(_parser),SignalR=function(e){function t(){var r=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];(0,_classCallCheck3.default)(this,t);var i=(0,_possibleConstructorReturn3.default)(this,e.call(this,n));i.ping=n.ping||1e4,i.onPause=void 0,i.onResume=void 0,i._connection,i._heartbeat,i._timeout,i._queueBlock,i._currentResolve,i._currentReject,i._queue=[],i._sequence=_promise2.default.resolve(),i._handler=null,i._defaultContext=(0,_parser.createContext)(),i._defaultHandler=function(){var e=(0,_asyncToGenerator3.default)(_regenerator2.default.mark(function e(t){return _regenerator2.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,_parser.handleResult)(i._defaultContext,t);case 2:i._defaultContext.promises=[],i._defaultContext.results=[];case 4:case"end":return e.stop()}},e,r)}));return function(t){return e.apply(this,arguments)}}(),i.connected=!1,i.paused=!1,i.transport="",i.serverState=void 0;var o=require("../communication/signalrhub").default;return o(i),i._proxy.clientHub.client.result=function(e){var t=JSON.parse(e);i.connected?"Service"===t.command?"Pause"===t.event?(i.paused=!0,i.serverState=t.state,i.onPause&&i.onPause(t)):"Resume"===t.event&&(i.paused=!1,i.onResume&&i.onResume(t)):(i._handler||i._defaultHandler)(t):"PERMISSION"==t.command?(i.connected=!0,i.transport=t.transport,i._currentResolve(i)):"WAIT"==t.command&&(i.transport=t.transport)},i._proxy.clientHub.client.disconnect=function(){i._heartbeat&&clearInterval(i._heartbeat),i._hub.stop(),i.connected=!1},i._proxy.clientHub.client.debug=function(e){console.log(e)},i._proxy.clientHub.client.queueNext=function(){var e=i._queue.shift();void 0!==e?i._proxy.clientHub.server.send(e):i._queueBlock=!0},i._hub.disconnected(function(){i._heartbeat&&clearInterval(i._heartbeat),i._timeout&&clearTimeout(i._timeout),i.connected=!1,i._currentReject(i._hub.url+" not found")}),i}return(0,_inherits3.default)(t,e),t.prototype.connect=function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?this._hub.url:arguments[0];if(console.log("connecting to "+t),this.connected)return _promise2.default.reject("Disconnect first!");var r;return r=_promise2.default.resolve(t+"/signalr"),r.then(function(t){return t?(e._timeout&&clearTimeout(e._timeout),e._timeout=setTimeout(function(){},4e3),e._hub.url=t,e._hub.start(e.options).done(function(){e._proxy.clientHub.server.init(!1,!!e.options.pause,e.options.timeOut?e.options.timeOut:0,!!e.options.rebuild&&e.options.rebuild),e._heartbeat&&clearInterval(e._heartbeat),e._heartbeat=setInterval(function(){e._proxy.clientHub.server.ping()},e.ping)}),new _promise2.default(function(t,r){e._currentResolve=t,e._currentReject=r})):_promise2.default.reject("Supply URL!")})},t.prototype.disconnect=function(){this.connected&&void 0!==this._proxy.clientHub&&(this._proxy.clientHub.client.disconnect(),this._currentResolve=null,this._currentReject=null,this.connected=!1,this._timeout&&clearTimeout(this._timeout))},t.prototype.send=function(e){"webSockets"===this.transport||this._queueBlock?(this._queueBlock=!1,this._proxy.clientHub.server.send(e)):this._queue.push(e)},t.prototype.request=function(e,t,r){var n=this;if(!this.connected)return _promise2.default.reject("Not connected!");if(this.paused&&this.serverState){var i=this.serverState;this.serverState=void 0,this.setState(i,!!this.options.rebuild,!!this.options.rebuild)}e=Array.isArray(e)?e:[e];var o=function(){return new _promise2.default(function(r,i){var o=setTimeout(i,o||12e4),u=(0,_parser.createContext)(t,r,i,e);u.options.callback({type:_parser2.default.Factory.Started,context:u}),n._handler=function(e){return(0,_parser.handleResult)(u,e)},n.send((0,_stringify2.default)({command:"BeginFrame",transactionID:u.id}));for(var a=e,s=Array.isArray(a),c=0,a=s?a:(0,_getIterator3.default)(a);;){var l;if(s){if(c>=a.length)break;l=a[c++]}else{if(c=a.next(),c.done)break;l=c.value}var _=l;n.send((0,_stringify2.default)(_))}n.send((0,_stringify2.default)({command:"EndFrame",transactionID:u.id}))}).then(function(e){return e},function(e){return e}).then(function(e){return e.options.callback({type:_parser2.default.Factory.Finished,context:e}),clearTimeout(n._timeout),n._handler=null,e})};return this._sequence=this._sequence.then(o,o),this._sequence},t}(_base2.default);exports.default=SignalR,SignalR.eliminate=function(e,t){if(1===e.length)return new SignalR(t).connect(e.shift());var r=e.shift();return e.reduce(function(e,r){return e.then(function(e){return e},function(){return new SignalR(t).connect(r)})},new SignalR(t).connect(r))},SignalR.race=function(e,t){return new _promise2.default(function(r,n){var i=0,o=void 0;e.map(function(u){return new SignalR(t).connect(u).then(function(e){return o?e.disconnect():r(o=e)}).catch(function(){++i===e.length&&n()})})})};