Files
ComfyUI-Model-Manager/src/utils/common.ts
2025-01-15 16:48:41 +08:00

40 lines
1.0 KiB
TypeScript

import dayjs from 'dayjs'
export const bytesToSize = (
bytes: number | string | undefined | null,
decimals = 2,
) => {
if (typeof bytes === 'undefined' || bytes === null) {
bytes = 0
}
if (typeof bytes === 'string') {
bytes = Number(bytes)
}
if (Number.isNaN(bytes)) {
return 'Unknown'
}
if (bytes === 0) {
return '0 Bytes'
}
const k = 1024
const dm = decimals < 0 ? 0 : decimals
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
const i = Math.floor(Math.log(bytes) / Math.log(k))
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]
}
export const formatDate = (date: number | string | Date) => {
return dayjs(date).format('YYYY-MM-DD HH:mm:ss')
}
export const previewUrlToFile = async (url: string) => {
return fetch(url)
.then((res) => res.blob())
.then((blob) => {
const type = blob.type
const extension = type.split('/')[1]
const file = new File([blob], `preview.${extension}`, { type })
return file
})
}