123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.AndroidServerLauncherImpl = void 0;
- var _utilsBundle = require("./utilsBundle");
- var _utils = require("./utils");
- var _playwright = require("./server/playwright");
- var _playwrightServer = require("./remote/playwrightServer");
- class AndroidServerLauncherImpl {
- async launchServer(options = {}) {
- const playwright = (0, _playwright.createPlaywright)({
- sdkLanguage: 'javascript',
- isServer: true
- });
-
- let devices = await playwright.android.devices({
- host: options.adbHost,
- port: options.adbPort,
- omitDriverInstall: options.omitDriverInstall
- });
- if (devices.length === 0) throw new Error('No devices found');
- if (options.deviceSerialNumber) {
- devices = devices.filter(d => d.serial === options.deviceSerialNumber);
- if (devices.length === 0) throw new Error(`No device with serial number '${options.deviceSerialNumber}' not found`);
- }
- if (devices.length > 1) throw new Error(`More than one device found. Please specify deviceSerialNumber`);
- const device = devices[0];
- const path = options.wsPath ? options.wsPath.startsWith('/') ? options.wsPath : `/${options.wsPath}` : `/${(0, _utils.createGuid)()}`;
-
- const server = new _playwrightServer.PlaywrightServer({
- mode: 'launchServer',
- path,
- maxConnections: 1,
- preLaunchedAndroidDevice: device
- });
- const wsEndpoint = await server.listen(options.port);
-
- const browserServer = new _utilsBundle.ws.EventEmitter();
- browserServer.wsEndpoint = () => wsEndpoint;
- browserServer.close = () => device.close();
- browserServer.kill = () => device.close();
- device.on('close', () => {
- server.close();
- browserServer.emit('close');
- });
- return browserServer;
- }
- }
- exports.AndroidServerLauncherImpl = AndroidServerLauncherImpl;
|