Issues with lifting dependencies in Effect Typescript library
I wanted to "lift" my is now but I can't figure out how to make the consumer happy:
PgDBPgDB dependency into a higher scope so that each rpc route isn't responsible for importing it, eg export const appRouter = RpcRouter.make(
Rpc.effect(PlaygroundList, () =>
Effect.gen(function* () {
const db = yield* PgDB;
return yield* db.selectFrom("app_public.playgrounds").selectAll();
}).pipe(Effect.mapError((e) => e.toString())),
),
);export const appRouter = RpcRouter.make(
Rpc.effect(PlaygroundList, () =>
Effect.gen(function* () {
const db = yield* PgDB;
return yield* db.selectFrom("app_public.playgrounds").selectAll();
}).pipe(Effect.mapError((e) => e.toString())),
),
);export const appRouter = Effect.gen(function* () {
const db = yield* PgDB;
return RpcRouter.make(
Rpc.effect(PlaygroundList, () =>
db
.selectFrom("app_public.playgrounds")
.selectAll()
.pipe(Effect.mapError((e) => e.toString())),
),
);
});export const appRouter = Effect.gen(function* () {
const db = yield* PgDB;
return RpcRouter.make(
Rpc.effect(PlaygroundList, () =>
db
.selectFrom("app_public.playgrounds")
.selectAll()
.pipe(Effect.mapError((e) => e.toString())),
),
);
}); HttpRouter.post("/rpc", toHttpApp(appRouter)),
// ^? Type 'Effect<RpcRouter<PlaygroundList, never>, never, PgDB>' is missing the following properties from type 'RpcRouter<any, any>': rpcs, [TypeId] [2769]
NodeRuntime.runMain(Layer.launch(HttpLive));
// ^? Argument of type 'Effect<never, SqlError | ConfigError | ServeError, unknown>' is not assignable to parameter of type 'Effect<never, SqlError | ConfigError | ServeError, never>'. HttpRouter.post("/rpc", toHttpApp(appRouter)),
// ^? Type 'Effect<RpcRouter<PlaygroundList, never>, never, PgDB>' is missing the following properties from type 'RpcRouter<any, any>': rpcs, [TypeId] [2769]
NodeRuntime.runMain(Layer.launch(HttpLive));
// ^? Argument of type 'Effect<never, SqlError | ConfigError | ServeError, unknown>' is not assignable to parameter of type 'Effect<never, SqlError | ConfigError | ServeError, never>'.