()
| 404 | } |
| 405 | |
| 406 | _setupProtocol() { |
| 407 | return new Proxy({}, { get: (target, agentName, receiver) => new Proxy({}, { |
| 408 | get: (target, methodName, receiver) => { |
| 409 | const eventPattern = /^on(ce)?([A-Z][A-Za-z0-9]+)/; |
| 410 | var match = eventPattern.exec(methodName); |
| 411 | if (!match) |
| 412 | return args => this._sendCommandPromise(`${agentName}.${methodName}`, args || {}); |
| 413 | var eventName = match[2]; |
| 414 | eventName = eventName.charAt(0).toLowerCase() + eventName.slice(1); |
| 415 | if (match[1]) |
| 416 | return numOfEvents => this._waitForEventPromise( |
| 417 | `${agentName}.${eventName}`, numOfEvents || 1); |
| 418 | return listener => this._eventHandlers.set(`${agentName}.${eventName}`, listener); |
| 419 | } |
| 420 | })}); |
| 421 | } |
| 422 | |
| 423 | _dispatchMessage(messageString) { |
| 424 | var messageObject = JSON.parse(messageString); |
no test coverage detected