tRPC work
This commit is contained in:
@@ -1,30 +1,41 @@
|
|||||||
import { initTRPC } from "@trpc/server"
|
import { initTRPC } from "@trpc/server"
|
||||||
import { Effect, FiberSet } from "effect"
|
import { Effect, FiberSet, Runtime } from "effect"
|
||||||
import { TodoRepository } from "./TodoRepository"
|
import { TodoRepository } from "./TodoRepository"
|
||||||
|
|
||||||
|
|
||||||
export const t = initTRPC.create()
|
export const t = initTRPC.create()
|
||||||
|
|
||||||
export const run = <
|
export const makeRunner = Effect.runtime().pipe(
|
||||||
Args extends unknown[],
|
Effect.map(Runtime.runFork)
|
||||||
A, E, R
|
|
||||||
>(
|
|
||||||
program: (...args: Args) => Effect.Effect<A, E, R>
|
|
||||||
) => FiberSet.makeRuntime<R>().pipe(
|
|
||||||
Effect.map(runFork =>
|
|
||||||
(...args: Args) => runFork(program(...args))
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// export const run = <
|
||||||
|
// Args extends unknown[],
|
||||||
|
// A, E, R
|
||||||
|
// >(
|
||||||
|
// program: (...args: Args) => Effect.Effect<A, E, R>
|
||||||
|
// ) => FiberSet.makeRuntime<R>().pipe(
|
||||||
|
// Effect.map(runFork =>
|
||||||
|
// (...args: Args) => runFork(program(...args))
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
|
||||||
const testRouter = Effect.gen(function*() {
|
const testRouter = Effect.gen(function*() {
|
||||||
|
const run = yield* makeRunner
|
||||||
|
|
||||||
return t.router({
|
return t.router({
|
||||||
test: t.procedure.query(
|
// test1: t.procedure.query(
|
||||||
yield* run((opts) => Effect.gen(function*() {
|
// yield* run((opts) => Effect.gen(function*() {
|
||||||
|
// const todos = yield* TodoRepository
|
||||||
|
// return "test"
|
||||||
|
// }))
|
||||||
|
// ),
|
||||||
|
|
||||||
|
test1: t.procedure.query(
|
||||||
|
(opts) => run(Effect.gen(function*() {
|
||||||
const todos = yield* TodoRepository
|
const todos = yield* TodoRepository
|
||||||
return "test"
|
return "test"
|
||||||
}))
|
}))
|
||||||
),
|
),
|
||||||
|
|
||||||
test2: t.procedure.query(opts => {}),
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user