TRPCEffectRunner work
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import { BunRuntime } from "@effect/platform-bun"
|
||||
import { Todo } from "@todo-tests/common/data"
|
||||
import { Identifiable } from "@todo-tests/common/traits"
|
||||
import { Array, Duration, Effect, Fiber, Option, Stream } from "effect"
|
||||
import { Array, Duration, Effect, Fiber, Layer, Option, Stream } from "effect"
|
||||
import { MainLive } from "./Main"
|
||||
import { TodoRepository, createDefaultTodos } from "./TodoRepository"
|
||||
import { TRPCEffectRunnerLive } from "./trpc"
|
||||
|
||||
|
||||
const watchTodoChanges = Effect.gen(function*() {
|
||||
@@ -54,6 +55,13 @@ const main = Effect.gen(function*() {
|
||||
yield* Fiber.join(watcher)
|
||||
})
|
||||
|
||||
BunRuntime.runMain(
|
||||
main.pipe(Effect.provide(MainLive))
|
||||
const runnableMain = main.pipe(
|
||||
Effect.provide(
|
||||
Layer.mergeAll(
|
||||
TRPCEffectRunnerLive,
|
||||
MainLive,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
BunRuntime.runMain(runnableMain)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { initTRPC } from "@trpc/server"
|
||||
import { Context, Effect, Layer, Runtime } from "effect"
|
||||
import type { RuntimeFiber } from "effect/Fiber"
|
||||
import type { MainR } from "./Main"
|
||||
import { MainLive, type MainR } from "./Main"
|
||||
import { TodoRepository } from "./TodoRepository"
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ export const TRPCEffectRunnerLive = Layer.effect(TRPCEffectRunner,
|
||||
Effect.runtime<MainR>().pipe(
|
||||
Effect.map(Runtime.runFork)
|
||||
)
|
||||
).pipe(
|
||||
Layer.provide(MainLive)
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user