UNPKG

nativescript

Version:

Command-line interface for building NativeScript projects

114 lines 4.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const net = require("net"); const _ = require("lodash"); const constants_1 = require("../../../constants"); const constants_2 = require("../../../../constants"); const yok_1 = require("../../../yok"); class IosEmulatorServices { constructor($logger, $devicePlatformsConstants, $iOSSimResolver, $mobileHelper) { this.$logger = $logger; this.$devicePlatformsConstants = $devicePlatformsConstants; this.$iOSSimResolver = $iOSSimResolver; this.$mobileHelper = $mobileHelper; } async startEmulator(options) { var _a; let error = null; try { if (options.platform === this.$devicePlatformsConstants.visionOS && !options.emulatorIdOrName) { // find first available visionOS simulator (for now). const { devices } = await this.tryGetiOSSimDevices(); options.emulatorIdOrName = (_a = devices.find((device) => device.platform === this.$devicePlatformsConstants.visionOS)) === null || _a === void 0 ? void 0 : _a.id; } await this.$iOSSimResolver.iOSSim.startSimulator({ device: options.imageIdentifier || options.emulatorIdOrName, state: "None", sdkVersion: options.sdk, }); } catch (err) { error = err && err.message; } return { errors: error ? [error] : [], }; } async getRunningEmulator() { return null; } async getRunningEmulatorIds() { return []; } async getRunningEmulatorName() { return ""; } async getRunningEmulatorImageIdentifier(emulatorId) { return ""; } async postDarwinNotification(notification, deviceId) { return this.$iOSSimResolver.iOSSim.sendNotification(notification, deviceId); } async connectToPort(data) { try { // node v17+ resolves localhost to ::1 (ipv6) instead of 127.0.0.1 (ipv4) // so we explicitly pass ipv4 const socket = net.connect(data.port, "127.0.0.1"); return socket; } catch (e) { this.$logger.trace(e); } } async getEmulatorImages() { let devices = []; const errors = []; const output = await this.tryGetiOSSimDevices(); if (output.devices && output.devices.length) { devices = _(output.devices) .map((simDevice) => this.convertSimDeviceToDeviceInfo(simDevice)) .sortBy((deviceInfo) => deviceInfo.version) .value(); } if (output.error) { errors.push(output.error); } return { devices, errors }; } async getRunningEmulators() { return []; } async tryGetiOSSimDevices() { let devices = []; let error = null; try { devices = await this.$iOSSimResolver.iOSSim.getDevices(); } catch (err) { error = err; } return { devices, error }; } convertSimDeviceToDeviceInfo(simDevice) { var _a; return { imageIdentifier: simDevice.id, identifier: simDevice.id, displayName: simDevice.name, model: simDevice.name, version: simDevice.runtimeVersion, vendor: constants_1.APPLE_VENDOR_NAME, status: simDevice.state && simDevice.state.toLowerCase() === "booted" ? constants_1.RUNNING_EMULATOR_STATUS : constants_1.NOT_RUNNING_EMULATOR_STATUS, errorHelp: null, isTablet: this.$mobileHelper.isiOSTablet(simDevice.name), type: constants_1.DeviceTypes.Emulator, connectionTypes: [constants_2.DeviceConnectionType.Local], platform: (_a = simDevice.platform) !== null && _a !== void 0 ? _a : this.$devicePlatformsConstants.iOS, }; } } yok_1.injector.register("iOSEmulatorServices", IosEmulatorServices); //# sourceMappingURL=ios-emulator-services.js.map