refactor(provider): use Plugin Effect service instead of async facade

Replace Effect.promise(() => Plugin.list()) with yield* plugin.list()
by injecting Plugin.Service into the Provider layer.
pull/20470/head
Kit Langton 2026-04-01 09:39:57 -04:00
parent c8ecd64022
commit ff9702f934
1 changed files with 8 additions and 3 deletions

View File

@ -961,11 +961,12 @@ export namespace Provider {
}
}
const layer: Layer.Layer<Service, never, Config.Service | Auth.Service> = Layer.effect(
const layer: Layer.Layer<Service, never, Config.Service | Auth.Service | Plugin.Service> = Layer.effect(
Service,
Effect.gen(function* () {
const config = yield* Config.Service
const auth = yield* Auth.Service
const plugin = yield* Plugin.Service
const cache = yield* InstanceState.make<State>(() =>
Effect.gen(function* () {
@ -1128,7 +1129,7 @@ export namespace Provider {
}
}
const plugins = yield* Effect.promise(() => Plugin.list())
const plugins = yield* plugin.list()
for (const plugin of plugins) {
if (!plugin.auth) continue
const providerID = ProviderID.make(plugin.auth.provider)
@ -1541,7 +1542,11 @@ export namespace Provider {
}),
)
export const defaultLayer = layer.pipe(Layer.provide(Config.defaultLayer), Layer.provide(Auth.defaultLayer))
export const defaultLayer = layer.pipe(
Layer.provide(Config.defaultLayer),
Layer.provide(Auth.defaultLayer),
Layer.provide(Plugin.defaultLayer),
)
const { runPromise } = makeRuntime(Service, defaultLayer)