Browse Source

chore: standalone sem-color.js

test
Amio 6 years ago
parent
commit
656c31a414
  1. 3
      libs/live-fns/amo.js
  2. 3
      libs/live-fns/chrome-web-store.js
  3. 3
      libs/live-fns/homebrew.js
  4. 7
      libs/live-fns/npm.js
  5. 23
      libs/utils/sem-color.js

3
libs/live-fns/amo.js

@ -3,6 +3,7 @@ const xml2js = require('xml2js')
const millify = require('millify')
const round = require('../utils/round.js')
const stars = require('../utils/stars.js')
const semColor = require('../utils/sem-color.js')
module.exports = async function (method, ...args) {
const endpoint = `https://services.addons.mozilla.org/en-US/firefox/api/1.5/addon/${args[0]}`
@ -19,7 +20,7 @@ module.exports = async function (method, ...args) {
return {
subject: 'mozilla add-on',
status: 'v' + addon.version,
color: addon.version[0] === '0' ? 'orange' : 'blue'
color: semColor(addon.version)
}
case 'users':
return {

3
libs/live-fns/chrome-web-store.js

@ -2,6 +2,7 @@ const webstore = require('chrome-webstore')
const millify = require('millify')
const round = require('../utils/round.js')
const stars = require('../utils/stars.js')
const semColor = require('../utils/sem-color.js')
module.exports = async function (method, ...args) {
const meta = await webstore.detail({id: args[0]})
@ -10,7 +11,7 @@ module.exports = async function (method, ...args) {
return {
subject: 'chrome web store',
status: 'v' + meta.version,
color: meta.version[0] === '0' ? 'orange' : 'blue'
color: semColor(meta.version)
}
case 'users':
return {

3
libs/live-fns/homebrew.js

@ -1,4 +1,5 @@
const axios = require('../axios.js')
const semColor = require('../utils/sem-color.js')
module.exports = async function (method, ...args) {
const endpoint = `https://formulae.brew.sh/api/formula/${args[0]}.json`
@ -9,7 +10,7 @@ module.exports = async function (method, ...args) {
return {
subject: 'homebrew',
status: 'v' + versions.stable,
color: versions.stable[0] === '0' ? 'orange' : 'blue'
color: semColor(versions.stable)
}
default:
return {

7
libs/live-fns/npm.js

@ -1,5 +1,6 @@
const axios = require('../axios.js')
const millify = require('millify')
const semColor = require('../utils/sem-color.js')
// https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md
// https://github.com/npm/registry/blob/master/docs/download-counts.md
@ -50,14 +51,10 @@ async function pkg (topic, args) {
switch (topic) {
case 'version': {
const color = tag !== 'latest'
? 'cyan'
: (meta.version.split('.')[0] === '0' ? 'orange' : 'blue')
return {
subject: `npm${tag === 'latest' ? '' : '@' + tag}`,
status: `v${meta.version}`,
color
color: tag === 'latest' ? semColor(meta.version) : 'cyan'
}
}
case 'license': {

23
libs/utils/sem-color.js

@ -0,0 +1,23 @@
/**
* Generate color from semver string.
*
* Examples
* '1.2.3' => 'blue'
* '0.1.2' => 'orange'
* '1.2.3-beta.0' => 'cyan'
* '1.2.3-alpha.0' => 'cyan'
* '1.2.3-canary.0' => 'cyan'
* '0.1.2-canary.0' => 'cyan'
*/
module.exports = function vc (version) {
if (version.match(/\b(alpha|beta|canary)\b/)) {
return 'cyan'
}
if (version.startsWith('0.')) {
return 'orange'
}
return 'blue'
}
Loading…
Cancel
Save