/* * https://github.com/morethanwords/tweb * Copyright (C) 2019-2021 Eduard Kuzmenko * https://github.com/morethanwords/tweb/blob/master/LICENSE */ export type DurationType = 's' | 'm' | 'h' | 'd' | 'w'; export default function formatDuration(duration: number, showLast = 2) { if(!duration) { duration = 1; } let d: {duration: number, type: DurationType}[] = []; const p = [ {m: 1, t: 's'}, {m: 60, t: 'm'}, {m: 60, t: 'h'}, {m: 24, t: 'd'}, {m: 7, t: 'w'} ] as Array<{m?: number, t: DurationType}> const s = 1; let t = s; p.forEach((o, idx) => { t *= o.m; if(duration < t) { return; } const modulus = p[idx === (p.length - 1) ? idx : idx + 1].m; d.push({ duration: (duration / t % modulus | 0), type: o.t }); }); const out = d.slice(-showLast).reverse(); for(let i = out.length - 1; i >= 0; --i) { if(out[i].duration === 0) { out.splice(i, 1); } } return out; }