mirror of
https://github.com/reactivecircus/android-emulator-runner.git
synced 2026-08-31 17:49:33 +00:00
72 lines
2.7 KiB
TypeScript
72 lines
2.7 KiB
TypeScript
export const MIN_API_LEVEL = 15;
|
|
export const VALID_TARGETS: Array<string> = ['default', 'google_apis', 'aosp_atd', 'google_atd', 'google_apis_playstore', 'android-wear', 'android-wear-cn', 'android-tv', 'google-tv'];
|
|
export const VALID_ARCHS: Array<string> = ['x86', 'x86_64', 'arm64-v8a'];
|
|
export const VALID_CHANNELS: Array<string> = ['stable', 'beta', 'dev', 'canary'];
|
|
|
|
export function checkApiLevel(apiLevel: string): void {
|
|
if (isNaN(Number(apiLevel)) || !Number.isInteger(Number(apiLevel))) {
|
|
throw new Error(`Unexpected API level: '${apiLevel}'.`);
|
|
}
|
|
if (Number(apiLevel) < MIN_API_LEVEL) {
|
|
throw new Error(`Minimum API level supported is ${MIN_API_LEVEL}.`);
|
|
}
|
|
}
|
|
|
|
export function checkTarget(target: string): void {
|
|
if (!VALID_TARGETS.includes(target)) {
|
|
throw new Error(`Value for input.target '${target}' is unknown. Supported options: ${VALID_TARGETS}.`);
|
|
}
|
|
}
|
|
|
|
export function checkArch(arch: string): void {
|
|
if (!VALID_ARCHS.includes(arch)) {
|
|
throw new Error(`Value for input.arch '${arch}' is unknown. Supported options: ${VALID_ARCHS}.`);
|
|
}
|
|
}
|
|
|
|
export function checkChannel(channel: string): void {
|
|
if (!VALID_CHANNELS.includes(channel)) {
|
|
throw new Error(`Value for input.channel '${channel}' is unknown. Supported options: ${VALID_CHANNELS}.`);
|
|
}
|
|
}
|
|
|
|
export function checkForceAvdCreation(forceAvdCreation: string): void {
|
|
if (!isValidBoolean(forceAvdCreation)) {
|
|
throw new Error(`Input for input.force-avd-creation should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
|
|
export function checkDisableAnimations(disableAnimations: string): void {
|
|
if (!isValidBoolean(disableAnimations)) {
|
|
throw new Error(`Input for input.disable-animations should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
|
|
export function checkDisableSpellchecker(disableSpellchecker: string): void {
|
|
if (!isValidBoolean(disableSpellchecker)) {
|
|
throw new Error(`Input for input.disable-spellchecker should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
|
|
export function checkDisableLinuxHardwareAcceleration(disableLinuxHardwareAcceleration: string): void {
|
|
if (!isValidBoolean(disableLinuxHardwareAcceleration)) {
|
|
throw new Error(`Input for input.disable-linux-hw-accel should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
|
|
export function checkEnableHardwareKeyboard(enableHardwareKeyboard: string): void {
|
|
if (!isValidBoolean(enableHardwareKeyboard)) {
|
|
throw new Error(`Input for input.enable-hw-keyboard should be either 'true' or 'false'.`);
|
|
}
|
|
}
|
|
|
|
export function checkEmulatorBuild(emulatorBuild: string): void {
|
|
if (isNaN(Number(emulatorBuild)) || !Number.isInteger(Number(emulatorBuild))) {
|
|
throw new Error(`Unexpected emulator build: '${emulatorBuild}'.`);
|
|
}
|
|
}
|
|
|
|
function isValidBoolean(value: string): boolean {
|
|
return value === 'true' || value === 'false';
|
|
}
|