import { Args } from '../deps.ts';
export function calculateSize(number: number) { const kB = 1024; const MB = kB * kB; const GB = MB * kB;
if (number > GB) { return `${getSizeString(number, GB)} GB`; } else if (number > MB) { return `${getSizeString(number, MB)} MB`; }
return `${getSizeString(number, kB)} kB`;}
function getSizeString(number: number, unit: number): string { return `${Number((number / unit).toFixed(1))}`;}
export function calculateEnergy(amount: number) { if (amount > 1) { return `${amount.toFixed(1)} kW /g`; }
return `${(amount * 1000).toFixed(1)} W /g`;}
export function noArgs(flags: Args) { return Object.values(flags).every( (flag) => flag === false || flag === undefined || flag.length === 0, );}
export function isValidUrl(url: string) { if (!/\./.test(url)) { console.error( '%cDid you forget to provide a TLD?', 'color: white; background-color: red; font-weight: bold', ); return false; } try { if (!containsHttpString(url)) { url = `https://${url}`; } new URL(url); return true; } catch (_err) { console.error( '%cInvalid URL', 'color: white; background-color: red; font-weight: bold', ); return false; }}
function containsHttpString(url: string) { return /(http|https)?:\/\/(\S+)/.test(url) ?? false;}
export function stripHttpString(url: string) { return containsHttpString(url) ? url.split('://')[1] : url;}
export function slugify(text: string) { return text .toString() .normalize('NFKD') .toLowerCase() .trim() .replace(/\./g, '-') .replace(/\s+/g, '-') .replace(/\-\-+/g, '-'); }
export function getWebsiteCarbonUrl(url: string) { const shortUrl = stripHttpString(url); return `https://websitecarbon.com/website/${slugify(shortUrl)}`;}