UNPKG

badge-urls

Version:

Helper functions to generate URLs for all badges / shields from shields.io

64 lines (63 loc) 2.35 kB
import createUrl from "../utils/createUrl"; export var ShieldsIOShieldStyle; (function (ShieldsIOShieldStyle) { ShieldsIOShieldStyle["Plastic"] = "plastic"; ShieldsIOShieldStyle["Flat"] = "flat"; ShieldsIOShieldStyle["FlatSquare"] = "flat-square"; ShieldsIOShieldStyle["ForTheBadge"] = "for-the-badge"; ShieldsIOShieldStyle["Social"] = "social"; })(ShieldsIOShieldStyle || (ShieldsIOShieldStyle = {})); export 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 || (ShieldsIOColor = {})); const SHIELDS_IO_BASE_URL = "https://img.shields.io"; export const urlWithOptions = (urlOrPath, options = {}) => { const { baseUrl = SHIELDS_IO_BASE_URL, style, label, logo, logoColor, logoWidth, link, cacheSeconds, } = options; const url = createUrl(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(); };