UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

2 lines 7.02 kB
!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("@iotize/tap/protocol/api"),require("rxjs"),require("@iotize/common/debug"),require("@iotize/common/promise"),require("@iotize/common/task-manager"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@iotize/tap/protocol/core",["exports","@iotize/tap/protocol/api","rxjs","@iotize/common/debug","@iotize/common/promise","@iotize/common/task-manager","rxjs/operators"],o):o(((t="undefined"!=typeof globalThis?globalThis:t||self).iotize=t.iotize||{},t.iotize.tap=t.iotize.tap||{},t.iotize.tap.protocol=t.iotize.tap.protocol||{},t.iotize.tap.protocol.core={}),t.iotize.tap.protocol.api,t.rxjs,t.debug$1,t.promise,t.taskManager,t.rxjs.operators)}(this,(function(t,o,e,n,i,r,c){"use strict";var s=n.createDebugger("@iotize/tap/protocol/common"),u=function(){function t(){this.connectionState=o.ConnectionState.DISCONNECTED,this._options={connect:{timeout:1e3},disconnect:{timeout:1e3},send:{timeout:500}}}return Object.defineProperty(t.prototype,"options",{get:function(){return this._options},set:function(t){this._options=t},enumerable:!1,configurable:!0}),t.prototype.getConnectionState=function(){return this.connectionState},t.prototype.isConnected=function(){return this.connectionState==o.ConnectionState.CONNECTED},t.prototype.setConnectionState=function(t){s("ComProtocol","setConnectionState",o.ConnectionState[t],"Old: ",o.ConnectionState[this.connectionState]);var e={newState:t,oldState:this.connectionState};return this.connectionState=t,this._connectionStateChange&&this._connectionStateChange.next(e),this},t.prototype.receiveStream=function(){throw new Error("Method not implemented.")},t.prototype.onConnectionStateChange=function(){return this._connectionStateChange||(this._connectionStateChange=new e.Subject),this._connectionStateChange},t}(),a=function(t,o){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&(t[e]=o[e])},a(t,o)};function p(t,o){var e,n,i,r,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(r){return function(s){return function(r){if(e)throw new TypeError("Generator is already executing.");for(;c;)try{if(e=1,n&&(i=2&r[0]?n.return:r[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,r[1])).done)return i;switch(n=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,n=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(i=c.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){c=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){c.label=r[1];break}if(6===r[0]&&c.label<i[1]){c.label=i[1],i=r;break}if(i&&c.label<i[2]){c.label=i[2],c.ops.push(r);break}i[2]&&c.ops.pop(),c.trys.pop();continue}r=o.call(t,c)}catch(t){r=[6,t],n=0}finally{e=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,s])}}}Object.create;Object.create;var l=this&&this.__awaiter||function(t,o,e,n){return new(e||(e=Promise))((function(i,r){function c(t){try{u(n.next(t))}catch(t){r(t)}}function s(t){try{u(n.throw(t))}catch(t){r(t)}}function u(t){var o;t.done?i(t.value):(o=t.value,o instanceof e?o:new e((function(t){t(o)}))).then(c,s)}u((n=n.apply(t,o||[])).next())}))},f="ComProtocol",m=function(t){function n(){var o=t.call(this)||this;return o._jobQueue=new r.TaskQueue,o}return function(t,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function e(){this.constructor=t}a(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}(n,t),n.prototype._send=function(t,n){var r=this;return e.defer((function(){return l(r,void 0,void 0,(function(){var e,r,c,s=this;return p(this,(function(u){switch(u.label){case 0:if(!this.isConnected())throw o.ComProtocol.Errors.notConnected({protocol:this});return e=new Date,[4,i.promiseTimeout(n.timeout,this.write(t),(function(t){return o.ComProtocol.Errors.timeoutError({msg:"Communication timeout. Send request to device device timeout ("+t.timeout+"ms).",protocol:s,timeout:t.timeout,startTime:t.startTime})}))];case 1:return u.sent(),r=(new Date).getTime()-e.getTime(),c=n.timeout-r,[4,i.promiseTimeout(c,this.read(),(function(t){return o.ComProtocol.Errors.timeoutError({msg:"Communication timeout. Read response from device timeout ("+c+"ms).",protocol:s,timeout:c,startTime:t.startTime})}))];case 2:return[2,u.sent()]}}))}))})).pipe(c.share())},n.prototype.cancel=function(){s(f,"Canceling operations"),this._jobQueue.cancelAll(o.ComProtocol.Errors.operationCanceled())},n.prototype.send=function(t,o){var e=this;return t=t.slice(0),this._jobQueue.addExecutor((function(){var n=o?o.timeout:e._options.send.timeout;return e._send(t,{timeout:n})}))},n.prototype.connect=function(t){var n=this;if(this.connectionState===o.ConnectionState.CONNECTED)return s(f,"QueueComProtocol is already connected"),e.of(null);if(this._connect$)return s(f,"QueueComProtocol is already connecting..."),this._connect$;if(this._disconnect$)return e.throwError(o.ComProtocol.Errors.operationInProgress("Failed to connect as disconnection is in progress"));var i=t?t.timeout:this._options.connect.timeout;return this._connect$=e.defer((function(){n.setConnectionState(o.ConnectionState.CONNECTING);var r=new Date;return n._connect(t).pipe(c.timeoutWith(i,e.throwError(o.ComProtocol.Errors.timeoutError({msg:"Protocol connection timeout",protocol:n,timeout:i,startTime:r}))))})).pipe(c.tap({complete:function(){n.setConnectionState(o.ConnectionState.CONNECTED)},error:function(){n.setConnectionState(o.ConnectionState.DISCONNECTED)}}),c.finalize((function(){n._connect$=void 0})),c.share()),this._connect$},n.prototype.disconnect=function(t){var n=this;if(this.connectionState===o.ConnectionState.DISCONNECTED)return s(f,"QueueComProtocol is already disconnected"),e.of();if(this._disconnect$)return this._disconnect$;if(this._connect$)return e.throwError(o.ComProtocol.Errors.operationInProgress("Failed to disconnect as connection is in progress"));var i=t?t.timeout:this._options.disconnect.timeout;return this._disconnect$=e.defer((function(){return l(n,void 0,void 0,(function(){return p(this,(function(t){return this.setConnectionState(o.ConnectionState.DISCONNECTING),[2]}))}))})).pipe(c.switchMap((function(){var r=new Date;return n._disconnect(t).pipe(c.timeoutWith(i,e.throwError(o.ComProtocol.Errors.timeoutError({msg:"Protocol disconnection timeout",protocol:n,timeout:i,startTime:r}))),c.finalize((function(){n.setConnectionState(o.ConnectionState.DISCONNECTED),n._disconnect$=void 0})))})),c.share()),this._disconnect$},n}(u);t.AbstractComProtocol=u,t.QueueComProtocol=m,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=iotize-tap-protocol-core.umd.min.js.map