From 251c792d74bb5482f72c452f3e7fd009304d695e Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 10 Oct 2016 17:16:15 +0800 Subject: [PATCH] Add CDNJS version integration --- index.html | 4 ++++ server.js | 26 ++++++++++++++++++++++++++ try.html | 4 ++++ 3 files changed, 34 insertions(+) diff --git a/index.html b/index.html index bb05485..f441400 100644 --- a/index.html +++ b/index.html @@ -407,6 +407,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable

Version

+ + + + diff --git a/server.js b/server.js index 33c9d10..f8678ab 100644 --- a/server.js +++ b/server.js @@ -1408,6 +1408,32 @@ cache(function(data, match, sendBadge, request) { }); })); +// CDNJS version integration +camp.route(/^\/cdnjs\/v\/(.*)\.(svg|png|gif|jpg|json)$/, +cache(function(data, match, sendBadge, request) { + var library = encodeURIComponent(match[1]); // eg, "express" or "@user/express" + var format = match[2]; + var apiUrl = 'https://api.cdnjs.com/libraries/' + library + '?fields=version'; + var badgeData = getBadgeData('cdnjs', data); + request(apiUrl, function(err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + return; + } + try { + var version = JSON.parse(buffer).version || 0; + var vdata = versionColor(version); + badgeData.text[1] = vdata.version; + badgeData.colorscheme = vdata.color; + sendBadge(format, badgeData); + } catch(e) { + badgeData.text[1] = 'not found'; + sendBadge(format, badgeData); + } + }); +})); + // npm download integration. camp.route(/^\/npm\/dm\/(.*)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { diff --git a/try.html b/try.html index 4fea415..54c2397 100644 --- a/try.html +++ b/try.html @@ -406,6 +406,10 @@ Pixel-perfect   Retina-ready   Fast   Consistent   Hackable
CDNJS: https://img.shields.io/cdnjs/v/jquery.svg
npm: https://img.shields.io/npm/v/npm.svg

Version

+ + + +
CDNJS: https://img.shields.io/cdnjs/v/jquery.svg
npm: https://img.shields.io/npm/v/npm.svg