create-zalo-mini-app
Version:
Create zalo mini app project
47 lines (38 loc) • 1.27 kB
JavaScript
const axios = require('axios');
const spinner = require('./spinner');
const log = require('./log');
async function checkUpdate(version = '') {
spinner.start('Checking for available updates...');
const hasUpdate = await new Promise((resolve, reject) => {
axios
.get('https://registry.npmjs.org/zmp-cli/latest')
.then((res) => {
const latestVersion = res.data.version
.split('.')
.map((n) => parseInt(n, 10));
if (!version) {
resolve(true);
}
const currentVersion = version.split('.').map((n) => parseInt(n, 10));
let hasUpdateVersion = false;
let currentIsHigher = false;
latestVersion.forEach((n, index) => {
if (currentIsHigher) return;
if (latestVersion[index] > currentVersion[index])
hasUpdateVersion = true;
else if (latestVersion[index] < currentVersion[index])
currentIsHigher = true;
});
resolve(hasUpdateVersion);
})
.catch((err) => {
reject(err);
spinner.error('Error checking update');
if (err) log.error(err.stderr || err);
process.exit(1);
});
});
spinner.done('');
return hasUpdate;
}
module.exports = checkUpdate;