components/rmrk/utils.ts
import { MediaType } from './types'
// TODO: move to shared
export const resolveMedia = (mimeType?: string): MediaType => {
if (!mimeType) {
return MediaType.UNKNOWN
}
if (/^application\/json/.test(mimeType)) {
return MediaType.MODEL
}
if (/^text\/html/.test(mimeType)) {
return MediaType.IFRAME
}
if (/^image\/svg\+xml/.test(mimeType)) {
return MediaType.IMAGE
}
if (/^application\/pdf/.test(mimeType)) {
return MediaType.OBJECT
}
const match = mimeType.match(/^[a-z]+/)
if (!match) {
return MediaType.UNKNOWN
}
const prefix = match[0].toUpperCase()
let result = MediaType.UNKNOWN
Object.entries(MediaType).forEach(([type, value]) => {
if (type === prefix) {
result = value
return
}
})
return result
}
export const getRandomIntInRange = (min: number, max: number): number => {
min = Math.ceil(min)
max = Math.floor(max)
return Math.floor(Math.random() * (max - min + 1)) + min
}