- Add aria-hidden="true" to all decorative inline SVGs (bookmark, view-mode, funnel, checkmark) - Convert save-search popover to proper dialog: role="dialog", aria-modal, focus trap, Escape key, focus return to trigger - Add aria-pressed on list/map/split view-mode toggle buttons - Add aria-expanded + aria-controls on mobile filter toggle button - Add role="status" + aria-label="Đang tải..." on Suspense fallback Co-Authored-By: Paperclip <noreply@paperclip.ing>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { CqrsModule } from '@nestjs/cqrs';
|
|
import { SharedModule } from '@modules/shared';
|
|
import { READ_MODEL_KILL_SWITCH } from './domain/read-model-kill-switch';
|
|
import { ConfigReadModelKillSwitch } from './infrastructure/config-read-model-kill-switch';
|
|
|
|
/**
|
|
* Read-models module skeleton — RFC-003 Phase 0.
|
|
*
|
|
* Hosts:
|
|
* - Projector base class (`application/projectors/projector.base.ts`).
|
|
* - Read-model repository convention (`domain/read-repository.ts`).
|
|
* - Idempotency port (`domain/projection-offset-store.ts`).
|
|
* - Per-read-model kill switch (`domain/read-model-kill-switch.ts`).
|
|
*
|
|
* No projectors, repositories, or `IProjectionOffsetStore` provider are
|
|
* registered here yet. The Prisma-backed offset store binding lands with
|
|
* [GOO-187](/GOO/issues/GOO-187); per-read-model projectors land in
|
|
* Phase 2/3.
|
|
*
|
|
* The module is imported by `AppModule` so its DI container is wired up
|
|
* even while empty — keeps Phase 2/3 PRs strictly additive.
|
|
*/
|
|
@Module({
|
|
imports: [CqrsModule, SharedModule],
|
|
providers: [
|
|
{
|
|
provide: READ_MODEL_KILL_SWITCH,
|
|
useClass: ConfigReadModelKillSwitch,
|
|
},
|
|
],
|
|
exports: [READ_MODEL_KILL_SWITCH],
|
|
})
|
|
export class ReadModelsModule {}
|