safetwitch/src/mixins.ts

50 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-06-18 23:42:40 -04:00
export function truncate(value: string, length: number) {
if (value.length > length) {
return value.substring(0, length) + '...'
} else {
return value
}
}
export function abbreviate(text: number) {
return Intl.NumberFormat('en-US', {
//@ts-ignore
notation: 'compact',
maximumFractionDigits: 1
}).format(text)
}
const https = (import.meta.env.SAFETWITCH_HTTPS.slice() === "true")
const protocol = https ? 'https://' : 'http://'
2023-06-19 23:18:10 -04:00
const rootBackendUrl = `${protocol}${import.meta.env.SAFETWITCH_BACKEND_DOMAIN}/`
2023-06-18 23:42:40 -04:00
export async function getEndpoint(endpoint: string) {
let data
let language = localStorage.getItem("language")
if (language === null) {
language = "en"
}
2023-06-18 23:42:40 -04:00
try {
const res = await fetch(rootBackendUrl + endpoint, {
method: 'GET',
headers: {
"Accept-Language": language
}
})
2023-06-18 23:42:40 -04:00
const rawData = await res.json()
2023-06-19 23:18:10 -04:00
if (!res.ok) {
throw res
}
if (rawData.status !== 'ok') {
throw rawData
2023-06-18 23:42:40 -04:00
}
2023-06-19 23:18:10 -04:00
data = rawData.data
2023-06-18 23:42:40 -04:00
} catch (error) {
2023-06-19 23:18:10 -04:00
throw error
2023-06-18 23:42:40 -04:00
}
return data
}