UNPKG

@foal/cli

Version:

CLI tool for FoalTS

50 lines (49 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpgradeCommandService = void 0; const utils_1 = require("../generators/utils"); async function getLatestVersion() { const response = await fetch('https://registry.npmjs.org/@foal/core/latest'); const { version } = await response.json(); return version; } /** * Service for upgrading FoalTS dependencies. */ class UpgradeCommandService { generator; constructor(generator) { this.generator = generator; } /** * Upgrade all @foal/* dependencies to the specified version (or latest if not specified). * * @param {string} version - Optional specific version to upgrade to * @param {boolean} autoInstall - Whether to automatically install dependencies * @param {() => Promise<string>} getLatestVersionFn - Optional function to get latest version (for testing) * @returns {Promise<void>} */ async run({ version, autoInstall }, options = { getLatestVersion }) { version ??= await options.getLatestVersion(); utils_1.logger.log(); utils_1.logger.log(` Upgrading @foal/* dependencies to version ${version}...`); utils_1.logger.log(); const dependencies = this.generator.getProjectDependencies(); for (const dependency of dependencies) { if (dependency.name.startsWith('@foal/')) { this.generator.setOrUpdateProjectDependency(dependency.name, version); } } const devDependencies = this.generator.getProjectDevDependencies(); for (const devDependency of devDependencies) { if (devDependency.name.startsWith('@foal/')) { this.generator.setOrUpdateProjectDevDependency(devDependency.name, version); } } if (autoInstall) { await (0, utils_1.installDependencies)(); utils_1.logger.log(); } } } exports.UpgradeCommandService = UpgradeCommandService;