(parser)
| 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 | }); |
nothing calls this directly
no test coverage detected