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

Method parse

www/js/_hyperscript-max.js:11316–11438  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

11314 runtime2.assignToNamespace(target, this.nameSpace, this.socketName, this.socketObject);
11315 }
11316 static parse(parser) {
11317 if (!parser.matchToken("socket")) return;
11318 var name = parser.requireElement("dotOrColonPath");
11319 var qualifiedName = name.evalStatically();
11320 var nameSpace = qualifiedName.split(".");
11321 var socketName = nameSpace.pop();
11322 var promises = {};
11323 var url = parser.parseURLOrExpression();
11324 var defaultTimeout = 1e4;
11325 if (parser.matchToken("with")) {
11326 parser.requireToken("timeout");
11327 defaultTimeout = parser.requireElement("expression").evalStatically();
11328 }
11329 var jsonMessages = false;
11330 var messageHandler = null;
11331 if (parser.matchToken("on")) {
11332 parser.requireToken("message");
11333 if (parser.matchToken("as")) {
11334 if (!parser.matchToken("JSON")) parser.requireToken("json");
11335 jsonMessages = true;
11336 }
11337 messageHandler = parser.requireElement("commandList");
11338 parser.ensureTerminated(messageHandler);
11339 }
11340 var socket = new WebSocket(parseUrl(url.evalStatically()));
11341 function getProxy(timeout) {
11342 return new Proxy(
11343 {},
11344 {
11345 get: function(obj, property) {
11346 if (PROXY_BLACKLIST.includes(property)) {
11347 return null;
11348 } else if (property === "noTimeout") {
11349 return getProxy(-1);
11350 } else if (property === "timeout") {
11351 return function(i) {
11352 return getProxy(parseInt(i));
11353 };
11354 } else {
11355 return function() {
11356 var uuid = genUUID();
11357 var args = [];
11358 for (var i = 0; i < arguments.length; i++) {
11359 args.push(arguments[i]);
11360 }
11361 var rpcInfo = {
11362 iid: uuid,
11363 function: property,
11364 args
11365 };
11366 socket = socket ? socket : new WebSocket(parseUrl(url.evalStatically()));
11367 socket.send(JSON.stringify(rpcInfo));
11368 var promise = new Promise(function(resolve, reject) {
11369 promises[uuid] = {
11370 resolve,
11371 reject
11372 };
11373 });

Callers

nothing calls this directly

Calls 12

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

Tested by

no test coverage detected