'use strict' const { promisify } = require('util') const semver = require('semver') const { regularUpdate } = require('../../lib/regular-update') function getLatestVersion() { return promisify(regularUpdate)({ url: 'https://nodejs.org/dist/latest/SHASUMS256.txt', intervalMillis: 24 * 3600 * 1000, json: false, scraper: shasums => { // tarball index start, tarball index end const taris = shasums.indexOf('node-v') const tarie = shasums.indexOf('\n', taris) const tarball = shasums.slice(taris, tarie) const version = tarball.split('-')[1] return version }, }) } async function versionColorForRange(range) { const latestVersion = await getLatestVersion() try { if (semver.satisfies(latestVersion, range)) { return 'brightgreen' } else if (semver.gtr(latestVersion, range)) { return 'yellow' } else { return 'orange' } } catch (e) { return 'lightgray' } } module.exports = { getLatestVersion, versionColorForRange, }