From 085c6a2d2a773c1619043a810215f5eece8362bc Mon Sep 17 00:00:00 2001 From: Xmader Date: Wed, 20 Jan 2021 10:52:08 -0500 Subject: [PATCH] refactor: add check for latest version --- src/cli.ts | 6 +++--- src/npm-data.ts | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/cli.ts b/src/cli.ts index 5ad084c..f60a2da 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -10,7 +10,7 @@ import { loadMscore, INDV_DOWNLOADS, WebMscore } from './mscore' import { ScoreInfo, ScoreInfoHtml, ScoreInfoObj, getActualId } from './scoreinfo' import { getLibreScoreLink } from './librescore-link' import { escapeFilename } from './utils' -import { isNpx, isLatest, installedVersion, latestVersion } from './npm-data' +import { isNpx, isLatest, getInstalledVer, getLatestVer } from './npm-data' import i18n from './i18n' const inquirer: typeof import('inquirer') = require('inquirer') @@ -187,8 +187,8 @@ void (async () => { spinner.succeed('OK') if (!(await isNpx())) { - const installed = await installedVersion() - const latest = await latestVersion() + const installed = getInstalledVer() + const latest = await getLatestVer() if (!isLatest(installed, latest)) { console.log(chalk.yellowBright(`Your installed version (${installed}) of the musescore-downloader CLI is not the latest one (${latest})!\nRun npm i -g musescore-downloader to update.`)) } diff --git a/src/npm-data.ts b/src/npm-data.ts index ad27048..4dd9088 100644 --- a/src/npm-data.ts +++ b/src/npm-data.ts @@ -1,21 +1,22 @@ import { exec as _exec } from 'child_process' import { promisify } from 'util' +import { version } from '../package.json' const exec = promisify(_exec) -export async function isNpx() { +export async function isNpx (): Promise { const output = await exec('npm list -g musescore-downloader') return output.stdout.includes('(empty)') } -export async function installedVersion() { - return require('../package.json').version +export function getInstalledVer (): string { + return version } -export async function latestVersion() { +export async function getLatestVer (): Promise { return (await exec('npm info musescore-downloader version')).stdout.trim() } -export async function isLatest() { - return await installedVersion() === await latestVersion() +export function isLatest (installed: string, lastest: string): boolean { + return installed === lastest }