export const avatarWidths = [26, 34, 42, 52, 64, 96, 192, 256, 320] as const; export const avatarWidthFor = (px: number): number => avatarWidths.find((width) => width >= px * 2) ?? avatarWidths[avatarWidths.length - 1]; // the service wants signed urls and the secret is server side, so this points // at the route that signs export const avatarUrl = ( did: string, width?: number, format?: "webp" | "jpeg" | "png" ): string => { const query = new URLSearchParams({ ...(width ? { size: String(width) } : {}), ...(format ? { format } : {}) }).toString(); return `/avatar/${encodeURIComponent(did)}${query ? `?${query}` : ""}`; };