import { Effect, Context } from "effect";
class MyService extends Effect.Service<MyService>()("MyService", {
effect: Effect.gen(function* () {
const doSomething = (input: string) =>
Effect.succeed(`Processed: ${input}`);
const doAnotherThing = (num: number) =>
Effect.tryPromise(() => Promise.resolve(num * 2));
const doManyThings = (inputs: string[]) =>
Effect.all(inputs.map(doSomething), { concurrency: "unbounded" });
return { doSomething, doAnotherThing, doManyThings };
}),
}) {}
import { Effect, Context } from "effect";
class MyService extends Effect.Service<MyService>()("MyService", {
effect: Effect.gen(function* () {
const doSomething = (input: string) =>
Effect.succeed(`Processed: ${input}`);
const doAnotherThing = (num: number) =>
Effect.tryPromise(() => Promise.resolve(num * 2));
const doManyThings = (inputs: string[]) =>
Effect.all(inputs.map(doSomething), { concurrency: "unbounded" });
return { doSomething, doAnotherThing, doManyThings };
}),
}) {}