PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@expo/cli/build/src/start/platforms/android

Просмотр файла: emulator.js

"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.whichEmulator = whichEmulator;
exports.listAvdsAsync = listAvdsAsync;
exports.startDeviceAsync = startDeviceAsync;
exports.EMULATOR_MAX_WAIT_TIMEOUT = void 0;
var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
var _chalk = _interopRequireDefault(require("chalk"));
var _childProcess = require("child_process");
var _os = _interopRequireDefault(require("os"));
var Log = _interopRequireWildcard(require("../../../log"));
var _errors = require("../../../utils/errors");
var _exit = require("../../../utils/exit");
var _adb = require("./adb");
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        default: obj
    };
}
function _interopRequireWildcard(obj) {
    if (obj && obj.__esModule) {
        return obj;
    } else {
        var newObj = {};
        if (obj != null) {
            for(var key in obj){
                if (Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
                    if (desc.get || desc.set) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
        }
        newObj.default = obj;
        return newObj;
    }
}
const EMULATOR_MAX_WAIT_TIMEOUT = 60 * 1000 * 3;
exports.EMULATOR_MAX_WAIT_TIMEOUT = EMULATOR_MAX_WAIT_TIMEOUT;
function whichEmulator() {
    // https://developer.android.com/studio/command-line/variables
    // TODO: Add ANDROID_SDK_ROOT support as well https://github.com/expo/expo/pull/16516#discussion_r820037917
    if (process.env.ANDROID_HOME) {
        return `${process.env.ANDROID_HOME}/emulator/emulator`;
    }
    return "emulator";
}
async function listAvdsAsync() {
    try {
        const { stdout  } = await (0, _spawnAsync).default(whichEmulator(), [
            "-list-avds"
        ]);
        return stdout.split(_os.default.EOL).filter(Boolean).map((name)=>({
                name,
                type: "emulator",
                // unsure from this
                isBooted: false,
                isAuthorized: true
            })
        );
    } catch  {
        return [];
    }
}
async function startDeviceAsync(device, { timeout =EMULATOR_MAX_WAIT_TIMEOUT , interval =1000  } = {}) {
    Log.log(`\u203A Opening emulator ${_chalk.default.bold(device.name)}`);
    // Start a process to open an emulator
    const emulatorProcess = (0, _childProcess).spawn(whichEmulator(), [
        `@${device.name}`
    ], {
        stdio: "ignore",
        detached: true
    });
    emulatorProcess.unref();
    return new Promise((resolve, reject)=>{
        const waitTimer = setInterval(async ()=>{
            try {
                const bootedDevices = await (0, _adb).getAttachedDevicesAsync();
                const connected = bootedDevices.find(({ name  })=>name === device.name
                );
                if (connected) {
                    const isBooted = await (0, _adb).isBootAnimationCompleteAsync(connected.pid);
                    if (isBooted) {
                        stopWaiting();
                        resolve(connected);
                    }
                }
            } catch (error) {
                stopWaiting();
                reject(error);
            }
        }, interval);
        // Reject command after timeout
        const maxTimer = setTimeout(()=>{
            const manualCommand = `${whichEmulator()} @${device.name}`;
            stopWaitingAndReject(`It took too long to start the Android emulator: ${device.name}. You can try starting the emulator manually from the terminal with: ${manualCommand}`);
        }, timeout);
        const stopWaiting = ()=>{
            clearTimeout(maxTimer);
            clearInterval(waitTimer);
            removeExitHook();
        };
        const stopWaitingAndReject = (message)=>{
            stopWaiting();
            reject(new Error(message));
        };
        const removeExitHook = (0, _exit).installExitHooks((signal)=>{
            stopWaiting();
            emulatorProcess.kill(signal);
            reject(new _errors.AbortCommandError());
        });
        emulatorProcess.on("error", ({ message  })=>stopWaitingAndReject(message)
        );
        emulatorProcess.on("exit", ()=>{
            const manualCommand = `${whichEmulator()} @${device.name}`;
            stopWaitingAndReject(`The emulator (${device.name}) quit before it finished opening. You can try starting the emulator manually from the terminal with: ${manualCommand}`);
        });
    });
}

//# sourceMappingURL=emulator.js.map

Выполнить команду


Для локальной разработки. Не используйте в интернете!