const axios = require('axios').default;

const currentVersion = require('../package.json').version;

const packageUrl = 'https://raw.githubusercontent.com/Lissy93/dashy/master/package.json';

const logToConsole = (msg) => {
  console.log(msg); // eslint-disable-line no-console
};

const makeMsg = (latestVersion) => {
  const parse = (version) => parseInt(version.replace(/\./g, ''), 10);
  const difference = parse(latestVersion) - parse(currentVersion);
  let msg = '';
  if (difference <= 0) {
    msg = '\x1b[1m\x1b[32m✅ Dashy is Up-to-Date\x1b[0m\n';
  } else {
    msg = `\x1b[103m\x1b[34m${new Array(27).fill('━').join('')}\x1b[0m\n`
      + `\x1b[103m\x1b[34m⚠️ Update Available: ${latestVersion} \x1b[0m\n`
      + `\x1b[103m\x1b[34m${new Array(27).fill('━').join('')}\x1b[0m\n`;
  }
  return msg;
};

axios.get(packageUrl).then((response) => {
  if (response && response.data && response.data.version) {
    logToConsole(`\nUsing Dashy V-${currentVersion}. Update Check Complete`);
    logToConsole(makeMsg(response.data.version));
  }
}).catch(() => {
  logToConsole('Unable to check for updates');
});