UNPKG

ionic

Version:

A tool for creating and developing Ionic Framework mobile apps.

39 lines (38 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_array_1 = require("@ionic/utils-array"); const utils_fs_1 = require("@ionic/utils-fs"); const path = require("path"); const color_1 = require("../../color"); const errors_1 = require("../../errors"); const CORDOVA_ANDROID_PACKAGE_PATH = 'platforms/android/app/build/outputs/apk/'; const CORDOVA_IOS_SIMULATOR_PACKAGE_PATH = 'platforms/ios/build/emulator'; const CORDOVA_IOS_DEVICE_PACKAGE_PATH = 'platforms/ios/build/device'; async function getPlatforms(projectDir) { const platformsDir = path.resolve(projectDir, 'platforms'); const contents = await utils_fs_1.readdirSafe(platformsDir); const platforms = await utils_array_1.filter(contents, async (file) => { const stat = await utils_fs_1.statSafe(path.join(platformsDir, file)); return !file.startsWith('.') && typeof stat !== 'undefined' && stat.isDirectory(); }); return platforms; } exports.getPlatforms = getPlatforms; async function getPackagePath(appName, platform, { emulator = false, release = false } = {}) { if (platform === 'android') { // TODO: don't hardcode this/support multiple build paths (ex: multiple arch builds) // use app/build/outputs/apk/debug/output.json? if (release) { return path.join(CORDOVA_ANDROID_PACKAGE_PATH, 'release', 'app-release-unsigned.apk'); } return path.join(CORDOVA_ANDROID_PACKAGE_PATH, 'debug', 'app-debug.apk'); } else if (platform === 'ios') { if (emulator) { return path.join(CORDOVA_IOS_SIMULATOR_PACKAGE_PATH, `${appName}.app`); } return path.join(CORDOVA_IOS_DEVICE_PACKAGE_PATH, `${appName}.ipa`); } throw new errors_1.FatalException(`Unknown package path for ${color_1.input(appName)} on ${color_1.input(platform)}.`); } exports.getPackagePath = getPackagePath;