WIP: remove drizzle completly, add env variable for api URL

This commit is contained in:
Pablu23
2025-10-10 17:03:30 +02:00
parent 5270368cec
commit 79138f4b4c
10 changed files with 67 additions and 1900 deletions

View File

@@ -1,11 +1,20 @@
import { type Handle, type HandleFetch } from '@sveltejs/kit';
import { type Handle } from '@sveltejs/kit';
import { env } from '$env/dynamic/public';
export const handle: Handle = async ({ event, resolve }) => {
const sessionId = event.cookies.get('session_id');
event.locals.user = null;
if (sessionId) {
const request = new Request('http://hitstar.xyz/api/user/me');
if (!env.PUBLIC_API_BASE) throw new Error('PUBLIC_API_BASE is not set');
console.log(env.PUBLIC_API_BASE);
const u = new URL('user/me', env.PUBLIC_API_BASE);
console.log(u);
const request = new Request(u);
request.headers.set(
'cookie',
event.cookies

View File

@@ -2,38 +2,42 @@ import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
import type { User } from '../../../app';
import type { Settings } from '$lib/types';
import { env } from '$env/dynamic/public';
export const load: PageServerLoad = async ({ params, fetch, locals: { user } }) => {
if (!user) {
redirect(307, '/');
}
if (!user) {
redirect(307, '/');
}
const response = await fetch(`http://hitstar.xyz/api/lobby/${params.id}`, {
headers: {
'Content-Type': 'application/json'
}
});
if (!env.PUBLIC_API_BASE) redirect(307, '/error');
if (response.status != 200) {
redirect(307, '/');
}
const u = new URL(`lobby/${params.id}`, env.PUBLIC_API_BASE);
const response = await fetch(u, {
headers: {
'Content-Type': 'application/json'
}
});
const {
id,
host,
players,
gameSettings
}: { id: string; host: User; players: User[]; gameSettings: Settings } = await response.json();
console.log('Successful request for lobby');
console.log(id);
if (response.status != 200) {
redirect(307, '/');
}
return {
user: user,
lobby: {
id,
host,
players,
gameSettings
}
};
const {
id,
host,
players,
gameSettings
}: { id: string; host: User; players: User[]; gameSettings: Settings } = await response.json();
console.log('Successful request for lobby');
console.log(id);
return {
user: user,
lobby: {
id,
host,
players,
gameSettings
}
};
};

View File

@@ -5,6 +5,8 @@
import PlayerList from '$lib/components/PlayerList.svelte';
import GameSettings from '$lib/components/GameSettings.svelte';
import type { PageProps } from './$types';
import { env } from '$env/dynamic/public';
import { goto } from '$app/navigation';
// Create WebSocket client
@@ -12,7 +14,7 @@
let { data }: PageProps = $props();
let lobbyCode = $state(data.lobby.id);
let lobbyCode = $state(data.lobby.id);
let isHost = $state(data.user.email === data.lobby.host.email); // Assume current user is host for this example
// Available options for settings
@@ -84,8 +86,14 @@
}
onMount(() => {
wsClient.connect(`ws://hitstar.xyz/api/lobby?id=${lobbyCode}`);
wsClient.gameSettings = data.lobby.gameSettings
if (!env.PUBLIC_API_WS_BASE) {
goto('/error');
return;
}
const u = new URL(`lobby?id=${lobbyCode}`, env.PUBLIC_API_WS_BASE);
wsClient.connect(u.href);
wsClient.gameSettings = data.lobby.gameSettings;
});
onDestroy(() => {
@@ -130,7 +138,11 @@
<!-- Left column: Player list -->
<div class="md:col-span-1">
{#if wsClient.connected}
<PlayerList players={wsClient.players} maxPlayers={wsClient.gameSettings.maxPlayers} host={data.lobby.host} />
<PlayerList
players={wsClient.players}
maxPlayers={wsClient.gameSettings.maxPlayers}
host={data.lobby.host}
/>
{:else}
<div class="bg-white rounded-lg shadow-sm p-5 flex items-center justify-center">
<div class="flex items-center text-amber-600">