// app/services/PrismaService.ts
import type { PrismaClient } from "@prisma/client";
import { Effect } from "effect";
export class PrismaService extends Effect.Service<PrismaService>()(
"PrismaService",
{
effect: (client: PrismaClient) => {
return Effect.succeed({
use: <A>(cb: (client: PrismaClient) => Promise<A>) =>
Effect.promise(() => cb(client)),
});
},
},
) {}
// app/services/RuntimeServer.ts
import { PrismaClient } from "@prisma/client";
import { Layer, ManagedRuntime } from "effect";
import { PrismaService } from "@/services/PrismaService";
const prismaClient = new PrismaClient();
const mainLayer = Layer.mergeAll(PrismaService.Default(prismaClient));
export const RuntimeServer = ManagedRuntime.make(mainLayer);
// app/services/PrismaService.ts
import type { PrismaClient } from "@prisma/client";
import { Effect } from "effect";
export class PrismaService extends Effect.Service<PrismaService>()(
"PrismaService",
{
effect: (client: PrismaClient) => {
return Effect.succeed({
use: <A>(cb: (client: PrismaClient) => Promise<A>) =>
Effect.promise(() => cb(client)),
});
},
},
) {}
// app/services/RuntimeServer.ts
import { PrismaClient } from "@prisma/client";
import { Layer, ManagedRuntime } from "effect";
import { PrismaService } from "@/services/PrismaService";
const prismaClient = new PrismaClient();
const mainLayer = Layer.mergeAll(PrismaService.Default(prismaClient));
export const RuntimeServer = ManagedRuntime.make(mainLayer);