From 3c72b5a92fc33f5606e0c2fa928264dc22a8f68a Mon Sep 17 00:00:00 2001 From: Xmader Date: Wed, 20 Jan 2021 11:05:56 -0500 Subject: [PATCH] refactor: check version info --- src/cli.ts | 9 ++++----- src/npm-data.ts | 12 ++++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/cli.ts b/src/cli.ts index f60a2da..523e81e 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, getInstalledVer, getLatestVer } from './npm-data' +import { isNpx, getVerInfo } from './npm-data' import i18n from './i18n' const inquirer: typeof import('inquirer') = require('inquirer') @@ -187,10 +187,9 @@ void (async () => { spinner.succeed('OK') if (!(await isNpx())) { - 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.`)) + const { installed, latest, isLatest } = await getVerInfo() + if (!isLatest) { + console.log(chalk.yellowBright(`\nYour 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 4dd9088..676a5c5 100644 --- a/src/npm-data.ts +++ b/src/npm-data.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ + import { exec as _exec } from 'child_process' import { promisify } from 'util' import { version } from '../package.json' @@ -17,6 +19,12 @@ export async function getLatestVer (): Promise { return (await exec('npm info musescore-downloader version')).stdout.trim() } -export function isLatest (installed: string, lastest: string): boolean { - return installed === lastest +export async function getVerInfo () { + const installed = getInstalledVer() + const latest = await getLatestVer() + return { + installed, + latest, + isLatest: installed === latest, + } }