export class MyService extends Effect.Service<MyService>()("app/MyService", {
dependencies: [Dependency1.Default, Dependency2.Default],
effect: Effect.gen(function* () {
const dependency1 = yield* Dependency1
const dependency2 = yield* Dependency2
return {
doA: (param: string) =>
myAFunction(param).pipe(Effect.provideService(Dependency1, dependency1)),
doB: (param: string) =>
myBFunction(param).pipe(Effect.provideService(Dependency2, dependency2)),
doC: (param: string) =>
myCFunction(param).pipe(
Effect.provideService(Dependency1, dependency1),
Effect.provideService(Dependency2, dependency2)
),
}
}),
}) {}
export class MyService extends Effect.Service<MyService>()("app/MyService", {
dependencies: [Dependency1.Default, Dependency2.Default],
effect: Effect.gen(function* () {
const dependency1 = yield* Dependency1
const dependency2 = yield* Dependency2
return {
doA: (param: string) =>
myAFunction(param).pipe(Effect.provideService(Dependency1, dependency1)),
doB: (param: string) =>
myBFunction(param).pipe(Effect.provideService(Dependency2, dependency2)),
doC: (param: string) =>
myCFunction(param).pipe(
Effect.provideService(Dependency1, dependency1),
Effect.provideService(Dependency2, dependency2)
),
}
}),
}) {}