After Store: Correctly decode UTF-8 encoded base64 strings.

This commit is contained in:
lain 2020-07-09 11:20:07 +02:00
parent 2b3c4ccfae
commit 905de12980
1 changed files with 9 additions and 1 deletions

View File

@ -20,12 +20,20 @@ const parsedInitialResults = () => {
return staticInitialResults return staticInitialResults
} }
const decodeUTF8Base64 = (data) => {
const rawData = atob(data)
const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))
const text = new TextDecoder().decode(array)
return text
}
const preloadFetch = async (request) => { const preloadFetch = async (request) => {
const data = parsedInitialResults() const data = parsedInitialResults()
if (!data || !data[request]) { if (!data || !data[request]) {
return window.fetch(request) return window.fetch(request)
} }
const requestData = JSON.parse(atob(data[request])) const decoded = decodeUTF8Base64(data[request])
const requestData = JSON.parse(decoded)
return { return {
ok: true, ok: true,
json: () => requestData, json: () => requestData,