Merge branch 'master' into now2

pull/282/head
amio 2019-05-10 11:31:51 +08:00
commit ccce1b3537
12 zmienionych plików z 2765 dodań i 2077 usunięć

2
.github/ISSUE_TEMPLATE.md vendored 100644
Wyświetl plik

@ -0,0 +1,2 @@
<!-- Love badgen? Please consider supporting our collective:
👉 https://opencollective.com/badgen/donate -->

Wyświetl plik

@ -8,6 +8,8 @@
<a href="https://stats.uptimerobot.com/z6nqBfYGB/780862024"><img src="https://badgen.net/uptime-robot/response/m780862024-50db2c44c703e5c68d6b1ebb" /></a>
<a href="LICENSE.md"><img src="https://badgen.net/github/license/amio/badgen-service" /></a>
<a href="https://twitter.com/badgen_net"><img src="https://badgen.net/badge//@badgen_net/1DA1F2?icon=twitter" /></a>
<a href="#backers"><img src="https://opencollective.com/badgen/backers/badge.svg"/></a>
<a href="#sponsors"><img src="https://opencollective.com/badgen/sponsors/badge.svg"/></a>
</p>
<p align="center">Home of <a href="https://badgen.net">badgen.net</a>, fast badge generating service.</p>
@ -109,3 +111,33 @@ built with ⚡️ from [badgen](https://github.com/amio/badgen).
[contributors-src]: https://badgen.net/github/contributors/amio/badgen-service
[contributors-href]: https://github.com/amio/badgen-service/graphs/contributors
[now-href]: https://zeit.co/now
## Contributors
This project exists thanks to all the people who contribute.
<a href="https://github.com/amio/badgen-service/graphs/contributors"><img src="https://opencollective.com/badgen/contributors.svg?width=890&button=false" /></a>
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/badgen#backer)]
<a href="https://opencollective.com/badgen#backers" target="_blank"><img src="https://opencollective.com/badgen/backers.svg?width=890"></a>
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/badgen#sponsor)]
<a href="https://opencollective.com/badgen/sponsor/0/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/1/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/2/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/3/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/4/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/5/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/6/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/7/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/8/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/badgen/sponsor/9/website" target="_blank"><img src="https://opencollective.com/badgen/sponsor/9/avatar.svg"></a>

Wyświetl plik

@ -20,13 +20,13 @@ export default () => (
</div>
<div className='bottom'>
<div>
Built with by <a href='https://github.com/amio'>Amio</a> and awesome <a href='https://github.com/amio/badgen-service/graphs/contributors'>contributors</a>. Hosted on <a href='https://zeit.co/now'>Now Cloud</a>. License under <a href='https://github.com/amio/badgen-service/blob/master/LICENSE.md'>ISC</a>.
Built with by <a href='https://github.com/amio'>Amio</a> and awesome <a href='https://github.com/badgen/badgen.net/graphs/contributors'>contributors</a>. Hosted on <a href='https://zeit.co/now'>Now Cloud</a>. License under <a href='https://github.com/badgen/badgen.net/blob/master/LICENSE.md'>ISC</a>.
</div>
<div className='links'>
<a href='https://twitter.com/badgen_net'>
<img src='https://simpleicons.now.sh/icons/twitter.svg?color=ffffff' />
</a>
<a href='https://github.com/amio/badgen-service'>
<a href='https://github.com/badgen/badgen.net'>
<img src='https://simpleicons.now.sh/icons/github.svg?color=ffffff' />
</a>
</div>

Wyświetl plik

@ -329,7 +329,7 @@ Advanced usage (for badge makers):
for (const icon of json.icons) {
if (blacklist.indexOf(icon) !== -1) continue;
const img = document.createElement('img')
img.src = `/badge//${icon}?icon=${icon}`
img.src = `/badge/-/${icon}?icon=${icon}&label`
icons.appendChild(img)
icons.appendChild(document.createTextNode("\n"))
}

Wyświetl plik

@ -1,4 +1,3 @@
const xml2js = require('xml2js')
const got = require('../got.js')
const millify = require('millify')
const stars = require('../utils/stars.js')
@ -6,45 +5,38 @@ const semColor = require('../utils/sem-color.js')
const v = require('../utils/version-formatter.js')
module.exports = async (topic, name) => {
const endpoint = `https://services.addons.mozilla.org/en-US/firefox/api/1.5/addon/${name}`
const xml = await got(endpoint, { json: false }).then(res => res.body)
const { addon } = await new Promise((resolve, reject) => {
xml2js.parseString(xml, {
trim: true,
explicitArray: false
}, (err, res) => err ? reject(err) : resolve(res))
})
const endpoint = `https://addons.mozilla.org/api/v3/addons/addon/${name}/`
const addon = await got(endpoint).then(res => res.body)
switch (topic) {
case 'v':
return {
subject: 'mozilla add-on',
status: v(addon.version),
color: semColor(addon.version)
status: v(addon.current_version.version),
color: semColor(addon.current_version.version)
}
case 'users':
return {
subject: 'users',
status: millify(parseInt(addon.daily_users)),
status: millify(parseInt(addon.average_daily_users)),
color: 'green'
}
case 'rating':
return {
subject: 'rating',
status: `${Number(addon.rating).toFixed(2)}/5`,
status: `${Number(addon.ratings.average).toFixed(2)}/5`,
color: 'green'
}
case 'stars':
return {
subject: 'stars',
status: stars(addon.rating),
status: stars(addon.ratings.average),
color: 'green'
}
case 'reviews':
return {
subject: 'reviews',
status: addon.reviews.$.num,
status: addon.ratings.count,
color: 'green'
}
default:

Wyświetl plik

@ -4,7 +4,7 @@ const got = require('../got.js')
// https://circleci.com/docs/api/v1-reference/
module.exports = async (vcsType, user, project, branch) => {
branch = branch ? `/tree/${qs.escape(branch)}` : ''
const endpoint = `https://circleci.com/api/v1.1/project/${vcsType}/${user}/${project}${branch}`
const endpoint = `https://circleci.com/api/v1.1/project/${vcsType}/${user}/${project}${branch}?filter=completed&limit=1`
const [latest] = await got(endpoint).then(res => res.body)
return {
@ -16,26 +16,9 @@ module.exports = async (vcsType, user, project, branch) => {
const getStatusColor = status => {
switch (status) {
case 'infrastructure_fail':
case 'timedout':
case 'failed':
case 'no_tests':
return 'red'
case 'canceled':
case 'not_run':
case 'not_running':
return 'grey'
case 'queued':
case 'scheduled':
return 'yellow'
case 'retried':
case 'running':
return 'orange'
case 'fixed':
case 'success':
return 'green'

Wyświetl plik

@ -14,7 +14,7 @@ module.exports = async (topic, platform, user, repo, branch) => {
}
// Detect coveralls.io's badge redirection instead of using it's api
// See https://github.com/amio/badgen-service/issues/96
// See https://github.com/badgen/badgen.net/issues/96
const coverage = async (platform, user, repo, branch) => {
const endpoint = `https://coveralls.io/repos/${platform}/${user}/${repo}/badge.svg`
const badgeURL = await got.head(endpoint, {

Wyświetl plik

@ -1,22 +1,21 @@
const got = require('../got.js')
const byteSize = require('byte-size')
module.exports = async (topic, ...args) => {
const endpoint = `https://packagephobia.now.sh/api.json?p=${args.join('/')}`
const { installSize, publishSize } = await got(endpoint).then(res => res.body)
const endpoint = `https://packagephobia.now.sh/v2/api.json?p=${args.join('/')}`
const { install, publish } = await got(endpoint).then(res => res.body)
switch (topic) {
case 'publish':
return {
subject: 'publish size',
status: formatSize(publishSize),
color: formatColor(publishSize)
status: publish.pretty,
color: publish.color.replace('#', '')
}
case 'install':
return {
subject: 'install size',
status: formatSize(installSize),
color: formatColor(installSize)
status: install.pretty,
color: install.color.replace('#', '')
}
default:
return {
@ -26,51 +25,3 @@ module.exports = async (topic, ...args) => {
}
}
}
const formatSize = (size) => {
return byteSize(size, {
units: 'iec',
precision: 2
}).toString().replace(/iB\b/, 'B')
}
/**
* Color schema from
* https://github.com/styfle/packagephobia/blob/master/src/util/npm-parser.ts
*/
const KB = 1024
const oneHundredKb = 100 * KB
const megabyte = 1024 * KB
const fiveMb = 5 * megabyte
const thirtyMb = 30 * megabyte
const oneHundredMb = 100 * megabyte
const fiveHundredMb = 500 * megabyte
const color = {
brightgreen: '44CC11',
limegreen: '97CA00',
yellow: 'DFB317',
orange: 'FE7D37',
red: 'E05D44',
blue: '007EC6',
pink: 'FF69B4'
}
const formatColor = bytes => {
if (bytes < oneHundredKb) {
return color.brightgreen
} else if (bytes < megabyte) {
return color.limegreen
} else if (bytes < fiveMb) {
return color.blue
} else if (bytes < thirtyMb) {
return color.yellow
} else if (bytes < oneHundredMb) {
return color.orange
} else if (bytes < fiveHundredMb) {
return color.red
} else {
return color.pink
}
}

Wyświetl plik

@ -60,13 +60,13 @@ module.exports = serveMarked('libs/index.md', {
<p>
built with <br/>
by <a href="https://github.com/amio">Amio</a>
and awesome <a href="https://github.com/amio/badgen-service/graphs/contributors">contributors</a><br/>
and awesome <a href="https://github.com/badgen/badgen.net/graphs/contributors">contributors</a><br/>
hosted on <a href="https://zeit.co/now">Now Cloud</a>
</p>
</segment>
<aside>
<a href="https://status.badgen.net">Status</a>
<a href="https://github.com/amio/badgen-service">GitHub</a>
<a href="https://github.com/badgen/badgen.net">GitHub</a>
<a href="https://twitter.com/badgen_net">Twitter</a>
</aside>
</div>

4655
package-lock.json wygenerowano

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,5 +1,5 @@
{
"name": "badgen-service",
"name": "badgen.net",
"description": "Badge generating service",
"author": "Amio <amio.cn@gmail.com>",
"license": "ISC",
@ -12,17 +12,17 @@
"pretest": "npm run lint",
"test": "tap test/*.js --reporter spec -j12",
"start": "node service.js",
"now-prune": "now rm badgen-service --safe -y -T amio || true",
"predeploy": "now -T amio inspect badgen.net",
"deploy": "now -T amio && now -T amio alias",
"canary": "now -T amio && now -T amio alias badgen-canary"
"now-prune": "now rm badgen.net --safe -y -S amio || true",
"predeploy": "now -S amio inspect badgen.net",
"deploy": "now -S amio && now -S amio alias",
"canary": "now -S amio && now -S amio alias badgen-canary"
},
"standard": {
"parser": "babel-eslint"
},
"dependencies": {
"badgen": "^2.7.0",
"badgen-icons": "^0.4.0",
"badgen": "^2.7.1",
"badgen-icons": "^0.8.0",
"byte-size": "^5.0.1",
"cheerio": "^1.0.0-rc.2",
"chrome-webstore": "^1.2.1",
@ -30,25 +30,24 @@
"got": "^9.6.0",
"lodash.debounce": "^4.0.8",
"micro": "^9.3.3",
"micro-fork": "^0.1.1",
"micro-fork": "^1.0.0",
"millify": "^2.0.1",
"raven": "^2.6.4",
"react-debounce-render": "^5.0.0",
"semver": "^5.6.0",
"serve-handler": "^5.0.7",
"serve-marked": "^0.4.0",
"xml2js": "^0.4.19"
"semver": "^6.0.0",
"serve-handler": "^5.0.8",
"serve-marked": "^1.0.0"
},
"devDependencies": {
"@mdx-js/mdx": "^0.15.7 ",
"@mdx-js/mdx": "^0.20.3",
"@zeit/next-mdx": "^1.2.0",
"babel-eslint": "^10.0.1",
"micro-dev": "^3.0.0",
"next": "^7.0.2",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"next": "^8.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"standard": "^12.0.1",
"supertest": "^3.4.2",
"tap": "^12.5.1"
"supertest": "^4.0.2",
"tap": "^12.6.1"
}
}

Wyświetl plik

@ -1,7 +1,7 @@
# Badgen @ Now
![](https://deploy.now.sh/static/button.svg)
`$ now amio/badgen-service`
`$ now badgen/badgen.net`
<style jsx global>{`
h1 + p { padding: 3em }