const make = Effect.gen(function* (_) {
const sendSignature = (data: Bla) =>
Effect.gen(function* () {
const userSession = yield* UserService.getSessionData()
//... do stuff
}).pipe(Effect.withSpan('sendSignature'), Effect.provide(UserService.Live)) //<<<----- do you do this?
const recieveSignatureUpdate = (data: FOO) => Effect.gen(function* () {
const otherService = yield* OtherService.doWhatever()
//.... do stuff
}).pipe(Effect.provide...) //<<<----- do you do this?
return {
sendSignature,
recieveSignatureUpdate,
} as const
}).pipe(Effect.withSpan('make'))
export class SigningService extends Effect.Tag('SigningService')<SigningService, Effect.Effect.Success<typeof make>>() {
static readonly Live = make.pipe(Layer.scoped(this))
}
const make = Effect.gen(function* (_) {
const sendSignature = (data: Bla) =>
Effect.gen(function* () {
const userSession = yield* UserService.getSessionData()
//... do stuff
}).pipe(Effect.withSpan('sendSignature'), Effect.provide(UserService.Live)) //<<<----- do you do this?
const recieveSignatureUpdate = (data: FOO) => Effect.gen(function* () {
const otherService = yield* OtherService.doWhatever()
//.... do stuff
}).pipe(Effect.provide...) //<<<----- do you do this?
return {
sendSignature,
recieveSignatureUpdate,
} as const
}).pipe(Effect.withSpan('make'))
export class SigningService extends Effect.Tag('SigningService')<SigningService, Effect.Effect.Success<typeof make>>() {
static readonly Live = make.pipe(Layer.scoped(this))
}