live-fns: add xo badges (#154)

I like having xo badges on my repos. :D

/cc @sindresorhus
pull/159/head
Bertrand Marron 2018-09-14 19:04:50 +02:00 zatwierdzone przez Amio /
rodzic 2d7787171e
commit f73c83f763
3 zmienionych plików z 56 dodań i 1 usunięć

Wyświetl plik

@ -260,6 +260,11 @@ Advanced usage (for badge makers):
['(past month) uptime', '/uptime-robot/month/m780862024-50db2c44c703e5c68d6b1ebb'],
['(last hours) response', '/uptime-robot/response/m780862024-50db2c44c703e5c68d6b1ebb']
],
xo: [
['status', '/xo/status/badgen'],
['indent', '/xo/indent/@tusbar/cache-control'],
['semicolons', '/xo/semi/got']
],
badgesize: [
['normal size', '/badgesize/normal/amio/emoji.json/master/emoji-compact.json'],
['brotli size', '/badgesize/brotli/amio/emoji.json/master/emoji-compact.json'],

Wyświetl plik

@ -29,5 +29,6 @@ module.exports = {
runkit: require('./runkit.js'),
travis: require('./travis.js'),
'uptime-robot': require('./uptime-robot.js'),
'vs-marketplace': require('./vs-marketplace.js')
'vs-marketplace': require('./vs-marketplace.js'),
xo: require('./xo')
}

Wyświetl plik

@ -0,0 +1,49 @@
const got = require('../got.js')
const getIndent = space => {
if (space === false) return 'tab'
if (space === true) return '2 spaces'
if (space === 1) return '1 space'
return `${space} spaces`
}
module.exports = async (topic, ...project) => {
const endpoint = `https://cdn.jsdelivr.net/npm/${project.join('/')}/package.json`
const data = await got(endpoint).then(res => res.body)
if (!data.devDependencies || !('xo' in data.devDependencies)) {
return {
subject: 'xo',
status: 'not enabled',
color: 'grey'
}
}
const {
semicolon = true,
space = false
} = (data.xo || {})
switch (topic) {
case 'status':
return {
subject: 'xo',
status: 'enabled',
color: '5ED9C7'
}
case 'indent':
return {
subject: 'indent',
status: getIndent(space),
color: '5ED9C7'
}
case 'semi':
return {
subject: 'semicolons',
status: semicolon ? 'enabled' : 'disabled',
color: '5ED9C7'
}
}
}