MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

src/ext/socket.js:44–187  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

42 }
43
44 static parse(parser) {
45 if (!parser.matchToken("socket")) return;
46
47 var name = parser.requireElement("dotOrColonPath");
48 var qualifiedName = name.evalStatically();
49 var nameSpace = qualifiedName.split(".");
50 var socketName = nameSpace.pop();
51
52 var promises = {};
53 var url = parser.parseURLOrExpression();
54
55 var defaultTimeout = 10000;
56 if (parser.matchToken("with")) {
57 parser.requireToken("timeout");
58 defaultTimeout = parser.requireElement("expression").evalStatically();
59 }
60
61 var jsonMessages = false;
62 var messageHandler = null;
63 if (parser.matchToken("on")) {
64 parser.requireToken("message");
65 if (parser.matchToken("as")) {
66 if (!parser.matchToken("JSON")) parser.requireToken("json");
67 jsonMessages = true;
68 }
69 messageHandler = parser.requireElement("commandList");
70 parser.ensureTerminated(messageHandler);
71 }
72
73 var socket = new WebSocket(parseUrl(url.evalStatically()));
74
75 function getProxy(timeout) {
76 return new Proxy(
77 {},
78 {
79 get: function (obj, property) {
80 if (PROXY_BLACKLIST.includes(property)) {
81 return null;
82 } else if (property === "noTimeout") {
83 return getProxy(-1);
84 } else if (property === "timeout") {
85 return function (i) {
86 return getProxy(parseInt(i));
87 };
88 } else {
89 return function () {
90 var uuid = genUUID();
91 var args = [];
92 for (var i = 0; i < arguments.length; i++) {
93 args.push(arguments[i]);
94 }
95 var rpcInfo = {
96 iid: uuid,
97 function: property,
98 args: args,
99 };
100 socket = socket ? socket : new WebSocket(parseUrl(url.evalStatically())); //recreate socket if needed
101 socket.send(JSON.stringify(rpcInfo));

Callers 4

evaluateFunction · 0.45
_hyperscript.jsFile · 0.45
mergeMetaConfigFunction · 0.45
release-check.mjsFile · 0.45

Calls 11

parseUrlFunction · 0.70
matchTokenMethod · 0.45
requireElementMethod · 0.45
evalStaticallyMethod · 0.45
parseURLOrExpressionMethod · 0.45
requireTokenMethod · 0.45
ensureTerminatedMethod · 0.45
resolveMethod · 0.45
makeContextMethod · 0.45
executeMethod · 0.45
setParentMethod · 0.45

Tested by

no test coverage detected