mirror of https://github.com/Fabio286/antares.git
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import * as moment from 'moment';
|
|
|
|
export function useFilters () {
|
|
const cutText = (string: string, length: number, escape?: boolean) => {
|
|
if (typeof string !== 'string') return string;
|
|
if (escape) string = string.replace(/\s{2,}/g, ' ');
|
|
return string.length > length ? `${string.substring(0, length)}...` : string;
|
|
};
|
|
|
|
const lastPart = (string: string, length: number) => {
|
|
if (!string) return '';
|
|
|
|
string = string.split(/[/\\]+/).pop();
|
|
if (string.length >= length)
|
|
string = `...${string.slice(-length)}`;
|
|
return string;
|
|
};
|
|
|
|
const formatDate = (date: Date) => moment(date).isValid() ? moment(date).format('HH:mm:ss - YYYY/MM/DD') : date;
|
|
|
|
const localeString = (number: number | null) => {
|
|
if (number !== null)
|
|
return number.toLocaleString();
|
|
};
|
|
|
|
const wrapNumber = (num: number) => {
|
|
if (!num) return '';
|
|
return `(${num})`;
|
|
};
|
|
|
|
const parseKeys = (keys: Record<number, string>[]) => {
|
|
const isMacOS = process.platform === 'darwin';
|
|
return (keys as string[]).map(k => (
|
|
k.split('+')
|
|
.map(sk => (
|
|
`<code class="text-bold">${sk}</code>`
|
|
)))
|
|
.join('+')
|
|
.replaceAll('CommandOrControl', isMacOS ? 'Command' : 'Control')
|
|
).join(', ');
|
|
};
|
|
|
|
return {
|
|
cutText,
|
|
formatDate,
|
|
wrapNumber,
|
|
lastPart,
|
|
localeString,
|
|
parseKeys
|
|
};
|
|
}
|