webdriverio-automation
Version:
WebdriverIO-Automation android ios project
100 lines (73 loc) • 11.1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addWebSocketHandler = addWebSocketHandler;
exports.removeWebSocketHandler = removeWebSocketHandler;
exports.removeAllWebSocketHandlers = removeAllWebSocketHandlers;
exports.getWebSocketHandlers = getWebSocketHandlers;
exports.DEFAULT_WS_PATHNAME_PREFIX = void 0;
require("source-map-support/register");
var _lodash = _interopRequireDefault(require("lodash"));
var _url = _interopRequireDefault(require("url"));
const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
async function addWebSocketHandler(handlerPathname, handlerServer) {
let isUpgradeListenerAssigned = true;
if (_lodash.default.isUndefined(this.webSocketsMapping)) {
this.webSocketsMapping = {};
isUpgradeListenerAssigned = false;
}
this.webSocketsMapping[handlerPathname] = handlerServer;
if (isUpgradeListenerAssigned) {
return;
}
this.on('upgrade', (request, socket, head) => {
const currentPathname = _url.default.parse(request.url).pathname;
for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
if (currentPathname === pathname) {
wsServer.handleUpgrade(request, socket, head, ws => {
wsServer.emit('connection', ws, request);
});
return;
}
}
socket.destroy();
});
}
async function getWebSocketHandlers(keysFilter = null) {
if (_lodash.default.isEmpty(this.webSocketsMapping)) {
return {};
}
let result = {};
for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
if (!_lodash.default.isString(keysFilter) || pathname.includes(keysFilter)) {
result[pathname] = wsServer;
}
}
return result;
}
async function removeWebSocketHandler(handlerPathname) {
if (!this.webSocketsMapping || !this.webSocketsMapping[handlerPathname]) {
return false;
}
try {
this.webSocketsMapping[handlerPathname].close();
return true;
} catch (ign) {} finally {
delete this.webSocketsMapping[handlerPathname];
}
return false;
}
async function removeAllWebSocketHandlers() {
if (_lodash.default.isEmpty(this.webSocketsMapping)) {
return false;
}
let result = false;
for (const pathname of _lodash.default.keys(this.webSocketsMapping)) {
result = result || (await this.removeWebSocketHandler(pathname));
}
return result;
}require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL3dlYnNvY2tldC5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiaXNVcGdyYWRlTGlzdGVuZXJBc3NpZ25lZCIsIl8iLCJpc1VuZGVmaW5lZCIsIndlYlNvY2tldHNNYXBwaW5nIiwib24iLCJyZXF1ZXN0Iiwic29ja2V0IiwiaGVhZCIsImN1cnJlbnRQYXRobmFtZSIsInVybCIsInBhcnNlIiwicGF0aG5hbWUiLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZXN1bHQiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiaWduIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxLQUFuQzs7O0FBZ0JBLGVBQWVDLG1CQUFmLENBQW9DQyxlQUFwQyxFQUFxREMsYUFBckQsRUFBb0U7QUFDbEUsTUFBSUMseUJBQXlCLEdBQUcsSUFBaEM7O0FBQ0EsTUFBSUMsZ0JBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztBQUN6QyxTQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtBQUNBSCxJQUFBQSx5QkFBeUIsR0FBRyxLQUE1QjtBQUNEOztBQUNELE9BQUtHLGlCQUFMLENBQXVCTCxlQUF2QixJQUEwQ0MsYUFBMUM7O0FBQ0EsTUFBSUMseUJBQUosRUFBK0I7QUFDN0I7QUFDRDs7QUFHRCxPQUFLSSxFQUFMLENBQVEsU0FBUixFQUFtQixDQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBa0JDLElBQWxCLEtBQTJCO0FBQzVDLFVBQU1DLGVBQWUsR0FBR0MsYUFBSUMsS0FBSixDQUFVTCxPQUFPLENBQUNJLEdBQWxCLEVBQXVCRSxRQUEvQzs7QUFDQSxTQUFLLE1BQU0sQ0FBQ0EsUUFBRCxFQUFXQyxRQUFYLENBQVgsSUFBbUNYLGdCQUFFWSxPQUFGLENBQVUsS0FBS1YsaUJBQWYsQ0FBbkMsRUFBc0U7QUFDcEUsVUFBSUssZUFBZSxLQUFLRyxRQUF4QixFQUFrQztBQUNoQ0MsUUFBQUEsUUFBUSxDQUFDRSxhQUFULENBQXVCVCxPQUF2QixFQUFnQ0MsTUFBaEMsRUFBd0NDLElBQXhDLEVBQStDUSxFQUFELElBQVE7QUFDcERILFVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjLFlBQWQsRUFBNEJELEVBQTVCLEVBQWdDVixPQUFoQztBQUNELFNBRkQ7QUFHQTtBQUNEO0FBQ0Y7O0FBQ0RDLElBQUFBLE1BQU0sQ0FBQ1csT0FBUDtBQUNELEdBWEQ7QUFZRDs7QUFhRCxlQUFlQyxvQkFBZixDQUFxQ0MsVUFBVSxHQUFHLElBQWxELEVBQXdEO0FBQ3RELE1BQUlsQixnQkFBRW1CLE9BQUYsQ0FBVSxLQUFLakIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEVBQVA7QUFDRDs7QUFFRCxNQUFJa0IsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsT0FBSyxNQUFNLENBQUNWLFFBQUQsRUFBV0MsUUFBWCxDQUFYLElBQW1DWCxnQkFBRVksT0FBRixDQUFVLEtBQUtWLGlCQUFmLENBQW5DLEVBQXNFO0FBQ3BFLFFBQUksQ0FBQ0YsZ0JBQUVxQixRQUFGLENBQVdILFVBQVgsQ0FBRCxJQUEyQlIsUUFBUSxDQUFDWSxRQUFULENBQWtCSixVQUFsQixDQUEvQixFQUE4RDtBQUM1REUsTUFBQUEsTUFBTSxDQUFDVixRQUFELENBQU4sR0FBbUJDLFFBQW5CO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPUyxNQUFQO0FBQ0Q7O0FBWUQsZUFBZUcsc0JBQWYsQ0FBdUMxQixlQUF2QyxFQUF3RDtBQUN0RCxNQUFJLENBQUMsS0FBS0ssaUJBQU4sSUFBMkIsQ0FBQyxLQUFLQSxpQkFBTCxDQUF1QkwsZUFBdkIsQ0FBaEMsRUFBeUU7QUFDdkUsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSTtBQUNGLFNBQUtLLGlCQUFMLENBQXVCTCxlQUF2QixFQUF3QzJCLEtBQXhDO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FIRCxDQUdFLE9BQU9DLEdBQVAsRUFBWSxDQUViLENBTEQsU0FLVTtBQUNSLFdBQU8sS0FBS3ZCLGlCQUFMLENBQXVCTCxlQUF2QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZTZCLDBCQUFmLEdBQTZDO0FBQzNDLE1BQUkxQixnQkFBRW1CLE9BQUYsQ0FBVSxLQUFLakIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFJa0IsTUFBTSxHQUFHLEtBQWI7O0FBQ0EsT0FBSyxNQUFNVixRQUFYLElBQXVCVixnQkFBRTJCLElBQUYsQ0FBTyxLQUFLekIsaUJBQVosQ0FBdkIsRUFBdUQ7QUFDckRrQixJQUFBQSxNQUFNLEdBQUdBLE1BQU0sS0FBSSxNQUFNLEtBQUtHLHNCQUFMLENBQTRCYixRQUE1QixDQUFWLENBQWY7QUFDRDs7QUFDRCxTQUFPVSxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuXG5jb25zdCBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCA9ICcvd3MnO1xuXG5cbi8qKlxuICogQWRkcyB3ZWJzb2NrZXQgaGFuZGxlciB0byBleHByZXNzIHNlcnZlciBpbnN0YW5jZS5cbiAqIEl0IGlzIGV4cGVjdGVkIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIEV4cHJlc3NcbiAqIHNlcnZlciBpbnN0YW5jZSBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXJ2ZXIgLSBBbiBpbnN0YW5jZSBvZiBleHByZXNzIEhUVFAgc2VydmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYiBzb2NrZXQgZW5kcG9pbnQgcGF0aCBzdGFydGluZyB3aXRoXG4gKiBhIHNpbmdsZSBzbGFzaCBjaGFyYWN0ZXIuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGFsd2F5cyBhZGRcbiAqIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIHRvIGFsbCB3ZWIgc29ja2V0IHBhdGhuYW1lcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVyU2VydmVyIC0gV2ViU29ja2V0IHNlcnZlciBpbnN0YW5jZS4gU2VlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBob3cgdG8gY29uZmlndXJlIHRoZSBoYW5kbGVyIHByb3Blcmx5LlxuICovXG5hc3luYyBmdW5jdGlvbiBhZGRXZWJTb2NrZXRIYW5kbGVyIChoYW5kbGVyUGF0aG5hbWUsIGhhbmRsZXJTZXJ2ZXIpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGxldCBpc1VwZ3JhZGVMaXN0ZW5lckFzc2lnbmVkID0gdHJ1ZTtcbiAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICB0aGlzLndlYlNvY2tldHNNYXBwaW5nID0ge307XG4gICAgaXNVcGdyYWRlTGlzdGVuZXJBc3NpZ25lZCA9IGZhbHNlO1xuICB9XG4gIHRoaXMud2ViU29ja2V0c01hcHBpbmdbaGFuZGxlclBhdGhuYW1lXSA9IGhhbmRsZXJTZXJ2ZXI7XG4gIGlmIChpc1VwZ3JhZGVMaXN0ZW5lckFzc2lnbmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODVcbiAgdGhpcy5vbigndXBncmFkZScsIChyZXF1ZXN0LCBzb2NrZXQsIGhlYWQpID0+IHtcbiAgICBjb25zdCBjdXJyZW50UGF0aG5hbWUgPSB1cmwucGFyc2UocmVxdWVzdC51cmwpLnBhdGhuYW1lO1xuICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCB3c1NlcnZlcl0gb2YgXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICBpZiAoY3VycmVudFBhdGhuYW1lID09PSBwYXRobmFtZSkge1xuICAgICAgICB3c1NlcnZlci5oYW5kbGVVcGdyYWRlKHJlcXVlc3QsIHNvY2tldCwgaGVhZCwgKHdzKSA9PiB7XG4gICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgc29ja2V0LmRlc3Ryb3koKTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3ZWIgc29ja2V0IGhhbmRsZXJzIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBzZXJ2ZXJcbiAqIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHs/c3RyaW5nfSBrZXlzRmlsdGVyIFtudWxsXS0gT25seSBpbmNsdWRlIHBhdGhuYW1lcyB3aXRoIGdpdmVuXG4gKiBga2V5c0ZpbHRlcmAgdmFsdWUgaWYgc2V0LiBBbGwgcGFpcnMgd2lsbCBiZSBpbmNsdWRlZCBieSBkZWZhdWx0LlxuICogQHJldHVybnMge09iamVjdH0gcGF0aG5hbWVzIHRvIHdlYnNvY2tldCBzZXJ2ZXIgaXNudGFuY2VzIG1hcHBpbmdcbiAqIG1hdGNoaW5nIHRoZSBzZWFyY2ggY3JpdGVyaWEgb3IgYW4gZW1wdHkgb2JqZWN0IG90aGVyd2lzZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V2ViU29ja2V0SGFuZGxlcnMgKGtleXNGaWx0ZXIgPSBudWxsKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoXy5pc0VtcHR5KHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgbGV0IHJlc3VsdCA9IHt9O1xuICBmb3IgKGNvbnN0IFtwYXRobmFtZSwgd3NTZXJ2ZXJdIG9mIF8udG9QYWlycyh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgcmVzdWx0W3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXhpc3Rpbmcgd2Vic29ja2V0IGhhbmRsZXIgZnJvbSBleHByZXNzIHNlcnZlciBpbnN0YW5jZS5cbiAqIFRoZSBjYWxsIGlzIGlnbm9yZWQgaWYgdGhlIGdpdmVuIGBoYW5kbGVyUGF0aG5hbWVgIGhhbmRsZXJcbiAqIGlzIG5vdCBwcmVzZW50IGluIHRoZSBoYW5kbGVycyBsaXN0LlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYnNvY2tldCBlbmRwb2ludCBwYXRoLlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGhhbmRsZXJQYXRobmFtZSB3YXMgZm91bmQgYW5kIGRlbGV0ZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlV2ViU29ja2V0SGFuZGxlciAoaGFuZGxlclBhdGhuYW1lKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoIXRoaXMud2ViU29ja2V0c01hcHBpbmcgfHwgIXRoaXMud2ViU29ja2V0c01hcHBpbmdbaGFuZGxlclBhdGhuYW1lXSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdLmNsb3NlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGlnbikge1xuICAgIC8vIGlnbm9yZVxuICB9IGZpbmFsbHkge1xuICAgIGRlbGV0ZSB0aGlzLndlYlNvY2tldHNNYXBwaW5nW2hhbmRsZXJQYXRobmFtZV07XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGV4aXN0aW5nIHdlYnNvY2tldCBoYW5kbGVyIGZyb20gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaGFuZGxlciBoYXMgYmVlbiBkZWxldGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzICgpIHtcbiAgaWYgKF8uaXNFbXB0eSh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBwYXRobmFtZSBvZiBfLmtleXModGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXN1bHQgPSByZXN1bHQgfHwgYXdhaXQgdGhpcy5yZW1vdmVXZWJTb2NrZXRIYW5kbGVyKHBhdGhuYW1lKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYLFxufTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3Mvd2Vic29ja2V0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=