'use strict'; const semver = require('semver'); const settings = require('./Settings'); const axios = require('axios'); let infos; const loadEtherpadInformations = () => axios.get('https://static.etherpad.org/info.json') .then(async resp => { try { infos = await resp.data; if (infos === undefined || infos === null) { await Promise.reject("Could not retrieve current version") return } return await Promise.resolve(infos); } catch (err) { return await Promise.reject(err); } }) exports.getLatestVersion = () => { exports.needsUpdate(); return infos.latestVersion; }; exports.needsUpdate = async (cb) => { await loadEtherpadInformations() .then((info) => { if (semver.gt(info.latestVersion, settings.getEpVersion())) { if (cb) return cb(true); } }).catch((err) => { console.error(`Can not perform Etherpad update check: ${err}`); if (cb) return cb(false); }); }; exports.check = () => { exports.needsUpdate((needsUpdate) => { if (needsUpdate) { console.warn(`Update available: Download the actual version ${infos.latestVersion}`); } }); };