mirror of
https://github.com/unraid/api.git
synced 2026-01-07 09:10:05 -06:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { TimeStringsObject } from '~/types/time';
|
|
|
|
const buildStringFromValues = ({
|
|
years, months, days, hours, minutes, seconds, firstDateWasLater, displaySeconds,
|
|
}: TimeStringsObject) => {
|
|
const result = [];
|
|
|
|
type DateStrings = {
|
|
[key: string]: string;
|
|
};
|
|
const dateStrings: DateStrings = {
|
|
year: 'year',
|
|
years: 'years',
|
|
month: 'month',
|
|
months: 'months',
|
|
day: 'day',
|
|
days: 'days',
|
|
hour: 'hour',
|
|
hours: 'hours',
|
|
minute: 'minute',
|
|
minutes: 'minutes',
|
|
second: 'second',
|
|
seconds: 'seconds',
|
|
firstDateWasLater: 'ago',
|
|
delimiter: ' ',
|
|
};
|
|
const pluralize = (num: number, word: string) => {
|
|
const index = word + (num === 1 ? '' : 's');
|
|
return `${num} ${dateStrings[index]}`;
|
|
};
|
|
|
|
if (years) result.push(pluralize(years, 'year'));
|
|
if (months) result.push(pluralize(months, 'month'));
|
|
if (days) result.push(pluralize(days, 'day'));
|
|
if (hours) result.push(pluralize(hours, 'hour'));
|
|
if (minutes) result.push(pluralize(minutes, 'minute'));
|
|
if (seconds && ((!years && !months && !days && !hours && !minutes) || displaySeconds)) result.push(pluralize(seconds, 'second'));
|
|
if (firstDateWasLater) result.push(dateStrings.firstDateWasLater);
|
|
return result.join(dateStrings.delimiter);
|
|
}
|
|
|
|
export default buildStringFromValues; |