alexlemaire/git-assist

View on GitHub
src/utils/version/check-version.js

Summary

Maintainability
A
0 mins
Test Coverage
module.exports = () => {
  const chalk = require('chalk')
  const publishedVer = getPublishedVer()
  if (publishedVer.length === 0) {
    clog.error(`Error while comparing local version to latest published: cannot retrieve ${chalk.italic.cyan('git-assist')} latest published version. There seems to be an error reaching NPM registry... Please check your internet connection or NPM registry status.`)
  }
  const currentVer = getCurrentVer()
  if (checkSumVer(currentVer) < checkSumVer(publishedVer)) {
    clog.info(`Your installed ${chalk.italic('git-assist')} version is outdated. Latest version is ${chalk.magenta(publishedVer)}. Please update via ${chalk.cyan.italic('npm i -g git-assist')}`)
  }
}

function getPublishedVer () {
  const spawnSync = require('child_process').spawnSync
  return spawnSync('npm', ['view', 'git-assist', 'version']).stdout.toString().trim()
}

function getCurrentVer () {
  return require(appRoot + '/package.json').version.trim()
}

function checkSumVer (ver) {
  const verArr = ver.split('.').map(verType => Number(verType)).reverse()
  return verArr.reduce((acc, elt, i) => acc + (10 ** i) * elt, 0)
}