39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
export const toGibibytes = (
|
|
input: number,
|
|
options?: { hideUnit?: boolean }
|
|
) => {
|
|
if (!input) return ''
|
|
if (input > 1024 ** 3) {
|
|
return (input / 1024 ** 3).toFixed(2) + (options?.hideUnit ? '' : 'GB')
|
|
} else if (input > 1024 ** 2) {
|
|
return (input / 1024 ** 2).toFixed(2) + (options?.hideUnit ? '' : 'MB')
|
|
} else if (input > 1024) {
|
|
return (input / 1024).toFixed(2) + (options?.hideUnit ? '' : 'KB')
|
|
} else {
|
|
return input + (options?.hideUnit ? '' : 'B')
|
|
}
|
|
}
|
|
|
|
export const formatDownloadPercentage = (
|
|
input: number,
|
|
options?: { hidePercentage?: boolean }
|
|
) => {
|
|
if (options?.hidePercentage) return input * 100
|
|
return (input * 100).toFixed(2) + '%'
|
|
}
|
|
|
|
export const formatDownloadSpeed = (input: number | undefined) => {
|
|
if (!input) return '0B/s'
|
|
return toGibibytes(input) + '/s'
|
|
}
|
|
|
|
export const formatTwoDigits = (input: number) => {
|
|
input = Number(input)
|
|
|
|
return input.toFixed(2)
|
|
}
|
|
|
|
export const formatExtensionsName = (input: string) => {
|
|
return input.replace('@janhq/', '').replaceAll('-', ' ')
|
|
}
|