selfhostable, read-only reddit client
at main 1.3 kB view raw
1- 2 function fmtnum(n) { 3 return n >= 1e6 ? (n / 1e6).toFixed(1) + 'mil' : 4 n >= 1e3 ? (n / 1e3).toFixed(1) + 'k' : 5 n; 6 } 7- var fmttxt = (n,t)=>`${t}${n==1?'':'s'}` 8- var stripPrefix = (s, p) => s.startsWith(p) ? s.slice(p.length) : s; 9- 10 function timeDifference(current, previous) { 11 if (!current || !previous) { 12 return ''; 13 } 14 var msPerMinute = 60 * 1000; 15 var msPerHour = msPerMinute * 60; 16 var msPerDay = msPerHour * 24; 17 var msPerMonth = msPerDay * 30; 18 var msPerYear = msPerDay * 365; 19 var elapsed = current - previous; 20 if (elapsed < msPerMinute) { 21 return Math.round(elapsed/1000) + 's'; 22 } else if (elapsed < msPerHour) { 23 return Math.round(elapsed/msPerMinute) + 'm'; 24 } else if (elapsed < msPerDay ) { 25 return Math.round(elapsed/msPerHour ) + 'h'; 26 } else if (elapsed < msPerMonth) { 27 return Math.round(elapsed/msPerDay) + 'd'; 28 } else if (elapsed < msPerYear) { 29 return Math.round(elapsed/msPerMonth) + 'mo'; 30 } else { 31 return Math.round(elapsed/msPerYear ) + 'y'; 32 } 33 } 34- 35 function encodeQueryParams(obj) { 36 return Object.keys(obj) 37 .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])) 38 .join('&'); 39 }