Files
fad_oa/ruoyi-ui/public/worker.js

2 lines
238 KiB
JavaScript
Raw Normal View History

2026-05-30 15:32:57 +08:00
var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,s=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,a=(e,t)=>{for(var r in t||(t={}))i.call(t,r)&&s(e,r,t[r]);if(n)for(var r of n(t))o.call(t,r)&&s(e,r,t[r]);return e},u=(e,n)=>t(e,r(n)),c=(e,t,r)=>(s(e,"symbol"!=typeof t?t+"":t,r),r);const l={CONNECT_TIMEOUT:{code:-32300,message:"Connect timeout"},APPLICATION_ERROR:{code:-32500,message:"Application error"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"}};const f=class{constructor(e){c(this,"_event"),c(this,"_methods",{}),c(this,"_timeout",0),c(this,"_$connect",null),this._event=e.event,this._timeout=e.timeout||0,e.methods&&Object.entries(e.methods).forEach((([e,t])=>{this.registerMethod(e,t)})),this._event.onerror=e=>{const{code:t,message:r,data:n}=e;if(n.event&&Array.isArray(n.args)&&n.args.length){const e=n.args[0],i=this._getAckEventName(e.method),o={jsonrpc:"2.0",id:null==e?void 0:e.id,error:{code:t,message:r,data:e}};this._event.emit(i,o)}else console.error(e)},this.connect()}static uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}_getSynEventName(e){return`${f.EVENT.SYN_SIGN}${e}`}_getAckEventName(e){return`${f.EVENT.ACK_SIGN}${e}`}connect(e){return this._$connect||(this._$connect=new Promise(((t,r)=>{const n=e||this._timeout;let i;n&&(i=setTimeout((()=>{const e=u(a({},l.TIMEOUT),{data:{timeout:n}});r(e)}),n));const o=f.EVENT.CONNECT,s=this._getAckEventName(o),c=this._getSynEventName(o),d=()=>{clearTimeout(i),t()};this._event.on(s,d);this._event.on(c,(()=>{this._event.emit(s),d()})),this._event.emit(c)}))),this._$connect}registerMethod(e,t){if(this._methods[e])throw new Error(`${e} already registered`);this._methods[e]=t;const r=this._getSynEventName(e);this._event.on(r,(r=>{const n=this._getAckEventName(e);r.id?Promise.resolve(t(...r.params)).then((e=>{const t={jsonrpc:"2.0",result:e,id:r.id};this._event.emit(n,t)})).catch((e=>{const t={jsonrpc:"2.0",id:r.id,error:{code:(null==e?void 0:e.code)||l.APPLICATION_ERROR.code,message:(null==e?void 0:e.message)||l.APPLICATION_ERROR.message,data:null}};this._event.emit(n,t)})):t(...r.params)}))}removeMethod(e){this._methods[e]||delete this._methods[e];const t=this._getSynEventName(e);this._event.off(t)}invoke(e,...t){return new Promise(((r,n)=>{const i=t[t.length-1],o=i&&"object"==typeof i&&(Reflect.has(i,"isNotify")||Reflect.has(i,"timeout")),s=o?i:{isNotify:!1,timeout:0},c=o?t.slice(0,-1):t,d=this._getSynEventName(e),h=f.uuid(),_={jsonrpc:"2.0",method:e,params:c,id:h};if(this._event.emit(d,_),s.isNotify)r(void 0);else{const t=this._getAckEventName(e),i=s.timeout||this._timeout;let o;i&&(o=setTimeout((()=>{const e=u(a({},l.CONNECT_TIMEOUT),{data:{timeout:i}});n(e)}),i));const c=e=>{e.id===h&&(clearTimeout(o),this._event.off(t,c),e.error?n(e.error):r(e.result))};this._event.on(t,c)}}))}destroy(){Object.entries(this._methods).forEach((([e])=>{const t=this._getSynEventName(e);this._event.off(t)}));const e=this._getAckEventName(f.EVENT.CONNECT),t=this._getSynEventName(f.EVENT.CONNECT);this._event.off(t),this._event.off(e),this._event.destroy&&this._event.destroy()}};let d=f;c(d,"CODES",l),c(d,"EVENT",{SYN_SIGN:"syn:",ACK_SIGN:"ack:",CONNECT:"__rpc_connect_event",SYNC_METHODS:"__rpc_sync_methods_event"});const h={ErrorInit:10001,ErrorNoRecord:10002,ErrorDBTimeout:10003};var _;!function(e){e.Login="Login",e.OnConnectFailed="OnConnectFailed",e.OnConnectSuccess="OnConnectSuccess",e.OnConnecting="OnConnecting",e.OnKickedOffline="OnKickedOffline",e.OnSelfInfoUpdated="OnSelfInfoUpdated",e.OnUserTokenExpired="OnUserTokenExpired",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnProgress="OnProgress",e.OnRecvNewMessage="OnRecvNewMessage",e.OnRecvNewMessages="OnRecvNewMessages",e.OnRecvOnlineOnlyMessage="OnRecvOnlineOnlyMessage",e.OnRecvOfflineNewMessage="onRecvOfflineNewMessage",e.OnRecvOnlineOnlyMessages="OnRecvOnli