UNPKG

simple-icons

Version:

SVG icons for popular brands https://simpleicons.org

6 lines (5 loc) 2.9 kB
var T=Object.create;var n=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},c=(e,t,r,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _(t))!w.call(e,o)&&o!==r&&n(e,o,{get:()=>t[o],enumerable:!(l=A(t,o))||l.enumerable});return e};var m=(e,t,r)=>(r=e!=null?T(y(e)):{},c(t||!e||!e.__esModule?n(r,"default",{value:e,enumerable:!0}):r,e)),S=e=>c(n({},"__esModule",{value:!0}),e);var O={};L(O,{SVG_PATH_REGEX:()=>R,collator:()=>M,getIconSlug:()=>$,getIconsData:()=>G,getIconsDataPath:()=>x,getIconsDataString:()=>E,getThirdPartyExtensions:()=>z,getThirdPartyLibraries:()=>D,htmlFriendlyToTitle:()=>F,normalizeColor:()=>b,normalizeNewlines:()=>f,slugToVariableName:()=>N,svgToPath:()=>I,titleToHtmlFriendly:()=>U,titleToSlug:()=>g});module.exports=S(O);var a=m(require("node:fs/promises")),s=m(require("node:path"));const h={},d={"+":"plus",".":"dot","&":"and",\u0111:"d",\u0127:"h",\u0131:"i",\u0138:"k",\u0140:"l",\u0142:"l",\u00DF:"ss",\u0167:"t",\u00F8:"o"},C=new RegExp(`[${Object.keys(d).join("")}]`,"g"),P=/[^a-z\d]/g,R=/^m[-mzlhvcsqtae\d,. ]+$/i,$=e=>e.slug||g(e.title),I=e=>e.split('"',8)[7],g=e=>e.toLowerCase().replaceAll(C,t=>d[t]).normalize("NFD").replaceAll(P,""),N=e=>`si${e[0].toUpperCase()}${e.slice(1)}`,U=e=>e.replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll(/./g,t=>{const r=t.codePointAt(0)||0;return r>127?`&#${r};`:t}),F=e=>e.replaceAll(/&#(\d+);/g,(t,r)=>String.fromCodePoint(Number.parseInt(r,10))).replaceAll(/&(quot|amp|lt|gt);/g,(t,r)=>({quot:'"',amp:"&",lt:"<",gt:">"})[r]),x=()=>s.default.resolve(h.dirname,"data","simple-icons.json"),E=()=>a.default.readFile(x(),"utf8"),G=async()=>{const e=await E();return JSON.parse(e)},f=e=>e.replaceAll(`\r `,` `),b=e=>{let t=e.replace("#","").toUpperCase();return t.length<6?t=[...t.slice(0,3)].map(r=>r.repeat(2)).join(""):t.length>6&&(t=t.slice(0,6)),t},j=e=>{const[t,r]=e.split(" | "),l=/>([^<]+)<\/a>$/.exec(t)?.[1];if(l===void 0)throw new Error(`Module name improperly parsed from line: ${e}`);const o=/^\s*<a href="(.[^"]+)"/.exec(t)?.[1];if(o===void 0)throw new Error(`Module URL improperly parsed from line: ${e}`);const i=/\[(.+)]/.exec(r)?.[1];if(i===void 0)throw new Error(`Author improperly parsed from line: ${e}`);const p=/\((.+)\)/.exec(r)?.[1];if(p===void 0)throw new Error(`Author URL improperly parsed from line: ${e}`);return{module:{name:l,url:o},author:{name:i,url:p}}},u=async e=>{const t=await a.default.readFile(s.default.join(h.dirname,"README.md"),"utf8");return f(t).split(e)[1].split(`| `)[0].split(`| |`).slice(2).map(r=>j(r))},z=async()=>u("## Third-Party Extensions"),D=async()=>u("## Third-Party Libraries"),M=new Intl.Collator("en",{usage:"search",caseFirst:"upper"});