fix: address Phase 1 spec review findings
- di-explainer.html: update stale JS data strings from positional-arg form (bindAllProduction(config), bindProductionBlog(config,tracer,...)) to ctx-arg form (bindAllProduction(deps), bindProductionBlog(ctx)) with a note on ctx shape. - auth/sign-up.use-case: change bus param from IEventBus to EventBusProtocol|undefined; guard bus.publish with if(bus) so the use case is safe when core-events is absent (Phase 3+). - auth/bind-production + bind-dev-seed: drop as IEventBus cast and unused IEventBus import; ctx.bus is now passed directly (typed as EventBusProtocol|undefined). - marketing-pages/bind-production + bind-dev-seed: drop as IJobQueue cast and unused IJobQueue import; wrap event-handler DI block in if(queue) guard so the handler is only bound when core-jobs is wired. - core-shared/src/index.ts: add `export * from "./di"` as the plan specified (subpath export alone is no longer the only access path). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1300,11 +1300,11 @@ const MODES = {
|
||||
],
|
||||
},
|
||||
prod: {
|
||||
flag: 'NODE_ENV="production", USE_DEV_SEED unset · bindAllProduction(config) ran',
|
||||
flag: 'NODE_ENV="production", USE_DEV_SEED unset · bindAllProduction(deps) ran',
|
||||
scenarioTag: 'when this happens',
|
||||
title: 'Production binder ran at app boot',
|
||||
narrative: [
|
||||
"App's bindAll() did not see USE_DEV_SEED=true, so it dispatched to bindAllProduction(). That resolved instrumentation (Rule 0), resolved a Payload-backed bus + queue (ADR-015), awaited the Payload config, and called bindProductionBlog(config, tracer, logger, bus, queue).",
|
||||
"App's bindAll() did not see USE_DEV_SEED=true, so it dispatched to bindAllProduction(). That resolved instrumentation (Rule 0), resolved a Payload-backed bus + queue (ADR-015), awaited the Payload config, and called bindProductionBlog(ctx) where ctx carries { config, tracer, logger, bus?, queue?, realtime?, realtimeRegistry? }.",
|
||||
"The binder unbound IArticlesRepository and rebound it with .toConstantValue(new ArticlesRepository(config, tracer, logger)) — the real Payload-backed implementation that will hit Postgres on every method call.",
|
||||
"Use cases and controllers still resolve through their .toDynamicValue closures, but the closures now fetch the real repo. Callers cannot tell the difference — same interface, different storage."
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user