diff options
| author | lain <lain@soykaf.club> | 2020-07-09 11:20:07 +0200 |
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-07-09 11:20:07 +0200 |
| commit | 905de12980ceda8982fb24b4f715677065974528 (patch) | |
| tree | c10e03aa8c1eb4a530cad68eb2bf93cc78f26596 /src | |
| parent | 2b3c4ccfaeddb6a05c7a97e669daa17c2058727c (diff) | |
After Store: Correctly decode UTF-8 encoded base64 strings.
Diffstat (limited to 'src')
| -rw-r--r-- | src/boot/after_store.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 302b278c..8b722c5c 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -20,12 +20,20 @@ const parsedInitialResults = () => { 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 data = parsedInitialResults() if (!data || !data[request]) { return window.fetch(request) } - const requestData = JSON.parse(atob(data[request])) + const decoded = decodeUTF8Base64(data[request]) + const requestData = JSON.parse(decoded) return { ok: true, json: () => requestData, |
