mirror of
https://github.com/filebrowser/filebrowser.git
synced 2025-05-08 19:22:57 +00:00
48 lines
925 B
JavaScript
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
|
|
}
|
|
|