UNPKG

dev-classes

Version:
134 lines (133 loc) 5.7 kB
var w = Object.defineProperty; var C = (i, e, s) => e in i ? w(i, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : i[e] = s; var n = (i, e, s) => (C(i, typeof e != "symbol" ? e + "" : e, s), s); var f = (i, e, s) => { if (e.has(i)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(i) : e.set(i, s); }; import { DelaysPromise as R } from "../DelaysPromise/DelaysPromise.js"; import { NetworkInformationCordova as d } from "../Utils/NetworkInformation/classes/NetworkInformationCordova.js"; import { NetworkInformationPC as v } from "../Utils/NetworkInformation/classes/NetworkInformationPC.js"; import { EventSubscribers as g } from "../Utils/EventSubscribers/EventSubscribers.js"; import { NetworkInformation as O } from "../Utils/NetworkInformation/NetworkInformation.js"; import { WsApi as S } from "./deps/WsApi/WsApi.js"; const I = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; function m(i) { return I.test(i); } function u() { var i = URL.createObjectURL(new Blob()), e = i.toString(); return URL.revokeObjectURL(i), e.split(/[:\/]/g).pop().toLowerCase(); } u.valid = m; var r, A; const t = class t { static copyState(e) { return JSON.parse(JSON.stringify(e)); } static setState(e) { t.state = { ...t.state, ...e }; } static resetState() { t.state = t.copyState(t.stateDefault); } static setOptions(e) { t.options = { ...t.options, ...e }; } static setStatusReConnect(e) { t.setState({ isActiveReConnect: e }), t.events.publish("reConnect", e); } static connect() { t.wsApi.getIsInitWS() && (console.log("CONNECT WS"), t.setState({ isDisconnect: !1 }), t.wsApi.connect()); } static disconnect() { t.state.isDisconnect || (t.setState({ isDisconnect: !0 }), console.log("DISCONNECT WS"), t.wsApi.disconnect(), t.resetState()); } static send(e, s) { const { action: o, ...c } = e, a = u(); t.wsApi.setRequestSave({ reqId: a, payload: { action: o, ...c }, cb: s }); const l = t.wsApi.getSocket(); if (!l || l.readyState !== 1) { console.log("Нет подключения к сокету"); return; } t.wsApi.send(JSON.stringify(e)); } static stopReConnect(e) { console.dir("функция stop не присвоена к stopReConnect"); } }; r = new WeakSet(), A = function() { }, f(t, r), n(t, "state", { isDisconnect: !0, isActiveReConnect: !1, isOfflineSocket: !0, isReady: !1, isNetworkStatus: navigator.onLine }), n(t, "options", { isReConnectNetworkOnline: !1 }), n(t, "wsApi", new S()), n(t, "delay", new R()), n(t, "internet", new O([new v(), new d()])), n(t, "events", new g(["timeOffReConnect", "reConnect"])), n(t, "saveID", { idReConnect: null, checkConnect: null }), n(t, "stateDefault", t.copyState(t.state)), n(t, "setInfoConnect", (e) => { e.status || t.close(), t.setState({ isOfflineSocket: !e.status }), t.events.publish("timeOffReConnect", e), t.setStatusReConnect(!1); }), n(t, "online", () => { t.setState({ isNetworkStatus: !0 }), !t.state.isActiveReConnect && t.options.isReConnectNetworkOnline && t.socketReConnect(); }), n(t, "offline", () => { t.setState({ isNetworkStatus: !1 }), t.state.isActiveReConnect && t.stopReConnect(!1); }), n(t, "splitOptions", (e) => Object.entries(e).reduce( (s, [o, c]) => { const a = t.wsApi.getOptions(); return o in a ? { ...s, WsOptions: { ...s.WsOptions, [o]: c } } : { ...s, SocketApiOptions: { ...s.SocketApiOptions, [o]: c } }; }, { WsOptions: {}, SocketApiOptions: {} } )), /*---------------------------------------------------------------------------------------------------------------------------*/ n(t, "getState", () => t.state), n(t, "on", (e, s) => { t.wsApi.getRegisteredEvents().includes(e) ? t.wsApi.on(e, s) : t.events.subscribe(e, s); }), n(t, "off", (e, s) => { t.wsApi.getRegisteredEvents().includes(e) ? t.wsApi.off(e, s) : t.events.unsubscribe(e, s); }), // static getRequestSave = SocketApi.wsApi.getRequestSave; n(t, "getStatusSocket", t.wsApi.getStatusSocket), n(t, "close", () => { t.state.isActiveReConnect ? t.stopReConnect(!1) : t.wsApi.close(); }), n(t, "init", (e) => { const { WsOptions: s, SocketApiOptions: o } = t.splitOptions(e); t.internet.run((c) => { c ? t.online() : t.offline(); }), t.setOptions(o), t.wsApi.init(s); }), /*------------------------------------------------------------------------------------------------------*/ // useEffect(() => { // if((isReConnectSocket && (!isNetworkStatus || statusWS === 'ready'))){ // SocketApi.stopReConnect(); // } // },[isReConnectSocket, isNetworkStatus, statusWS]); n(t, "socketReConnect", () => { if (t.wsApi.getIsInitWS()) if (console.log("reconnect"), t.saveID.idReConnect) console.groupCollapsed("Процесс socketReConnect уже запущен"), console.log("SocketApi.saveID: ", t.saveID), console.groupEnd(); else { t.setStatusReConnect(!0), t.connect(); const { timeReConnect: e, numberOfRepit: s } = t.wsApi.getOptions(); t.delay.startActionEvery( () => (console.log("reconnect:>>delay"), t.wsApi.getStatusSocket() === "ready" ? (console.dir("Подключение установлено"), !0) : (t.connect(), !1)), { interval: e, countAction: s, watchIdInterval: (o) => { t.saveID.idReConnect = o; }, controlAction: ({ stop: o, getIsActiveEvent: c }) => { t.stopReConnect = o; } } ).then(t.setInfoConnect).catch(t.setInfoConnect); } }); let p = t; export { p as SocketApi };