diff --git a/bun.lockb b/bun.lockb index 44a648b..54f6226 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/common/package.json b/packages/common/package.json index 0e7022b..b6655bf 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -8,8 +8,8 @@ }, "private": true, "dependencies": { - "@effect/schema": "^0.68.15", + "@effect/schema": "^0.68.17", "@thilawyn/thilalib": "^0.1.5", - "effect": "^3.4.6" + "effect": "^3.4.7" } } diff --git a/packages/server/package.json b/packages/server/package.json index d6e9a12..3c381d7 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -6,18 +6,18 @@ }, "private": true, "dependencies": { - "@effect/platform": "^0.58.18", - "@effect/platform-bun": "^0.38.17", - "@effect/schema": "^0.68.15", + "@effect/platform": "^0.58.20", + "@effect/platform-bun": "^0.38.19", + "@effect/schema": "^0.68.17", "@thilawyn/thilalib": "^0.1.5", "@todo-tests/common": "workspace:*", "@trpc/server": "^10.45.2", - "effect": "^3.4.6", + "effect": "^3.4.7", "express": "^4.19.2", "trpc-playground": "^1.0.4" }, "devDependencies": { "@types/express": "^4.17.21", - "bun-types": "^1.1.17" + "bun-types": "^1.1.18" } } diff --git a/packages/webui/package.json b/packages/webui/package.json index db943fa..b7abf00 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -9,7 +9,9 @@ "preview": "vite preview" }, "dependencies": { + "@effect/schema": "^0.68.17", "@tanstack/react-query": "4", + "@thilawyn/thilalib": "^0.1.5", "@trpc/client": "^10.45.2", "@trpc/react-query": "^10.45.2", "react": "^18.3.1", @@ -19,8 +21,8 @@ "@todo-tests/common": "workspace:*", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", "@vitejs/plugin-react": "^4.3.1", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", @@ -28,6 +30,6 @@ "eslint-plugin-react-refresh": "^0.4.7", "postcss": "^8.4.39", "tailwindcss": "^3.4.4", - "vite": "^5.3.1" + "vite": "^5.3.3" } } diff --git a/packages/webui/src/App.tsx b/packages/webui/src/App.tsx index ad2ea06..92951ce 100644 --- a/packages/webui/src/App.tsx +++ b/packages/webui/src/App.tsx @@ -1,10 +1,14 @@ +import { Index } from "./Index" import "./index.css" import { TRPCClientProvider } from "./trpc/TRPCClientProvider" export function App() { + return ( + ) + } diff --git a/packages/webui/src/Index.tsx b/packages/webui/src/Index.tsx new file mode 100644 index 0000000..20f1370 --- /dev/null +++ b/packages/webui/src/Index.tsx @@ -0,0 +1,29 @@ +import { Schema as S } from "@effect/schema" +import { JsonifiableTodo } from "@todo-tests/common/data" +import { Todo } from "./data" +import { trpc } from "./trpc/trpc" + + +const decodeTodos = S.decodeSync( + S.mutable( + S.Array( + JsonifiableTodo.pipe(S.compose(Todo)) + ) + ) +) + + +export function Index() { + + const todosQuery = trpc.todos.all.useQuery(undefined, { select: decodeTodos }) + + + return <> +
+

Todos

+ + +
+ + +} diff --git a/packages/webui/src/data/Todo.ts b/packages/webui/src/data/Todo.ts new file mode 100644 index 0000000..7665aba --- /dev/null +++ b/packages/webui/src/data/Todo.ts @@ -0,0 +1,9 @@ +import { MobXObservable, MutableClass } from "@thilawyn/thilalib/effect/schema/class" +import { Todo as CommonTodo } from "@todo-tests/common/data" + + +export class Todo + extends MutableClass("Todo")(CommonTodo.fields).pipe( + MobXObservable + ) +{} diff --git a/packages/webui/src/data/index.ts b/packages/webui/src/data/index.ts new file mode 100644 index 0000000..d5dbbf5 --- /dev/null +++ b/packages/webui/src/data/index.ts @@ -0,0 +1 @@ +export * from "./Todo"