class OutlookConfigClient extends Context.Tag(
'outlook-calendar-client/OutlookConfigClient',
)<
OutlookConfigClient,
{
credentials: CredentialsEntity
}
>() {}
class OutlookGraphClient2 extends Context.Tag(
'outlook-calendar-client/OutlookGraphClient',
)<
OutlookGraphClient2,
{
listCalendars: () => Effect.Effect<GraphCalendar[], GraphClientError>
}
>() {
static layer = Effect.gen(function* () {
const config = yield* OutlookConfigClient
const client = buildClient(config.credentials)
return {...}
})
}
const someController = Effect.fn('someController')(function* (req: Request) {
const creds = getCredentials(req)
const client = yield* OutlookGraphClient2.layer.pipe(
Effect.provideService(
OutlookConfigClient,
{ credentials: creds },
),
)
return yield* client.listCalendars()
})
class OutlookConfigClient extends Context.Tag(
'outlook-calendar-client/OutlookConfigClient',
)<
OutlookConfigClient,
{
credentials: CredentialsEntity
}
>() {}
class OutlookGraphClient2 extends Context.Tag(
'outlook-calendar-client/OutlookGraphClient',
)<
OutlookGraphClient2,
{
listCalendars: () => Effect.Effect<GraphCalendar[], GraphClientError>
}
>() {
static layer = Effect.gen(function* () {
const config = yield* OutlookConfigClient
const client = buildClient(config.credentials)
return {...}
})
}
const someController = Effect.fn('someController')(function* (req: Request) {
const creds = getCredentials(req)
const client = yield* OutlookGraphClient2.layer.pipe(
Effect.provideService(
OutlookConfigClient,
{ credentials: creds },
),
)
return yield* client.listCalendars()
})