docs(html): di + data-flow explainers reflect BindContext
This commit is contained in:
@@ -756,7 +756,7 @@ footer .colophon {
|
||||
<div class="cast-tag">file 04 · prod swap</div>
|
||||
<h3>bind-production.ts</h3>
|
||||
<p class="role">Replaces the mock repository binding with a real Payload-backed one at app boot.</p>
|
||||
<p>Exports <code>bindProductionBlog(config, tracer, logger, bus, queue)</code>. Function body: <code>blogContainer.unbind(symbol)</code> if already bound, then <code>.bind(symbol).toConstantValue(new ArticlesRepository(config, tracer, logger))</code>. Use cases and controllers are wrapped via <code>withSpan(withCapture(factory(deps)))</code> at bind time so they inherit instrumentation without changing their factory bodies. The <code>bus</code> and <code>queue</code> params come from the app's <code>resolveEventsAndJobs*</code> step (ADR-015) and feed the <code>// <gen:event-handlers></code> / <code>// <gen:jobs></code> injection sites.</p>
|
||||
<p>Exports <code>bindProductionBlog(ctx: BindProductionContext)</code>. Destructures <code>{ config, tracer, logger, bus, queue, realtime, realtimeRegistry }</code> from <code>ctx</code>. Function body: <code>blogContainer.unbind(symbol)</code> if already bound, then <code>.bind(symbol).toConstantValue(new ArticlesRepository(config, tracer, logger))</code>. Use cases and controllers are wrapped via <code>withSpan(withCapture(factory(deps)))</code> at bind time so they inherit instrumentation without changing their factory bodies. The optional <code>bus</code> and <code>queue</code> fields come from the app's <code>resolveEventsAndJobs*</code> step (ADR-015) and feed the <code>// <gen:event-handlers></code> / <code>// <gen:jobs></code> injection sites. <code>BindProductionContext</code> is imported from <code>@repo/core-shared/di</code> — features never import the optional packages directly for the binder signature.</p>
|
||||
<div class="runs-when"><strong>When it runs:</strong> called from app boot (<code>apps/web-next/src/server/bind-production.ts</code>) when <code>USE_DEV_SEED ≠ "true"</code> AND Payload config is resolvable.</div>
|
||||
</div>
|
||||
|
||||
@@ -1190,7 +1190,9 @@ footer .colophon {
|
||||
└─ Noop or Sentry binders ← bind to sharedContainer
|
||||
└─ resolveEventsAndJobs*() ← ADR-015 (env-driven bus + queue)
|
||||
└─ Payload-backed in prod, in-memory in dev-seed
|
||||
└─ bindProductionX(config, tracer, logger, bus, queue)
|
||||
└─ build ctx: BindProductionContext = { config, tracer, logger, bus, queue, realtime, realtimeRegistry }
|
||||
└─ required: tracer, logger, config | optional: bus, queue, realtime, realtimeRegistry
|
||||
└─ bindProductionX(ctx) ← single ctx object passed to each feature binder
|
||||
└─ feature container also binds TRACER + LOGGER
|
||||
└─ withSpan(withCapture(...)) at every use case + controller
|
||||
└─ // <gen:event-handlers> / // <gen:jobs> injection sites</code></pre>
|
||||
|
||||
Reference in New Issue
Block a user