UNPKG

2.06 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){return new WebSocket(e.evaluate())}var n,r;n=window._hyperscript,r=["then","catch","length","asyncWrapper","toJSON"],n.addFeature("socket",function(n,i,o){if(o.matchToken("socket")){var a=n.requireElement("dotOrColonPath",o).evaluate().split("."),u=a.pop(),c={},s=n.requireElement("stringLike",o),x=1e4;if(o.matchToken("with")&&(o.requireToken("timeout"),x=n.requireElement("timeExpression",o).evaluate()),o.matchToken("on")){if(o.requireToken("message"),o.matchToken("as")){o.requireToken("json");var f=!0}for(var d=n.requireElement("commandList",o),l={type:"implicitReturn",op:function(e){return i.HALT},execute:function(e){}},m=d;m.next;)m=m.next;m.next=l}var p=t(s),v=function n(i){return new Proxy({},{get:function(o,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=[],o=0;o<arguments.length;o++)r.push(arguments[o]);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 i>=0&&setTimeout(function(){c[n]&&c[n].reject("Timed out"),delete c[n]},i),x}}})}(x),h={raw:p,dispatchEvent:function(e){var t=e.detail;delete t.sentBy,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},g={name:u,socket:h,install:function(e){i.assignToNamespace(e,a,u,h)}};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=i.makeContext(h,g,h);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}),g}})});
2//# sourceMappingURL=socket.min.js.map