import { Console, Context, Effect, Layer, pipe } from "effect";
export class MyService
extends Context.Tag("MyService")<MyService, {
saySomething: () => string
}>() {
static live =
Layer.succeed(
MyService,
MyService.of({
saySomething: () => "hey"
})
)
}
pipe(
MyService,
Effect.andThen(service =>
Console.log(service.saySomething())
),
Effect.provide(MyService.live),
Effect.runSync
)
import { Console, Context, Effect, Layer, pipe } from "effect";
export class MyService
extends Context.Tag("MyService")<MyService, {
saySomething: () => string
}>() {
static live =
Layer.succeed(
MyService,
MyService.of({
saySomething: () => "hey"
})
)
}
pipe(
MyService,
Effect.andThen(service =>
Console.log(service.saySomething())
),
Effect.provide(MyService.live),
Effect.runSync
)