68 lines
3.4 KiB
JavaScript
68 lines
3.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.doctor = exports.doctorCore = exports.doctorCommand = void 0;
|
|
const tslib_1 = require("tslib");
|
|
const fs_extra_1 = require("fs-extra");
|
|
const doctor_1 = require("../android/doctor");
|
|
const colors_1 = tslib_1.__importDefault(require("../colors"));
|
|
const common_1 = require("../common");
|
|
const doctor_2 = require("../ios/doctor");
|
|
const log_1 = require("../log");
|
|
const emoji_1 = require("../util/emoji");
|
|
const node_1 = require("../util/node");
|
|
const subprocess_1 = require("../util/subprocess");
|
|
async function doctorCommand(config, selectedPlatformName) {
|
|
log_1.output.write(`${(0, emoji_1.emoji)('💊', '')} ${colors_1.default.strong('Capacitor Doctor')} ${(0, emoji_1.emoji)('💊', '')} \n\n`);
|
|
await doctorCore(config);
|
|
const platforms = await (0, common_1.selectPlatforms)(config, selectedPlatformName);
|
|
await Promise.all(platforms.map((platformName) => {
|
|
return doctor(config, platformName);
|
|
}));
|
|
}
|
|
exports.doctorCommand = doctorCommand;
|
|
async function doctorCore(config) {
|
|
const [cliVersion, coreVersion, androidVersion, iosVersion] = await Promise.all([
|
|
(0, subprocess_1.getCommandOutput)('npm', ['info', '@capacitor/cli', 'version']),
|
|
(0, subprocess_1.getCommandOutput)('npm', ['info', '@capacitor/core', 'version']),
|
|
(0, subprocess_1.getCommandOutput)('npm', ['info', '@capacitor/android', 'version']),
|
|
(0, subprocess_1.getCommandOutput)('npm', ['info', '@capacitor/ios', 'version']),
|
|
]);
|
|
log_1.output.write(`${colors_1.default.strong('Latest Dependencies:')}\n\n` +
|
|
` @capacitor/cli: ${colors_1.default.weak(cliVersion !== null && cliVersion !== void 0 ? cliVersion : 'unknown')}\n` +
|
|
` @capacitor/core: ${colors_1.default.weak(coreVersion !== null && coreVersion !== void 0 ? coreVersion : 'unknown')}\n` +
|
|
` @capacitor/android: ${colors_1.default.weak(androidVersion !== null && androidVersion !== void 0 ? androidVersion : 'unknown')}\n` +
|
|
` @capacitor/ios: ${colors_1.default.weak(iosVersion !== null && iosVersion !== void 0 ? iosVersion : 'unknown')}\n\n` +
|
|
`${colors_1.default.strong('Installed Dependencies:')}\n\n`);
|
|
await printInstalledPackages(config);
|
|
log_1.output.write('\n');
|
|
}
|
|
exports.doctorCore = doctorCore;
|
|
async function printInstalledPackages(config) {
|
|
const packageNames = ['@capacitor/cli', '@capacitor/core', '@capacitor/android', '@capacitor/ios'];
|
|
await Promise.all(packageNames.map(async (packageName) => {
|
|
const packagePath = (0, node_1.resolveNode)(config.app.rootDir, packageName, 'package.json');
|
|
await printPackageVersion(packageName, packagePath);
|
|
}));
|
|
}
|
|
async function printPackageVersion(packageName, packagePath) {
|
|
let version;
|
|
if (packagePath) {
|
|
version = (await (0, fs_extra_1.readJSON)(packagePath)).version;
|
|
}
|
|
log_1.output.write(` ${packageName}: ${colors_1.default.weak(version || 'not installed')}\n`);
|
|
}
|
|
async function doctor(config, platformName) {
|
|
if (platformName === config.ios.name) {
|
|
await (0, doctor_2.doctorIOS)(config);
|
|
}
|
|
else if (platformName === config.android.name) {
|
|
await (0, doctor_1.doctorAndroid)(config);
|
|
}
|
|
else if (platformName === config.web.name) {
|
|
return Promise.resolve();
|
|
}
|
|
else {
|
|
throw `Platform ${platformName} is not valid.`;
|
|
}
|
|
}
|
|
exports.doctor = doctor;
|