ionic
Version:
A tool for creating and developing Ionic Framework mobile apps.
39 lines (38 loc) • 1.9 kB
JavaScript
;
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;