Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/Savy011/acm-website-tanstack.
Something went wrong. Try again.
1.5 kB · 71 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172interface JWTPayload { sub: string; exp: number; iat: number;}
export function decodeJWTPayload(token: string): JWTPayload | null { try { const [, payload] = token.split("."); return JSON.parse(atob(payload.replace(/-/g, "+").replace(/_/g, "/"))); } catch { return null; }}
export function slugify(str: string) { return str .toLowerCase() .trim() .replace(/[^\w\s-]/g, "") .replace(/[\s_]+/g, "-") .replace(/^-+|-+$/g, "");}
interface IImageMetadata { format: string; width: number; height: number; space: string; channels: number; depth: string; isProgressive: boolean; isPalette: boolean; hasProfile: boolean; hasAlpha: boolean; autoOrient: { width: number; height: number; }; src: string;}
const allImages = import.meta.glob("/src/lib/assets/images/**/*", { eager: true, import: "default", query: { format: "webp", as: "metadata", },}) as Record<string, IImageMetadata>;
export function resolveStaticImg(path: string) { const fullPath = path.startsWith("$assets/images/") ? path.replace("$assets/images/", "src/lib/assets/images/") : path.startsWith("/src") ? path : `/src/lib/assets/images/${path}`;
const resolved = allImages[fullPath];
if (!resolved) { throw new Error(`Image asset not found: ${path}`); }
return { width: resolved.width, height: resolved.height, format: resolved.format, src: resolved.src, };}