| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | let callbacks = [];let callbacksPersist = [];let onConnectCallbacks = [];let onDisconnectCallbacks = [];let onConnectErrorCallbacks = [];let onConnectCallbacksPersist = [];let onDisconnectCallbacksPersist = [];let onConnectErrorCallbacksPersist = [];export default {	ready: false,	socket: null,	getSocket: function () {		if (arguments[0] === true) {			if (this.ready) arguments[1](this.socket);			else callbacksPersist.push(arguments[1]);		} else {			if (this.ready) arguments[0](this.socket);			else callbacks.push(arguments[0]);		}	},	onConnect: function() {		if (arguments[0] === true) {			onConnectCallbacksPersist.push(arguments[1]);		} else onConnectCallbacks.push(arguments[0]);	},	onDisconnect: function() {		if (arguments[0] === true) {			onDisconnectCallbacksPersist.push(arguments[1]);		} else onDisconnectCallbacks.push(arguments[0]);	},	onConnectError: function() {		if (arguments[0] === true) {			onConnectErrorCallbacksPersist.push(arguments[1]);		} else onConnectErrorCallbacks.push(arguments[0]);	},	clear: () => {		onConnectCallbacks = [];		onDisconnectCallbacks = [];		onConnectErrorCallbacks = [];		callbacks = [];	},	removeAllListeners: function () {		Object.keys(this.socket._callbacks).forEach((id) => {			if (id.indexOf("$event:") !== -1 && id.indexOf("$event:keep.") === -1) {				delete this.socket._callbacks[id];			}		});	},	init: function (url) {		this.socket = window.socket = io(url);		this.socket.on('connect', () => {			onConnectCallbacks.forEach((cb) => {				cb();			});			onConnectCallbacksPersist.forEach((cb) => {				cb();			});		});		this.socket.on('disconnect', () => {			console.log("IO: SOCKET DISCONNECTED");			onDisconnectCallbacks.forEach((cb) => {				cb();			});			onDisconnectCallbacksPersist.forEach((cb) => {				cb();			});		});		this.socket.on('connect_error', () => {			console.log("IO: SOCKET CONNECT ERROR");			onConnectErrorCallbacks.forEach((cb) => {				cb();			});			onConnectErrorCallbacksPersist.forEach((cb) => {				cb();			});		});		this.ready = true;		callbacks.forEach(callback => {			callback(this.socket);		});		callbacksPersist.forEach(callback => {			callback(this.socket);		});		callbacks = [];		callbacksPersist = [];	}}
 |