const GitHub = require('github-api');
// eslint-disable-next-line import/no-extraneous-dependencies
const electron = require('electron');
const semver = require('semver');


const { app } = electron;

const gh = new GitHub();
const repo = gh.getRepo('mifi', 'lossless-cut');

async function checkNewVersion() {
  try {
    // From API: https://developer.github.com/v3/repos/releases/#get-the-latest-release
    // View the latest published full release for the repository.
    // Draft releases and prereleases are not returned by this endpoint.
    const res = (await repo.getRelease('latest')).data;
    const newestVersion = res.tag_name.replace(/^v?/, '');

    const currentVersion = app.getVersion();
    // const currentVersion = '3.17.2';

    console.log('Current version', currentVersion);
    console.log('Newest version', newestVersion);

    if (semver.lt(currentVersion, newestVersion)) return newestVersion;
    return undefined;
  } catch (e) {
    console.error('Failed to check github version');
    return undefined;
  }
}

module.exports = { checkNewVersion };
