@foal/cli
Version:
CLI tool for FoalTS
50 lines (49 loc) • 2 kB
JavaScript
;
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;