first commit

This commit is contained in:
2026-10-03 13:40:26 +02:00
parent 732a5b5a16
commit 566f415fa7
555 changed files with 62704 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
import { DynamicModule, Module, Type } from '@nestjs/common';
import { CqrsModule } from '@nestjs/cqrs';
import { TRACKER_FACTORIES } from '@task-stream/api/tracker/domain';
import { ChangesService } from './changes.service';
import { COMMAND_HANDLERS } from './commands/command-handlers';
import { WriteAccess } from './commands/write-access';
import { CommentsService } from './comments.service';
import {
EVENT_HANDLERS,
ReadModelNotifier,
} from './event-handlers/event-handlers';
import { IssuesService } from './issues.service';
import { ProjectsService } from './projects.service';
import { QUERY_HANDLERS } from './queries/query-handlers';
import { ReadAccess } from './queries/read-access';
import { ReleasesService } from './releases.service';
const SERVICES = [
ProjectsService,
IssuesService,
CommentsService,
ReleasesService,
ChangesService,
];
/**
* Use cases of the tracker context. The infrastructure module implementing
* its ports (lookups, read model, change feed, user directory) is plugged in
* by the composition root; the event store comes from the SharedModule.
*/
@Module({
imports: [CqrsModule],
providers: [
...SERVICES,
...TRACKER_FACTORIES,
WriteAccess,
ReadAccess,
ReadModelNotifier,
...COMMAND_HANDLERS,
...QUERY_HANDLERS,
...EVENT_HANDLERS,
],
exports: SERVICES,
})
export class TrackerApplicationModule {
static withInfrastructure(
infrastructureModule: Type | DynamicModule,
): DynamicModule {
return {
module: TrackerApplicationModule,
imports: [infrastructureModule],
};
}
}