Enable npm version for specific tag (#926)
* Enable npm version for specific tag * Show tag in badge
This commit is contained in:
parent
522e09f509
commit
d462111370
23
server.js
23
server.js
|
@ -1629,12 +1629,23 @@ cache(function (data, match, sendBadge, request) {
|
|||
}));
|
||||
|
||||
// npm version integration.
|
||||
camp.route(/^\/npm\/v\/(.*)\.(svg|png|gif|jpg|json)$/,
|
||||
camp.route(/^\/npm\/v\/(@[^\/]*)?\/?([^\/]*)\/?([^\/]*)\.(svg|png|gif|jpg|json)$/,
|
||||
cache(function(data, match, sendBadge, request) {
|
||||
var repo = encodeURIComponent(match[1]); // eg, "express" or "@user/express"
|
||||
var format = match[2];
|
||||
var apiUrl = 'https://registry.npmjs.org/-/package/' + repo + '/dist-tags';
|
||||
var badgeData = getBadgeData('npm', data);
|
||||
var scope = match[1]; // "@user"
|
||||
var repo = match[2]; // "express"
|
||||
var tag = match[3]; // "next"
|
||||
var format = match[4]; // "svg"
|
||||
var pkg = encodeURIComponent(scope
|
||||
? scope + '/' + repo
|
||||
: repo);
|
||||
var name = 'npm';
|
||||
if (tag) {
|
||||
name += '@' + tag;
|
||||
} else {
|
||||
tag = 'latest';
|
||||
}
|
||||
var apiUrl = 'https://registry.npmjs.org/-/package/' + pkg + '/dist-tags';
|
||||
var badgeData = getBadgeData(name, data);
|
||||
// Using the Accept header because of this bug:
|
||||
// <https://github.com/npm/npmjs.org/issues/163>
|
||||
request(apiUrl, { headers: { 'Accept': '*/*' } }, function(err, res, buffer) {
|
||||
|
@ -1645,7 +1656,7 @@ cache(function(data, match, sendBadge, request) {
|
|||
}
|
||||
try {
|
||||
var data = JSON.parse(buffer);
|
||||
var version = data.latest;
|
||||
var version = data[tag];
|
||||
var vdata = versionColor(version);
|
||||
badgeData.text[1] = vdata.version;
|
||||
badgeData.colorscheme = vdata.color;
|
||||
|
|
8
try.html
8
try.html
|
@ -427,6 +427,14 @@ Pixel-perfect Retina-ready Fast Consistent Hackable
|
|||
<td><img src='/npm/v/@cycle/core.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/npm/v/@cycle/core.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='node'> npm (tag): </th>
|
||||
<td><img src='/npm/v/npm/next.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/npm/v/npm/next.svg</code></td>
|
||||
</tr>
|
||||
<tr><th data-keywords='node'> npm (scoped with tag): </th>
|
||||
<td><img src='/npm/v/@cycle/core/canary.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/npm/v/@cycle/core/canary.svg</code></td>
|
||||
</tr>
|
||||
<tr><th> node: </th>
|
||||
<td><img src='/node/v/gh-badges.svg' alt=''/></td>
|
||||
<td><code>https://img.shields.io/node/v/gh-badges.svg</code></td>
|
||||
|
|
Loading…
Reference in New Issue
Block a user