mirror of
https://github.com/ReVanced/revanced-bots.git
synced 2026-01-19 09:13:58 +00:00
26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import parse from 'parse-duration'
|
|
|
|
const defaultUnitValue = parse['']!
|
|
|
|
export const parseDuration = (duration: string, defaultUnit?: parse.Units) => {
|
|
if (defaultUnit) parse[''] = parse[defaultUnit]!
|
|
return (
|
|
// biome-ignore lint/suspicious/noAssignInExpressions: Expression is ignored
|
|
// biome-ignore lint/style/noCommaOperator: The last expression (parse call) is returned, it is not confusing
|
|
(parse[''] = defaultUnitValue), parse(duration, 'ms') ?? Number.NaN
|
|
)
|
|
}
|
|
|
|
export const durationToString = (duration: number) => {
|
|
if (duration === 0) return '0s'
|
|
|
|
const days = Math.floor(duration / (24 * 60 * 60 * 1000))
|
|
const hours = Math.floor((duration % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000))
|
|
const minutes = Math.floor((duration % (60 * 60 * 1000)) / (60 * 1000))
|
|
const seconds = Math.floor((duration % (60 * 1000)) / 1000)
|
|
|
|
return `${days ? `${days}d` : ''}${hours ? `${hours}h` : ''}${minutes ? `${minutes}m` : ''}${
|
|
seconds ? `${seconds}s` : ''
|
|
}`
|
|
}
|