Tests
Some checks failed
Lint / lint (push) Failing after 12s

This commit is contained in:
Julien Valverdé
2024-09-07 01:44:24 +02:00
parent 329e38afe0
commit 58d0d85dda
3 changed files with 44 additions and 4 deletions

View File

@@ -1,9 +1,9 @@
import type { AnyRouterDef, Router } from "@trpc/server" import type { AnyRouter, AnyRouterDef, Router } from "@trpc/server"
import { Context, Effect, Layer } from "effect" import { Context, Effect, Layer } from "effect"
export class TRPCAnyRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter")<TRPCAnyRouter, export class TRPCAnyRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter")<TRPCAnyRouter,
Router<AnyRouterDef> AnyRouter
>() {} >() {}

View File

@@ -1,4 +1,4 @@
import { Config, Effect, Layer } from "effect" import { Config, Context, Effect, Layer } from "effect"
import * as TRPC from "." import * as TRPC from "."
import { ExpressApp, ExpressNodeHTTPServer } from "../express" import { ExpressApp, ExpressNodeHTTPServer } from "../express"
@@ -16,6 +16,7 @@ const router = TRPCBuilder.pipe(Effect.map(t => t.router({
}))) })))
const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router) const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router)
type TRouter = Context.Tag.Service<typeof TRPCRouter>
const ServerLive = Layer.empty.pipe( const ServerLive = Layer.empty.pipe(
@@ -33,7 +34,11 @@ const ServerLive = Layer.empty.pipe(
Layer.provideMerge(ExpressApp.ExpressAppLive()) Layer.provideMerge(ExpressApp.ExpressAppLive())
) )
await Layer.launch(ServerLive).pipe( await Effect.gen(function*() {
// yield* TRPCRouter
return yield* Layer.launch(ServerLive)
}).pipe(
Effect.scoped, Effect.scoped,
Effect.runPromise, Effect.runPromise,
) )

35
src/Layers/trpc/tests2.ts Normal file
View File

@@ -0,0 +1,35 @@
import type { AnyRouter } from "@trpc/server"
import { Context, Effect, Layer } from "effect"
import * as TRPC from "."
const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make<never>()
const router = TRPCBuilder.pipe(Effect.map(t => t.router({
ping: t.procedure.query(({ ctx }) => ctx.run(
Effect.succeed("pong")
)),
})))
export class TRPCAnyRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter")<TRPCAnyRouter,
AnyRouter
>() {}
export class TRPCRouter extends Context.Tag("@thilalib/TRCP/TRPCRouter")<TRPCRouter,
Effect.Effect.Success<typeof router>
>() {}
const RouterLive = Layer.effect(TRPCRouter, router)
const AnyRouterLive = Layer.effect(TRPCAnyRouter, router)
const main = Effect.gen(function*() {
yield* TRPCAnyRouter
yield* TRPCRouter
})
const runnable = main.pipe(
Effect.provide(RouterLive),
Effect.provide(TRPCBuilderLive),
)