'use strict' const isCSSColor = require('is-css-color') const logos = require('./load-logos')() const simpleIcons = require('./load-simple-icons')() const { svg2base64, isDataUri } = require('./logo-helper') const colorschemes = require('./colorscheme.json') function toArray(val) { if (val === undefined) { return [] } else if (Object(val) instanceof Array) { return val } else { return [val] } } function prependPrefix(s, prefix) { if (s === undefined) { return undefined } s = `${s}` if (s.startsWith(prefix)) { return s } else { return prefix + s } } function isHexColor(s = '') { return /^([\da-f]{3}){1,2}$/i.test(s) } function makeColor(color) { if (isHexColor(color)) { return `#${color}` } else if (colorschemes[color] !== undefined) { return colorschemes[color].colorB } else if (isCSSColor(color)) { return color } else { return undefined } } function makeColorB(defaultColor, overrides) { return makeColor(overrides.colorB || defaultColor) } function setBadgeColor(badgeData, color) { if (isHexColor(color)) { badgeData.colorB = `#${color}` delete badgeData.colorscheme } else if (colorschemes[color] !== undefined) { badgeData.colorscheme = color delete badgeData.colorB } else if (isCSSColor(color)) { badgeData.colorB = color delete badgeData.colorscheme } else { badgeData.colorscheme = 'red' delete badgeData.colorB } return badgeData } function makeLabel(defaultLabel, overrides) { return `${ overrides.label === undefined ? (defaultLabel || '').toLowerCase() : overrides.label }` } function getShieldsIcon(icon = '', color = '') { icon = typeof icon === 'string' ? icon.toLowerCase() : '' if (!logos[icon]) { return undefined } color = makeColor(color) return color ? logos[icon].svg.replace(/fill="(.+?)"/g, `fill="${color}"`) : logos[icon].base64 } function getSimpleIcon(icon = '', color = null) { icon = typeof icon === 'string' ? icon.toLowerCase().replace(/ /g, '-') : '' if (!simpleIcons[icon]) { return undefined } color = makeColor(color) return color ? simpleIcons[icon].svg.replace('