export class MyConfig extends Context.Tag('MyConfig')<MyConfig, {}>() {}
export class MyDependency extends Effect.Service<MyDependency>()('MyDependency', {
effect: Effect.succeed({}), // Does some setup code, needs to run first
}) {}
export class MyService extends Effect.Service<MyService>()('MyService', {
dependencies: [MyDependency.Default],
effect: Effect.gen(function* () {
const config = yield* MyConfig;
return {}; // Return some service instance
}),
}) {}
export class MyConfig extends Context.Tag('MyConfig')<MyConfig, {}>() {}
export class MyDependency extends Effect.Service<MyDependency>()('MyDependency', {
effect: Effect.succeed({}), // Does some setup code, needs to run first
}) {}
export class MyService extends Effect.Service<MyService>()('MyService', {
dependencies: [MyDependency.Default],
effect: Effect.gen(function* () {
const config = yield* MyConfig;
return {}; // Return some service instance
}),
}) {}