2021-03-03 17:46:37 +00:00

48 lines
925 B
JavaScript

import store from '@/store'
import { renew } from '@/utils/auth'
import { baseURL } from '@/utils/constants'
export async function fetchURL (url, opts) {
opts = opts || {}
opts.headers = opts.headers || {}
let { headers, ...rest } = opts
const res = await fetch(`${baseURL}${url}`, {
headers: {
'X-Auth': store.state.jwt,
...headers
},
...rest
})
if (res.headers.get('X-Renew-Token') === 'true') {
await renew(store.state.jwt)
}
return res
}
export async function fetchJSON (url, opts) {
const res = await fetchURL(url, opts)
if (res.status === 200) {
return res.json()
} else {
throw new Error(res.status)
}
}
export function removePrefix (url, prefix) {
if (url.startsWith('/files')) {
url = url.slice(6)
} else if (prefix) {
url = url.replace(prefix, '')
}
if (url === '') url = '/'
if (url[0] !== '/') url = '/' + url
return url
}