From 8dc794635e6929a347982c242d12d6fcc93a259b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 7 Sep 2024 02:55:23 +0200 Subject: [PATCH] Fix --- src/Layers/trpc/TRPCBuilder.ts | 20 ++++++++++---------- src/Layers/trpc/tests.ts | 13 +++++++++++-- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/Layers/trpc/TRPCBuilder.ts b/src/Layers/trpc/TRPCBuilder.ts index d8472f5..71771fe 100644 --- a/src/Layers/trpc/TRPCBuilder.ts +++ b/src/Layers/trpc/TRPCBuilder.ts @@ -1,18 +1,18 @@ -import { initTRPC } from "@trpc/server" -import { Context, Layer } from "effect" +import { Context, Effect, Layer } from "effect" import { type TRPCContext } from "./TRPCContext" +import { importTRPCServer } from "./importTRPCServer" -const createTRPC = () => initTRPC.context>().create() - -export class TRPCUnknownBuilder extends Context.Tag("@thilalib/TRPC/TRPCBuilder")> ->() {} - +const createTRPC = () => importTRPCServer.pipe(Effect.map(({ initTRPC }) => + initTRPC.context>().create() +)) export const make = () => { - class TRPCBuilder extends Context.Tag("@thilalib/TRPC/TRPCBuilder")>>() {} - const TRPCBuilderLive = Layer.sync(TRPCBuilder, createTRPC) + class TRPCBuilder extends Context.Tag("@thilalib/TRPC/TRPCBuilder")>> + >() {} + + const TRPCBuilderLive = Layer.effect(TRPCBuilder, createTRPC()) return { TRPCBuilder, TRPCBuilderLive } } diff --git a/src/Layers/trpc/tests.ts b/src/Layers/trpc/tests.ts index e0ac6c0..3f2dd92 100644 --- a/src/Layers/trpc/tests.ts +++ b/src/Layers/trpc/tests.ts @@ -1,9 +1,17 @@ import { Config, Effect, Layer } from "effect" import * as TRPC from "." +import { JSONWebToken } from ".." import { ExpressApp, ExpressNodeHTTPServer } from "../express" -type Services = never +// Context available to the router procedures +type Services = + | JSONWebToken.JSONWebToken + +const ServicesLive = Layer.empty.pipe( + Layer.provideMerge(JSONWebToken.JSONWebTokenLive) +) + const { TRPCContextCreator, TRPCContextCreatorLive } = TRPC.TRPCContextCreator.make() const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make() @@ -14,9 +22,9 @@ const router = TRPCBuilder.pipe(Effect.map(t => t.router({ Effect.succeed("pong") )), }))) - const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router) + const { TRPCWebSocketServer, TRPCWebSocketServerLive } = TRPC.TRPCWebSocketServer.make(TRPCRouter) @@ -43,6 +51,7 @@ await Effect.gen(function*() { return yield* Layer.launch(ServerLive) }).pipe( + Effect.provide(ServicesLive), Effect.scoped, Effect.runPromise, )