badge-urls
Version:
Helper functions to generate URLs for all badges / shields from shields.io
69 lines (68 loc) • 2.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.urlWithOptions = exports.ShieldsIOColor = exports.ShieldsIOShieldStyle = void 0;
var tslib_1 = require("tslib");
var createUrl_1 = tslib_1.__importDefault(require("../utils/createUrl"));
var ShieldsIOShieldStyle;
(function (ShieldsIOShieldStyle) {
ShieldsIOShieldStyle["Plastic"] = "plastic";
ShieldsIOShieldStyle["Flat"] = "flat";
ShieldsIOShieldStyle["FlatSquare"] = "flat-square";
ShieldsIOShieldStyle["ForTheBadge"] = "for-the-badge";
ShieldsIOShieldStyle["Social"] = "social";
})(ShieldsIOShieldStyle = exports.ShieldsIOShieldStyle || (exports.ShieldsIOShieldStyle = {}));
var ShieldsIOColor;
(function (ShieldsIOColor) {
ShieldsIOColor["BrightGreen"] = "brightgreen";
ShieldsIOColor["Green"] = "green";
ShieldsIOColor["YellowGreen"] = "yellowgreen";
ShieldsIOColor["Yellow"] = "yellow";
ShieldsIOColor["Orange"] = "orange";
ShieldsIOColor["Red"] = "red";
ShieldsIOColor["Blue"] = "blue";
ShieldsIOColor["LightGrey"] = "lightgrey";
ShieldsIOColor["Success"] = "success";
ShieldsIOColor["Important"] = "important";
ShieldsIOColor["Critical"] = "critical";
ShieldsIOColor["Informational"] = "informational";
ShieldsIOColor["Inactive"] = "inactive";
ShieldsIOColor["BlueViolet"] = "blueviolet";
})(ShieldsIOColor = exports.ShieldsIOColor || (exports.ShieldsIOColor = {}));
var SHIELDS_IO_BASE_URL = "https://img.shields.io";
exports.urlWithOptions = function (urlOrPath, options) {
if (options === void 0) { options = {}; }
var _a = options.baseUrl, baseUrl = _a === void 0 ? SHIELDS_IO_BASE_URL : _a, style = options.style, label = options.label, logo = options.logo, logoColor = options.logoColor, logoWidth = options.logoWidth, link = options.link, cacheSeconds = options.cacheSeconds;
var url = createUrl_1.default(urlOrPath, baseUrl);
if (style) {
url.searchParams.set("style", style);
}
if (label) {
url.searchParams.set("label", label);
}
if (logo) {
url.searchParams.set("logo", logo);
}
if (logoColor) {
url.searchParams.set("logoColor", logoColor);
}
if (logoWidth) {
url.searchParams.set("logoWidth", logoWidth.toString());
}
if (link) {
if (typeof link === "string") {
url.searchParams.set("link", link);
}
else if (Array.isArray(link)) {
url.searchParams.set("link", link[0]);
url.searchParams.append("link", link[1]);
}
else {
url.searchParams.set("link", link.left);
url.searchParams.append("link", link.right);
}
}
if (cacheSeconds) {
url.searchParams.set("cacheSeconds", cacheSeconds.toString());
}
return url.toString();
};