Team Ai
Apppublic

harshapitla/github-actions-analytics

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
uiUtils.js46 linesDownload Raw Back to utils
1export function formatSI(v){2  if (v === null || v === undefined) return "";3  const n = Number(v);4  if (isNaN(n)) return String(v);5  const abs = Math.abs(n);6  if (abs >= 1e9) return (n/1e9).toFixed(1)+'B';7  if (abs >= 1e6) return (n/1e6).toFixed(1)+'M';8  if (abs >= 1e3) return (n/1e3).toFixed(1)+'k';9  return String(n);10}11 12export function formatNumberPrecise(v, digits=1){13  if (v === null || v === undefined) return "";14  const n = Number(v);15  if (!Number.isFinite(n)) return String(v);16  if (Math.abs(n) < 1000) return n.toFixed(0);17  return formatSI(n);18}19 20export function formatRating(v){21  const n = Number(v);22  if (!Number.isFinite(n)) return "";23  return n.toFixed(1);24}25 26export function truncateLabel(s, max=20){27  if(!s && s !== 0) return "";28  const str = String(s);29  if (str.length <= max) return str;30  return str.slice(0, max-1).trim() + "…";31}32 33export function tokensFromField(s){34  if(!s) return [];35  const replaced = String(s).replace(/[|/\\]+/g, ",").replace(/;/g,",");36  const parts = replaced.split(",").map(p => p.trim()).filter(Boolean);37  const out = [];38  parts.forEach(p => {39    p.split(/(?=[A-Z][a-z])|[_\-\s]+|(?=[0-9])|(?<=[a-z])(?=[A-Z])|[:.]+/).forEach(q=>{40      const t = q.trim();41      if(t) out.push(t);42    });43  });44  return [...new Set(out)]; 45}46