Something went wrong. Try again.
silly solutions for silly problems tylur.dev/type-level-leetcode
Something went wrong. Try again.
1.1 kB · 40 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041import { clsx, type ClassValue } from "clsx";import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs));}
export function formatDate(date: Date) { return Intl.DateTimeFormat("en-US", { month: "short", day: "2-digit", year: "numeric", }).format(date);}
export function readingTime(html: string) { const textOnly = html.replace(/<[^>]+>/g, ""); const wordCount = textOnly.split(/\s+/).length; const readingTimeMinutes = (wordCount / 200 + 1).toFixed(); return `${readingTimeMinutes} min read`;}
export function dateRange(startDate: Date, endDate?: Date | string): string { const startMonth = startDate.toLocaleString("default", { month: "short" }); const startYear = startDate.getFullYear().toString(); let endMonth; let endYear;
if (endDate) { if (typeof endDate === "string") { endMonth = ""; endYear = endDate; } else { endMonth = endDate.toLocaleString("default", { month: "short" }); endYear = endDate.getFullYear().toString(); } }
return `${startMonth}${startYear} - ${endMonth}${endYear}`;}