RPC work
This commit is contained in:
@@ -3,11 +3,11 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./data": "./src/data/index.ts",
|
"./data": "./src/data/index.ts",
|
||||||
|
"./rpc": "./src/rpc/index.ts",
|
||||||
"./traits": "./src/traits/index.ts"
|
"./traits": "./src/traits/index.ts"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@effect/rpc": "^0.31.18",
|
|
||||||
"@effect/schema": "^0.68.15",
|
"@effect/schema": "^0.68.15",
|
||||||
"@thilawyn/thilalib": "^0.1.5",
|
"@thilawyn/thilalib": "^0.1.5",
|
||||||
"effect": "^3.4.6"
|
"effect": "^3.4.6"
|
||||||
|
|||||||
@@ -1,11 +1 @@
|
|||||||
import { Rpc } from "@effect/rpc"
|
export type { Router } from "@todo-tests/server"
|
||||||
import { Schema as S } from "@effect/schema"
|
|
||||||
import { JsonifiableTodo } from "../data"
|
|
||||||
|
|
||||||
|
|
||||||
export class GetTodos extends Rpc.StreamRequest<GetTodos>()(
|
|
||||||
"GetTodos",
|
|
||||||
S.Never,
|
|
||||||
JsonifiableTodo,
|
|
||||||
{},
|
|
||||||
) {}
|
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "@todo-tests/server",
|
"name": "@todo-tests/server",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
"exports": {
|
||||||
|
".": "./src/router.ts"
|
||||||
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@effect/platform": "^0.58.18",
|
"@effect/platform": "^0.58.18",
|
||||||
"@effect/platform-bun": "^0.38.17",
|
"@effect/platform-bun": "^0.38.17",
|
||||||
"@effect/rpc-http": "^0.29.18",
|
|
||||||
"@effect/schema": "^0.68.15",
|
"@effect/schema": "^0.68.15",
|
||||||
"@thilawyn/thilalib": "^0.1.5",
|
"@thilawyn/thilalib": "^0.1.5",
|
||||||
"@todo-tests/common": "workspace:*",
|
"@todo-tests/common": "workspace:*",
|
||||||
|
|||||||
4
packages/server/src/router.ts
Normal file
4
packages/server/src/router.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import type { RPCRouter } from "./rpc/RPCRouter"
|
||||||
|
|
||||||
|
|
||||||
|
export type Router = RPCRouter.Router
|
||||||
@@ -23,6 +23,5 @@ export class RPCRouter extends Context.Tag("RPCRouter")<RPCRouter,
|
|||||||
|
|
||||||
export module RPCRouter {
|
export module RPCRouter {
|
||||||
export type Router = Context.Tag.Service<RPCRouter>
|
export type Router = Context.Tag.Service<RPCRouter>
|
||||||
|
|
||||||
export const Live = Layer.effect(RPCRouter, router)
|
export const Live = Layer.effect(RPCRouter, router)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@tanstack/react-query": "4",
|
||||||
|
"@trpc/client": "^10.45.2",
|
||||||
|
"@trpc/react-query": "^10.45.2",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1"
|
"react-dom": "^18.3.1"
|
||||||
},
|
},
|
||||||
|
|||||||
5
packages/webui/src/trpc/trpc.ts
Normal file
5
packages/webui/src/trpc/trpc.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import type { Router } from "@todo-tests/common/rpc"
|
||||||
|
import { createTRPCReact } from "@trpc/react-query"
|
||||||
|
|
||||||
|
|
||||||
|
export const trpc = createTRPCReact<Router>()
|
||||||
Reference in New Issue
Block a user