@capawesome/cli
Version:
The Capawesome Cloud Command Line Interface (CLI) to manage Live Updates and more.
32 lines (31 loc) • 1.31 kB
JavaScript
import httpClient from '../utils/http-client.js';
import consola from 'consola';
import { createRequire } from 'module';
import * as semver from 'semver';
const require = createRequire(import.meta.url);
const pkg = require('../../package.json');
class UpdateServiceImpl {
httpClient;
constructor(httpClient) {
this.httpClient = httpClient;
}
async checkForUpdate() {
try {
const response = await this.httpClient.get(`https://registry.npmjs.org/${pkg.name}/latest`);
const latestVersion = response.data.version;
if (pkg.version.includes('-dev')) {
console.log(''); // Add an empty line for better readability
consola.info(`You are using a development version of Capawesome CLI (${pkg.version}). The latest stable version is ${latestVersion}.`);
return;
}
if (semver.gt(latestVersion, pkg.version)) {
consola.warn(`New version of Capawesome CLI available: ${pkg.name}@${latestVersion}. Please update to receive the latest features and bug fixes.`);
}
}
catch (error) {
consola.warn('Failed to check for updates.');
}
}
}
const updateService = new UpdateServiceImpl(httpClient);
export default updateService;