MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / parse

Method parse

www/js/ext/socket.esm.js:98–220  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

96 runtime.assignToNamespace(target, this.nameSpace, this.socketName, this.socketObject);
97 }
98 static parse(parser) {
99 if (!parser.matchToken("socket")) return;
100 var name = parser.requireElement("dotOrColonPath");
101 var qualifiedName = name.evalStatically();
102 var nameSpace = qualifiedName.split(".");
103 var socketName = nameSpace.pop();
104 var promises = {};
105 var url = parser.parseURLOrExpression();
106 var defaultTimeout = 1e4;
107 if (parser.matchToken("with")) {
108 parser.requireToken("timeout");
109 defaultTimeout = parser.requireElement("expression").evalStatically();
110 }
111 var jsonMessages = false;
112 var messageHandler = null;
113 if (parser.matchToken("on")) {
114 parser.requireToken("message");
115 if (parser.matchToken("as")) {
116 if (!parser.matchToken("JSON")) parser.requireToken("json");
117 jsonMessages = true;
118 }
119 messageHandler = parser.requireElement("commandList");
120 parser.ensureTerminated(messageHandler);
121 }
122 var socket = new WebSocket(parseUrl(url.evalStatically()));
123 function getProxy(timeout) {
124 return new Proxy(
125 {},
126 {
127 get: function(obj, property) {
128 if (PROXY_BLACKLIST.includes(property)) {
129 return null;
130 } else if (property === "noTimeout") {
131 return getProxy(-1);
132 } else if (property === "timeout") {
133 return function(i) {
134 return getProxy(parseInt(i));
135 };
136 } else {
137 return function() {
138 var uuid = genUUID();
139 var args = [];
140 for (var i = 0; i < arguments.length; i++) {
141 args.push(arguments[i]);
142 }
143 var rpcInfo = {
144 iid: uuid,
145 function: property,
146 args
147 };
148 socket = socket ? socket : new WebSocket(parseUrl(url.evalStatically()));
149 socket.send(JSON.stringify(rpcInfo));
150 var promise = new Promise(function(resolve, reject) {
151 promises[uuid] = {
152 resolve,
153 reject
154 };
155 });

Callers

nothing calls this directly

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