diff --git a/packages/client/src/api.ts b/packages/client/src/api.ts index 526352c..ecc177a 100644 --- a/packages/client/src/api.ts +++ b/packages/client/src/api.ts @@ -1,8 +1,6 @@ -import { createResource } from "solid-js"; -import { type Api } from "../../server/src/api"; import { treaty } from "@elysiajs/eden"; -import { EdenWS } from "@elysiajs/eden/treaty"; import { fromEvents } from "kefir"; +import { type Api } from "@games/server/src/api"; const { api } = treaty( import.meta.env.DEV ? "http://localhost:5001" : window.location.origin, diff --git a/packages/client/src/app.tsx b/packages/client/src/app.tsx index 088aabd..1605c30 100644 --- a/packages/client/src/app.tsx +++ b/packages/client/src/app.tsx @@ -2,10 +2,9 @@ import { Route, Router } from "@solidjs/router"; import { createResource, lazy, Suspense } from "solid-js"; import { render } from "solid-js/web"; import "virtual:uno.css"; -import pkg from "../package.json"; +import pkg from "^/package.json"; import "./style.css"; import api from "./api"; -import Cookies from "js-cookie"; import { mePromise } from "./profile"; const Profile = () => { diff --git a/packages/client/src/components/Card.tsx b/packages/client/src/components/Card.tsx index db3a20b..e1ab0c5 100644 --- a/packages/client/src/components/Card.tsx +++ b/packages/client/src/components/Card.tsx @@ -1,7 +1,7 @@ -import { Component, createResource, JSX, Suspense } from "solid-js"; +import { Component, Suspense } from "solid-js"; +import type { Card } from "@games/shared/cards"; import { Clickable, Stylable } from "./toolbox"; -import { Card } from "../../../shared/cards"; const cardToSvgFilename = (card: Card) => { if (card.kind == "joker") { diff --git a/packages/client/src/components/Game.tsx b/packages/client/src/components/Game.tsx index 09cd1e7..8afcc36 100644 --- a/packages/client/src/components/Game.tsx +++ b/packages/client/src/components/Game.tsx @@ -1,9 +1,9 @@ import { Accessor, createContext, useContext } from "solid-js"; -import { +import type { SimpleAction, SimplePlayerView, -} from "../../../server/src/games/simple"; -import { me, profile } from "../profile"; +} from "@games/server/src/games/simple"; +import { me, profile } from "~/profile"; import Hand from "./Hand"; import Pile from "./Pile"; import { TableContext } from "./Table"; diff --git a/packages/client/src/components/Hand.tsx b/packages/client/src/components/Hand.tsx index 3fc2a8b..750839c 100644 --- a/packages/client/src/components/Hand.tsx +++ b/packages/client/src/components/Hand.tsx @@ -1,5 +1,5 @@ import { Component, For } from "solid-js"; -import type { Card as TCard, Hand as THand } from "../../../shared/cards"; +import type { Card as TCard, Hand as THand } from "@games/shared/cards"; import Card from "./Card"; import { Stylable } from "./toolbox"; diff --git a/packages/client/src/components/Player.tsx b/packages/client/src/components/Player.tsx index 4295837..614ff4d 100644 --- a/packages/client/src/components/Player.tsx +++ b/packages/client/src/components/Player.tsx @@ -1,8 +1,8 @@ import { createSignal, useContext } from "solid-js"; -import { playerColor, profile } from "../profile"; +import { playerColor, profile } from "~/profile"; import { TableContext } from "./Table"; import { Stylable } from "./toolbox"; -import { createObservable, createObservableWithInit } from "../fn"; +import { createObservable, createObservableWithInit } from "~/fn"; export default (props: { playerKey: string } & Stylable) => { const table = useContext(TableContext); diff --git a/packages/client/src/components/Table.tsx b/packages/client/src/components/Table.tsx index 0fab01d..a34e089 100644 --- a/packages/client/src/components/Table.tsx +++ b/packages/client/src/components/Table.tsx @@ -1,20 +1,19 @@ +import type { TWsIn, TWsOut } from "@games/server/src/table"; +import { fromPromise, Stream } from "kefir"; import { Accessor, createContext, createEffect, - createResource, createSignal, For, onCleanup, Show, } from "solid-js"; -import { TWsIn, TWsOut } from "../../../server/src/table"; -import api, { fromWebsocket } from "../api"; -import { createObservable, createObservableWithInit, cx } from "../fn"; -import { me } from "../profile"; +import api, { fromWebsocket } from "~/api"; +import { createObservable, createObservableWithInit, cx } from "~/fn"; +import { me } from "~/profile"; import Game from "./Game"; import Player from "./Player"; -import { fromPromise, Stream } from "kefir"; export const TableContext = createContext<{ view: Accessor; diff --git a/packages/client/src/routes/[game]/[instance].tsx b/packages/client/src/routes/[game]/[instance].tsx deleted file mode 100644 index 16d9a11..0000000 --- a/packages/client/src/routes/[game]/[instance].tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { A, useParams } from "@solidjs/router"; - -import Game from "../../components/Game"; - -export default () => { - const params = useParams<{ game: string; instance: string }>(); - - return ( - <> - - - Back - - - ); -}; diff --git a/packages/client/src/routes/[game]/index.tsx b/packages/client/src/routes/[game]/index.tsx deleted file mode 100644 index ba283be..0000000 --- a/packages/client/src/routes/[game]/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { A, useParams } from "@solidjs/router"; - -import { createEffect, createResource, For, Suspense } from "solid-js"; -import api from "../../api"; - -export default () => { - const param = useParams<{ game: string }>(); - - const [instances, { refetch }] = createResource( - () => param.game, - async () => api.instances.get({ query: param }).then((res) => res.data) - ); - - return ( - -
-

{param.game}

- - -
-
- ); -}; diff --git a/packages/client/src/routes/[table].tsx b/packages/client/src/routes/[table].tsx index b434785..a0834be 100644 --- a/packages/client/src/routes/[table].tsx +++ b/packages/client/src/routes/[table].tsx @@ -1,8 +1,8 @@ import { A, useParams } from "@solidjs/router"; -import Table from "../components/Table"; +import Table from "~/components/Table"; import { Show } from "solid-js"; -import { me } from "../profile"; +import { me } from "~/profile"; export default () => { const { tableKey } = useParams(); @@ -10,9 +10,6 @@ export default () => { return ( - - Back - ); }; diff --git a/packages/client/src/routes/index.tsx b/packages/client/src/routes/index.tsx index b4b5206..1545381 100644 --- a/packages/client/src/routes/index.tsx +++ b/packages/client/src/routes/index.tsx @@ -1,6 +1,6 @@ import { A } from "@solidjs/router"; import { createEffect, createResource, For } from "solid-js"; -import api from "../api"; +import api from "~/api"; export default () => { const [games] = createResource(async () => diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 4e93417..5c4db87 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../tsconfig.json", "compilerOptions": { "target": "ESNext", "module": "ESNext", @@ -12,9 +13,10 @@ "noEmit": true, "isolatedModules": true, "paths": { - "~/*": ["./src/*"], - "$/*": ["./"], - "@/*": ["./public/*"] + "^/*": ["./*"], + "@games/*": ["./packages/*"], + "$/*": ["./packages/client/*"], + "~/*": ["./packages/client/src/*"] } } } diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts index ebd5328..dc47fdd 100644 --- a/packages/client/vite.config.ts +++ b/packages/client/vite.config.ts @@ -1,6 +1,7 @@ import { defineConfig } from "vite"; import solidPlugin from "vite-plugin-solid"; import UnoCSS from "unocss/vite"; +import path from "path"; export default defineConfig({ plugins: [solidPlugin(), UnoCSS()], @@ -8,4 +9,12 @@ export default defineConfig({ outDir: "../server/public", emptyOutDir: true, }, + resolve: { + alias: { + "^": path.resolve(__dirname, "../../"), + "@games": path.resolve(__dirname, "../"), + $: path.resolve(__dirname, "./"), + "~": path.resolve(__dirname, "./src"), + }, + }, }); diff --git a/packages/server/src/logging.ts b/packages/server/src/logging.ts new file mode 100644 index 0000000..e69de29