fix for axios parsing file content as json by default

This commit is contained in:
spencerwooo 2022-02-10 22:00:40 +08:00
parent 9e530b97d4
commit f4a6eb53bc
No known key found for this signature in database
GPG key ID: 24CD550268849CA0
2 changed files with 19 additions and 8 deletions

View file

@ -9,8 +9,10 @@ export default function useAxiosGet(fetchUrl: string): { response: any; error: s
useEffect(() => {
axios
.get(fetchUrl)
.then(res => setResponse(res.data))
// Using 'blob' as response type to get the response as a raw file blob, which is later parsed as a string.
// Axios defaults response parsing to JSON, which causes issues when parsing JSON files.
.get(fetchUrl, { responseType: 'blob' })
.then(async res => setResponse(await res.data.text()))
.catch(e => setError(e.message))
.finally(() => {
setValidating(false)

View file

@ -58,14 +58,23 @@ const extensions = {
tar: icons.archive,
zip: icons.archive,
css: icons.code,
py: icons.code,
html: icons.code,
js: icons.code,
ts: icons.code,
c: icons.code,
rb: icons.code,
cpp: icons.code,
js: icons.code,
jsx: icons.code,
java: icons.code,
sh: icons.code,
cs: icons.code,
py: icons.code,
css: icons.code,
html: icons.code,
ts: icons.code,
tsx: icons.code,
rs: icons.code,
vue: icons.code,
json: icons.code,
yaml: icons.code,
toml: icons.code,
txt: icons.text,
rtf: icons.text,