UNPKG

nativescript

Version:

Command-line interface for building NativeScript projects

57 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AndroidEmulatorDiscovery = void 0; const events_1 = require("events"); const constants_1 = require("../../constants"); const _ = require("lodash"); const yok_1 = require("../../yok"); class AndroidEmulatorDiscovery extends events_1.EventEmitter { constructor($androidEmulatorServices, $mobileHelper) { super(); this.$androidEmulatorServices = $androidEmulatorServices; this.$mobileHelper = $mobileHelper; this._emulators = {}; } async startLookingForDevices(options) { if (options && options.platform && !this.$mobileHelper.isAndroidPlatform(options.platform)) { return; } const availableEmulatorsOutput = await this.$androidEmulatorServices.getEmulatorImages(); const currentEmulators = availableEmulatorsOutput.devices; const cachedEmulators = _.values(this._emulators); // Remove old emulators const lostEmulators = _(cachedEmulators) .reject((e) => _.some(currentEmulators, (emulator) => emulator && e && emulator.imageIdentifier === e.imageIdentifier)) .value(); // Add new emulators const foundEmulators = _(currentEmulators) .reject((e) => _.some(cachedEmulators, (emulator) => emulator && e && emulator.imageIdentifier === e.imageIdentifier)) .value(); if (lostEmulators.length) { this.raiseOnEmulatorImagesLost(lostEmulators); } if (foundEmulators.length) { this.raiseOnEmulatorImagesFound(foundEmulators); } } getDevices() { return _.values(this._emulators); } raiseOnEmulatorImagesFound(emulators) { _.forEach(emulators, (emulator) => { this._emulators[emulator.imageIdentifier] = emulator; this.emit(constants_1.EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND, emulator); }); } raiseOnEmulatorImagesLost(emulators) { _.forEach(emulators, (emulator) => { delete this._emulators[emulator.imageIdentifier]; this.emit(constants_1.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, emulator); }); } } exports.AndroidEmulatorDiscovery = AndroidEmulatorDiscovery; yok_1.injector.register("androidEmulatorDiscovery", AndroidEmulatorDiscovery); //# sourceMappingURL=android-emulator-discovery.js.map