badgen.net/libs/live-fns/chrome-web-store.js

54 wiersze
1.3 KiB
JavaScript

const webstore = require('chrome-webstore')
const millify = require('millify')
const semColor = require('../utils/sem-color.js')
const stars = require('../utils/stars.js')
const v = require('../utils/version-formatter.js')
module.exports = async (topic, ...args) => {
const meta = await webstore.detail({ id: args[0] })
switch (topic) {
case 'v':
return {
subject: 'chrome web store',
status: v(meta.version),
color: semColor(meta.version)
}
case 'users':
return {
subject: 'users',
status: millify(parseInt(meta.users.replace(/,/g, ''))),
color: 'green'
}
case 'price':
return {
subject: 'price',
status: meta.price,
color: 'green'
}
case 'rating':
return {
subject: 'rating',
status: `${Number(meta.rating.average).toFixed(2)}/5`,
color: 'green'
}
case 'stars':
return {
subject: 'stars',
status: stars(meta.rating.average),
color: 'green'
}
case 'rating-count':
return {
subject: 'rating count',
status: `${meta.rating.count} total`,
color: 'green'
}
default:
return {
subject: 'chrome web store',
status: 'unknown',
color: 'grey'
}
}
}