mirror of
https://github.com/reactivecircus/android-emulator-runner.git
synced 2026-08-31 17:49:33 +00:00
106 lines
4.7 KiB
JavaScript
106 lines
4.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.checkDiskSize = exports.checkEmulatorBuild = exports.checkEnableHardwareKeyboard = exports.checkDisableLinuxHardwareAcceleration = exports.checkDisableSpellchecker = exports.checkDisableAnimations = exports.checkPort = exports.checkForceAvdCreation = exports.checkChannel = exports.checkArch = exports.checkTarget = exports.MAX_PORT = exports.MIN_PORT = exports.VALID_CHANNELS = exports.VALID_ARCHS = exports.VALID_TARGETS = exports.MIN_API_LEVEL = void 0;
|
|
exports.MIN_API_LEVEL = 15;
|
|
exports.VALID_TARGETS = [
|
|
'default',
|
|
'google_apis',
|
|
'aosp_atd',
|
|
'google_atd',
|
|
'google_apis_playstore',
|
|
'android-wear',
|
|
'android-wear-cn',
|
|
'android-tv',
|
|
'google-tv',
|
|
'android-automotive',
|
|
'android-automotive-playstore',
|
|
'android-desktop',
|
|
];
|
|
exports.VALID_ARCHS = ['x86', 'x86_64', 'arm64-v8a'];
|
|
exports.VALID_CHANNELS = ['stable', 'beta', 'dev', 'canary'];
|
|
exports.MIN_PORT = 5554;
|
|
exports.MAX_PORT = 5584;
|
|
function checkTarget(target) {
|
|
if (!exports.VALID_TARGETS.includes(target)) {
|
|
throw new Error(`Value for input.target '${target}' is unknown. Supported options: ${exports.VALID_TARGETS}.`);
|
|
}
|
|
}
|
|
exports.checkTarget = checkTarget;
|
|
function checkArch(arch) {
|
|
if (!exports.VALID_ARCHS.includes(arch)) {
|
|
throw new Error(`Value for input.arch '${arch}' is unknown. Supported options: ${exports.VALID_ARCHS}.`);
|
|
}
|
|
}
|
|
exports.checkArch = checkArch;
|
|
function checkChannel(channel) {
|
|
if (!exports.VALID_CHANNELS.includes(channel)) {
|
|
throw new Error(`Value for input.channel '${channel}' is unknown. Supported options: ${exports.VALID_CHANNELS}.`);
|
|
}
|
|
}
|
|
exports.checkChannel = checkChannel;
|
|
function checkForceAvdCreation(forceAvdCreation) {
|
|
if (!isValidBoolean(forceAvdCreation)) {
|
|
throw new Error(`Input for input.force-avd-creation should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
exports.checkForceAvdCreation = checkForceAvdCreation;
|
|
function checkPort(port) {
|
|
if (port < exports.MIN_PORT || port > exports.MAX_PORT) {
|
|
throw new Error(`Emulator port is outside of the supported port range [${exports.MIN_PORT}, ${exports.MAX_PORT}], was ${port}`);
|
|
}
|
|
if (port % 2 == 1) {
|
|
throw new Error(`Emulator port has to be even, was ${port}`);
|
|
}
|
|
}
|
|
exports.checkPort = checkPort;
|
|
function checkDisableAnimations(disableAnimations) {
|
|
if (!isValidBoolean(disableAnimations)) {
|
|
throw new Error(`Input for input.disable-animations should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
exports.checkDisableAnimations = checkDisableAnimations;
|
|
function checkDisableSpellchecker(disableSpellchecker) {
|
|
if (!isValidBoolean(disableSpellchecker)) {
|
|
throw new Error(`Input for input.disable-spellchecker should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
exports.checkDisableSpellchecker = checkDisableSpellchecker;
|
|
function checkDisableLinuxHardwareAcceleration(disableLinuxHardwareAcceleration) {
|
|
if (!(isValidBoolean(disableLinuxHardwareAcceleration) || disableLinuxHardwareAcceleration === 'auto')) {
|
|
throw new Error(`Input for input.disable-linux-hw-accel should be either 'true' or 'false' or 'auto'.`);
|
|
}
|
|
}
|
|
exports.checkDisableLinuxHardwareAcceleration = checkDisableLinuxHardwareAcceleration;
|
|
function checkEnableHardwareKeyboard(enableHardwareKeyboard) {
|
|
if (!isValidBoolean(enableHardwareKeyboard)) {
|
|
throw new Error(`Input for input.enable-hw-keyboard should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
exports.checkEnableHardwareKeyboard = checkEnableHardwareKeyboard;
|
|
function checkEmulatorBuild(emulatorBuild) {
|
|
if (isNaN(Number(emulatorBuild)) || !Number.isInteger(Number(emulatorBuild))) {
|
|
throw new Error(`Unexpected emulator build: '${emulatorBuild}'.`);
|
|
}
|
|
}
|
|
exports.checkEmulatorBuild = checkEmulatorBuild;
|
|
function isValidBoolean(value) {
|
|
return value === 'true' || value === 'false';
|
|
}
|
|
function checkDiskSize(diskSize) {
|
|
// Disk size can be empty - the default value
|
|
if (diskSize) {
|
|
// Can also be number of bytes
|
|
if (isNaN(Number(diskSize)) || !Number.isInteger(Number(diskSize))) {
|
|
// Disk size can have a size multiplier at the end K, M or G
|
|
const diskSizeUpperCase = diskSize.toUpperCase();
|
|
if (diskSizeUpperCase.endsWith('K') || diskSizeUpperCase.endsWith('M') || diskSizeUpperCase.endsWith('G')) {
|
|
const diskSizeNoModifier = diskSize.slice(0, -1);
|
|
if (0 == diskSizeNoModifier.length || isNaN(Number(diskSizeNoModifier)) || !Number.isInteger(Number(diskSizeNoModifier))) {
|
|
throw new Error(`Unexpected disk size: '${diskSize}'.`);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
exports.checkDiskSize = checkDiskSize;
|