Client side atproto account migrator in your web browser, along with services for backups and adversarial migrations. pdsmoover.com
pds atproto migrations moo cow
at bugfix/DetectNewPds 23 lines 553 B view raw
1function formatBytes(bytes: number | null) { 2 if (bytes == null) return '—'; 3 const units = ['B', 'KB', 'MB', 'GB', 'TB']; 4 let i = 0; 5 let v = Number(bytes); 6 while (v >= 1024 && i < units.length - 1) { 7 v /= 1024; 8 i++; 9 } 10 return v.toFixed(1) + ' ' + units[i]; 11} 12 13function formatDate(value: string | undefined) { 14 if (!value) return '—'; 15 try { 16 const d = new Date(value); 17 return d.toLocaleString(); 18 } catch (_) { 19 return String(value); 20 } 21} 22 23export {formatBytes, formatDate};