cyl-hooks-tools
Version:
基于react上下文实现的权限管理
1 lines • 3.77 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.cylHooksTools=t(require("react")):e.cylHooksTools=t(e.react)}(self,e=>(()=>{"use strict";var t={155:t=>{t.exports=e},183:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==n(t)?t:t+""}r.d(t,{b:()=>u});var u=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.events={}},t=[{key:"on",value:function(e,t){this.events[e]||(this.events[e]=[]),this.events[e].push(t)}},{key:"emit",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.events[e]&&this.events[e].forEach(function(e){return e.apply(void 0,r)})}},{key:"off",value:function(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(function(e){return e!==t}))}}],t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};n.d(o,{default:()=>s});var i=n(183),u=n(155);function a(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var f={};const s={useWebsocket:function(e,t,r,n){(0,u.useEffect)(function(){var n;if(!f[e]){var o=new WebSocket(t),u=new i.b,a={};o.onopen=function(t){u.emit("event",e,o,"open",t,a)},o.onclose=function(t){u.emit("event",e,o,"close",t,a)},o.onmessage=function(t){u.emit("event",e,o,"message",t,a)},o.onerror=function(t){u.emit("event",e,o,"error",t,a)},n={ws:o,event:u,rc:0,data:a},f[e]=n}if(n)return n.event.on("event",r),n.rc+=1,function(){n.event.off("event",r),n.rc-=1,0===n.rc&&(n.ws.close(),f[e]=null)}},[e].concat(a(n)))},makeWebsocketUrl:function(e,t){var r="";if("https"===e)r+="wss://";else r+="ws://";return r+=t,r+=arguments.length>2&&void 0!==arguments[2]?arguments[2]:""},makeWebsocketUrlFromRelativeUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="";if("https:"===window.location.protocol)t+="wss://";else t+="ws://";return t+=window.location.host,t+=e}};return o=o.default})());