import { Rpc, Router } from "@effect/rpc";
import { HttpRouter as RpcHttpRouter } from "@effect/rpc-http";
import { Effect, Layer } from "effect";
import { HttpMiddleware, HttpRouter, HttpServer } from "@effect/platform";
import { BunHttpServer, BunRuntime } from "@effect/platform-bun";
import { Test } from "./schema";
const router = Router.make(
Rpc.effect(Test, () =>
Effect.gen(function* () {
return 42;
})
)
);
export type Router = typeof router;
const HttpLive = HttpRouter.empty.pipe(
HttpRouter.post("/rpc", RpcHttpRouter.toHttpApp(router)),
HttpServer.serve(HttpMiddleware.logger),
HttpServer.withLogAddress,
Layer.provide(BunHttpServer.layer({ port: 3002 }))
);
Layer.launch(HttpLive).pipe(BunRuntime.runMain);
import { Rpc, Router } from "@effect/rpc";
import { HttpRouter as RpcHttpRouter } from "@effect/rpc-http";
import { Effect, Layer } from "effect";
import { HttpMiddleware, HttpRouter, HttpServer } from "@effect/platform";
import { BunHttpServer, BunRuntime } from "@effect/platform-bun";
import { Test } from "./schema";
const router = Router.make(
Rpc.effect(Test, () =>
Effect.gen(function* () {
return 42;
})
)
);
export type Router = typeof router;
const HttpLive = HttpRouter.empty.pipe(
HttpRouter.post("/rpc", RpcHttpRouter.toHttpApp(router)),
HttpServer.serve(HttpMiddleware.logger),
HttpServer.withLogAddress,
Layer.provide(BunHttpServer.layer({ port: 3002 }))
);
Layer.launch(HttpLive).pipe(BunRuntime.runMain);