@friendofsvelte/django-kit
Advanced tools
Comparing version 0.0.1-dev.107 to 0.0.1-dev.108
@@ -33,9 +33,12 @@ import { fail, redirect } from '@sveltejs/kit'; | ||
let response; | ||
let data; | ||
let data = {}; | ||
try { | ||
response = await event.fetch(url, options); | ||
if (proxy_action.allow_cookies || opt_.allow_cookies) { | ||
assign_cookies(event, response); | ||
} | ||
data = await response.json(); | ||
} | ||
catch (e) { | ||
console.log(e); | ||
console.log("ERR:", e); | ||
return fail(500, { | ||
@@ -47,10 +50,5 @@ message: 'Something went wrong.', | ||
} | ||
if (proxy_action.allow_cookies || opt_.allow_cookies) { | ||
assign_cookies(event, response); | ||
if (response.ok) { | ||
return data; | ||
} | ||
if (response.status === 302) { | ||
redirect(response.status, response.headers.get('Location') || '/'); | ||
} | ||
if (response.ok) | ||
return data; | ||
return fail(response.status, data); | ||
@@ -57,0 +55,0 @@ } |
@@ -0,22 +1,10 @@ | ||
import { parseString, splitCookiesString } from 'set-cookie-parser'; | ||
export const assign_cookies = (event, response) => { | ||
const cookies = response.headers.get('set-cookie'); | ||
if (cookies) { | ||
cookies.split(',').forEach((cookie) => { | ||
const [key, ...rest] = cookie.trim().split('='); | ||
const value = rest.join('=').split(';')[0]; | ||
let path = '/'; | ||
let sameSite = 'Lax'; | ||
rest.join('=').split(';').slice(1).forEach(attr => { | ||
const [attrKey, attrValue] = attr.trim().split('='); | ||
if (attrKey.toLowerCase() === 'path') { | ||
path = attrValue; | ||
} | ||
else if (attrKey.toLowerCase() === 'samesite') { | ||
sameSite = attrValue; | ||
} | ||
}); | ||
// @ts-ignore | ||
event.cookies.set(key, value, { path, sameSite }); | ||
}); | ||
const cookiesHeader = response.headers.get('set-cookie'); | ||
if (!cookiesHeader) | ||
return; | ||
for (const str of splitCookiesString(cookiesHeader)) { | ||
const { name, value, ...options } = parseString(str); | ||
event.cookies.set(name, value, { ...options }); | ||
} | ||
}; |
{ | ||
"name": "@friendofsvelte/django-kit", | ||
"version": "0.0.1-dev.107", | ||
"version": "0.0.1-dev.108", | ||
"scripts": { | ||
@@ -45,4 +45,2 @@ "dev": "vite dev", | ||
], | ||
"peerDependencies": { | ||
}, | ||
"devDependencies": { | ||
@@ -53,3 +51,5 @@ "@sveltejs/adapter-auto": "^3.0.0", | ||
"@sveltejs/vite-plugin-svelte": "^3.0.0", | ||
"@types/set-cookie-parser": "^2.4.7", | ||
"publint": "^0.1.9", | ||
"set-cookie-parser": "^2.6.0", | ||
"svelte": "^5.0.0-next.1", | ||
@@ -56,0 +56,0 @@ "svelte-check": "^3.6.0", |
21800
12
420