UNPKG

appium-android-driver

Version:

Android UiAutomator and Chrome support for Appium

89 lines 2.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GET_SERVER_LOGS_FEATURE = exports.ADB_LISTEN_ALL_NETWORK_FEATURE = exports.ADB_SHELL_FEATURE = void 0; exports.requireArgs = requireArgs; exports.parseArray = parseArray; exports.removeAllSessionWebSocketHandlers = removeAllSessionWebSocketHandlers; exports.nativeLogEntryToSeleniumEntry = nativeLogEntryToSeleniumEntry; exports.toLogRecord = toLogRecord; const lodash_1 = __importDefault(require("lodash")); const driver_1 = require("appium/driver"); exports.ADB_SHELL_FEATURE = 'adb_shell'; exports.ADB_LISTEN_ALL_NETWORK_FEATURE = 'adb_listen_all_network'; exports.GET_SERVER_LOGS_FEATURE = 'get_server_logs'; const COLOR_CODE_PATTERN = /\u001b\[(\d+(;\d+)*)?m/g; // eslint-disable-line no-control-regex /** * Assert the presence of particular keys in the given object * * @param argNames one or more key names * @param opts the object to check * @returns the same given object */ function requireArgs(argNames, opts) { for (const argName of lodash_1.default.isArray(argNames) ? argNames : [argNames]) { if (!lodash_1.default.has(opts, argName)) { throw new driver_1.errors.InvalidArgumentError(`'${argName}' argument must be provided`); } } return opts; } /** * * @param cap * @returns */ function parseArray(cap) { let parsedCaps; try { parsedCaps = JSON.parse(cap); } catch { } if (lodash_1.default.isArray(parsedCaps)) { return parsedCaps; } else if (lodash_1.default.isString(cap)) { return [cap]; } throw new Error(`must provide a string or JSON Array; received ${cap}`); } /** * @this AndroidDriver * @returns */ async function removeAllSessionWebSocketHandlers() { if (!this.sessionId || !lodash_1.default.isFunction(this.server?.getWebSocketHandlers)) { return; } const activeHandlers = await this.server.getWebSocketHandlers(this.sessionId); for (const pathname of lodash_1.default.keys(activeHandlers)) { await this.server.removeWebSocketHandler(pathname); } } /** * * @param x * @returns */ function nativeLogEntryToSeleniumEntry(x) { const msg = lodash_1.default.isEmpty(x.prefix) ? x.message : `[${x.prefix}] ${x.message}`; return toLogRecord(x.timestamp ?? Date.now(), lodash_1.default.replace(msg, COLOR_CODE_PATTERN, '')); } /** * * @see {@link https://github.com/SeleniumHQ/selenium/blob/0d425676b3c9df261dd641917f867d4d5ce7774d/java/client/src/org/openqa/selenium/logging/LogEntry.java} * @param timestamp * @param message * @param level * @returns */ function toLogRecord(timestamp, message, level = 'ALL') { return { timestamp, level: level, message, }; } //# sourceMappingURL=utils.js.map