Merging this separately so the commit with the tooling change is readable. This is a follow-on to #1167 which turned prettier on.
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
'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,
|
|
}
|