@jovotech/cli
Version:
Jovo Command Line Interface (Beta)
46 lines • 2.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const cli_core_1 = require("@jovotech/cli-core");
const latest_version_1 = __importDefault(require("latest-version"));
const envinfo_1 = __importDefault(require("envinfo"));
const hook = async function () {
if (!['-v', '-V', '--version', 'version'].includes(process.argv[2])) {
return;
}
const packageJson = require('../../package');
const current = packageJson.version;
const latest = await latest_version_1.default(packageJson.name);
cli_core_1.Log.spacer();
cli_core_1.Log.info(`${packageJson.name}: ${current} ${current !== latest ? `(update to ${cli_core_1.chalk.green(latest)} available)` : ''}`);
// Check for versions of Jovo modules within a project
const cli = cli_core_1.JovoCli.getInstance();
if (cli.isInProjectDirectory()) {
const packages = await cli_core_1.getPackageVersions(/^@jovotech/);
if (packages.length) {
const updatesAvailable = packages.some((pkg) => pkg.version.npm !== pkg.version.local);
const output = [
'',
`Jovo packages of the current project ${updatesAvailable ? '(updates available)' : ''}:`,
cli_core_1.printPackages(packages),
];
if (updatesAvailable) {
output.push('\nUse "jovo update" to get the newest versions.');
}
cli_core_1.Log.info(output.join('\n'));
}
}
// Log environment info, such as operating system
const env = await envinfo_1.default.run({
System: ['OS'],
Binaries: ['Node', 'npm', 'jovo'],
});
cli_core_1.Log.spacer();
cli_core_1.Log.info('Environment:');
cli_core_1.Log.info(env.replace('\n', ''));
process.exit();
};
exports.default = hook;
//# sourceMappingURL=VersionHook.js.map