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:
@@ -1,6 +1,6 @@
|
||||
import { z } from "zod";
|
||||
|
||||
import type { IEventBus } from "@repo/core-events";
|
||||
import type { EventBusProtocol } from "@repo/core-shared/di";
|
||||
import { userSignedUpEvent } from "../../events/user-signed-up.event";
|
||||
import { AuthenticationError } from "../../entities/errors/auth";
|
||||
import { cookieSchema } from "../../entities/models/cookie";
|
||||
@@ -36,7 +36,7 @@ export const signUpUseCase =
|
||||
(
|
||||
usersRepository: IUsersRepository,
|
||||
authenticationService: IAuthenticationService,
|
||||
bus: IEventBus,
|
||||
bus: EventBusProtocol | undefined,
|
||||
) =>
|
||||
async (input: SignUpInput): Promise<SignUpOutput> => {
|
||||
const existingUser = await usersRepository.getUserByUsername(input.username);
|
||||
@@ -57,11 +57,14 @@ export const signUpUseCase =
|
||||
|
||||
// Auth is username-based — synthesize a deterministic email so the event
|
||||
// payload validates against userSignedUpEventSchema.email().
|
||||
await bus.publish(userSignedUpEvent, {
|
||||
userId: newUser.id,
|
||||
email: `${newUser.username}@example.local`,
|
||||
signedUpAt: new Date().toISOString(),
|
||||
});
|
||||
// bus is optional: absent when core-events is not wired (Phase 3+).
|
||||
if (bus) {
|
||||
await bus.publish(userSignedUpEvent, {
|
||||
userId: newUser.id,
|
||||
email: `${newUser.username}@example.local`,
|
||||
signedUpAt: new Date().toISOString(),
|
||||
});
|
||||
}
|
||||
|
||||
return signUpOutputSchema.parse({ session, cookie });
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user