Browse Source

Merge pull request #3 from simov/chrome-web-store

Add chrome-web-store badge
test
Amio / 6 years ago
committed by GitHub
parent
commit
976e4be61b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      README.md
  2. 4
      libs/live-fns/_index.js
  3. 64
      libs/live-fns/chrome-web-store.js
  4. 13
      package-lock.json
  5. 1
      package.json

6
README.md

@ -49,6 +49,12 @@ Available color names:
| travis (org) | ![](https://badgen.now.sh/travis-org/styfle/packagephobia) | https://badgen.now.sh/travis/styfle/packagephobia |
| circleci | ![](https://badgen.now.sh/circleci/github/amio/now-go) | https://badgen.now.sh/circleci/github/amio/now-go |
| appveyor | ![](https://badgen.now.sh/appveyor/github/gruntjs/grunt) | https://badgen.now.sh/appveyor/github/gruntjs/grunt |
| chrome extension version | ![](http://badgen.now.sh/chrome-web-store/v/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/v/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
| chrome extension users | ![](http://badgen.now.sh/chrome-web-store/users/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/users/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
| chrome extension price | ![](http://badgen.now.sh/chrome-web-store/price/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/price/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
| chrome extension rating | ![](http://badgen.now.sh/chrome-web-store/rating/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/rating/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
| chrome extension stars | ![](http://badgen.now.sh/chrome-web-store/stars/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/stars/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
| chrome extension rating count | ![](http://badgen.now.sh/chrome-web-store/rating-count/ckkdlimhmcjmikdlpkmbgfkaikojcbjk) | https://badgen.now.sh/chrome-web-store/rating-count/ckkdlimhmcjmikdlpkmbgfkaikojcbjk
## About

4
libs/live-fns/_index.js

@ -1,5 +1,7 @@
const npm = require('./npm.js')
const chromeWebStore = require('./chrome-web-store.js')
module.exports = {
npm
npm,
'chrome-web-store': chromeWebStore,
}

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

@ -0,0 +1,64 @@
const webstore = require('chrome-webstore')
const millify = require('millify')
const round = (value, decimals) =>
Number(Math.round(value + 'e' + decimals) + 'e-' + decimals)
const stars = (average) => {
const base = Math.floor(average)
const fraction = average - base
return ((full = ''.padEnd(base, '★')) =>
// TODO: update when Unicode 11 goes mainstream
// between 0.33 and 0.66 should be `half star` symbol
fraction >= 0.33 && fraction <= 0.66 ? full.padEnd(base + 1, '★') :
fraction > 0.66 ? full.padEnd(base + 1, '★') : full
)().padEnd(5, '☆')
}
module.exports = async function (method, ...args) {
const meta = await webstore.detail({id: args[0]})
switch (method) {
case 'v':
return {
subject: 'chrome web store',
status: meta.version,
color: 'blue'
}
case 'users':
return {
subject: 'users',
status: millify(parseInt(meta.users.replace(',', ''))),
color: 'green'
}
case 'price':
return {
subject: 'price',
status: meta.price,
color: 'green'
}
case 'rating':
return {
subject: 'rating',
status: `${round(meta.rating.average, 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',
status: 'unknown',
color: 'grey'
}
}
}

13
package-lock.json

@ -227,6 +227,14 @@
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
"dev": true
},
"chrome-webstore": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/chrome-webstore/-/chrome-webstore-1.0.0.tgz",
"integrity": "sha512-MdDccnTov5c5CseeNCYDovJmDoytfJb8rYgwAty01Lc2awjtk6XkBsA9EpoxI/bGSC9KkP5CiGPrnFtckBsYPQ==",
"requires": {
"request-compose": "0.0.19"
}
},
"circular-json": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
@ -1492,6 +1500,11 @@
"util-deprecate": "~1.0.1"
}
},
"request-compose": {
"version": "0.0.19",
"resolved": "https://registry.npmjs.org/request-compose/-/request-compose-0.0.19.tgz",
"integrity": "sha512-BBMilZ4uReMzOCXvysw6l8nT5WwQDo/H8vaYNQ4BXPa7/0OJIaJskk4Ozzfpd2bmLb5ZQLpxJf/FMCeTX5QrkQ=="
},
"require-uncached": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",

1
package.json

@ -12,6 +12,7 @@
},
"dependencies": {
"badgen": "^1.1.3",
"chrome-webstore": "^1.0.0",
"find-my-way": "^1.15.1",
"lru-cache": "^4.1.3",
"millify": "^2.0.1",

Loading…
Cancel
Save