UNPKG

2.31 kBJavaScriptView Raw
1!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){function e(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})}function t(e){var t=function(e){var t=e;if(0===t.indexOf("/")){var n=window.location.hostname+(window.location.port?":"+window.location.port:"");"https:"===window.location.protocol?t="wss://"+n+t:"http:"===window.location.protocol&&(t="ws://"+n+t)}return t}(e.evaluate());return new WebSocket(t)}var n,r;n=window._hyperscript,r=["then","catch","length","asyncWrapper","toJSON"],n.addFeature("socket",function(n,o,i){if(i.matchToken("socket")){var a=n.requireElement("dotOrColonPath",i).evaluate().split("."),u=a.pop(),c={},s=n.requireElement("stringLike",i),x=1e4;if(i.matchToken("with")&&(i.requireToken("timeout"),x=n.requireElement("expression",i).evaluate()),i.matchToken("on")){if(i.requireToken("message"),i.matchToken("as")){i.requireToken("json");var f=!0}for(var d=n.requireElement("commandList",i),l={type:"implicitReturn",op:function(e){return o.HALT},execute:function(e){}},m=d;m.next;)m=m.next;m.next=l}var p=t(s),v=function n(o){return new Proxy({},{get:function(i,a){return r.indexOf(a)>=0?null:"noTimeout"===a?n(-1):"timeout"===a?function(e){return n(parseInt(e))}:function(){for(var n=e(),r=[],i=0;i<arguments.length;i++)r.push(arguments[i]);var u={iid:n,function:a,args:r};(p=p||t(s)).send(JSON.stringify(u));var x=new Promise(function(e,t){c[n]={resolve:e,reject:t}});return o>=0&&setTimeout(function(){c[n]&&c[n].reject("Timed out"),delete c[n]},o),x}}})}(x),w={raw:p,dispatchEvent:function(e){var t=e.detail;delete t.sender,delete t._namedArgList_,p.send(JSON.stringify(function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}({type:e.type},t)))},rpc:v},h={name:u,socket:w,install:function(e){o.assignToNamespace(e,a,u,w)}};return p.onmessage=function(e){var t=e.data;try{var n=JSON.parse(t)}catch(e){}if(n&&n.iid&&(n.throw?c[n.iid].reject(n.throw):c[n.iid].resolve(n.return),delete c[n.iid]),d){var r=o.makeContext(w,h,w);if(f){if(!n)throw"Received non-JSON message from socket: "+t;r.message=n,r.result=n}else r.message=t,r.result=t;d.execute(r)}},p.addEventListener("close",function(e){p=null}),h}})});
2//# sourceMappingURL=socket.min.js.map