effect: introduce defineService and drop per-call Effect.provide
Wave A migrated TuiConfig/Installation callers to
`AppRuntime.runPromise(svc.use(fn).pipe(Effect.provide(svc.layer)))`,
which couples every call site to the service's layer construction.
`defineService(Service, layer)` composes `makeRuntime` on top of an
existing service so the service exposes its own runPromise/runFork/etc.
Each per-service runtime shares the global memoMap, so dependencies are
still built once.
Call sites collapse from:
await AppRuntime.runPromise(
TuiConfig.Service.use((svc) => svc.get()).pipe(Effect.provide(TuiConfig.layer)),
)
to:
await TuiConfig.runPromise((svc) => svc.get())
Same shape applied to Installation. No per-method async wrappers. K
Kit Langton committed
9e26c3a00d91bdb9fbb209119590a84bb876687a
Parent: 9f290d4