Server test

This commit is contained in:
Julien Valverdé
2024-07-05 01:44:46 +02:00
parent d875652142
commit f725fb194f

View File

@@ -1,10 +1,16 @@
import { BunRuntime } from "@effect/platform-bun" import { BunRuntime } from "@effect/platform-bun"
import { Todo } from "@todo-tests/common/data" import { Todo } from "@todo-tests/common/data"
import { Identifiable } from "@todo-tests/common/traits" import { Identifiable } from "@todo-tests/common/traits"
import { Array, Duration, Effect, Fiber, Layer, Option, Stream } from "effect" import { Array, Duration, Effect, Layer, Option, Stream } from "effect"
import { ServicesLive } from "./Services" import { ServicesLive } from "./Services"
import { TodoRepository, createDefaultTodos } from "./TodoRepository" import { TodoRepository, createDefaultTodos } from "./TodoRepository"
import { TRPCEffectRuntimeLive } from "./trpc/TRPCEffectRuntime" import { ExpressApp } from "./express/ExpressApp"
import { ExpressHTTPServer } from "./express/ExpressHTTPServer"
const ServerLive = ExpressHTTPServer.Live.pipe(
Layer.provide(ExpressApp.Live)
)
const watchTodoChanges = Effect.gen(function*() { const watchTodoChanges = Effect.gen(function*() {
@@ -24,7 +30,6 @@ const watchTodoChanges = Effect.gen(function*() {
) )
}) })
const main = Effect.gen(function*() { const main = Effect.gen(function*() {
const watcher = yield* Effect.fork(watchTodoChanges) const watcher = yield* Effect.fork(watchTodoChanges)
yield* createDefaultTodos yield* createDefaultTodos
@@ -52,16 +57,14 @@ const main = Effect.gen(function*() {
Effect.delay(Duration.seconds(1)) Effect.delay(Duration.seconds(1))
) )
yield* Fiber.join(watcher) // yield* Fiber.join(watcher)
yield* Layer.launch(ServerLive)
}) })
const runnableMain = main.pipe( BunRuntime.runMain(main.pipe(
Effect.provide( Effect.provide(
Layer.mergeAll( Layer.mergeAll(
ServicesLive, ServicesLive
TRPCEffectRuntimeLive,
) )
) )
) ))
BunRuntime.runMain(runnableMain)