Files
tessera-ctl/apps/api/src/domaincheck/domaincheck.module.ts
T
schalli 2e0a4ddc21 feat(03-02): add domaincheck backend - DNS service, API endpoint, module seed
- CheckDomainDto with regex validation (T-03-05) and max 10 TLDs (T-03-06)
- DomaincheckService using node:dns/promises with 5s timeout per lookup
- POST /modules/domaincheck/check protected by UseModule guard (T-03-08)
- DomaincheckModule seeds itself into registry on startup via OnModuleInit
- Default TLDs: de, com, net, org (D-03)
2026-06-19 13:24:26 +02:00

39 lines
1.4 KiB
TypeScript

import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { ModuleRegistryModule } from '../module-registry/module-registry.module';
import { ModuleRegistryService } from '../module-registry/module-registry.service';
import { DomaincheckController } from './domaincheck.controller';
import { seedDomaincheckModule } from './domaincheck.seed';
import { DomaincheckService } from './domaincheck.service';
/**
* NestJS module for the Domaincheck feature.
*
* Provides DNS-based domain availability checking across TLD variants.
* Seeds itself into the module registry on application startup via
* OnModuleInit lifecycle hook.
*
* Imports ModuleRegistryModule for guard access (UseModule decorator)
* and seed function. PrismaModule is global, no explicit import needed.
*/
@Module({
imports: [ModuleRegistryModule],
controllers: [DomaincheckController],
providers: [DomaincheckService],
})
export class DomaincheckModule implements OnModuleInit {
private readonly logger = new Logger(DomaincheckModule.name);
constructor(
private readonly moduleRegistryService: ModuleRegistryService,
) {}
async onModuleInit(): Promise<void> {
try {
await seedDomaincheckModule(this.moduleRegistryService);
this.logger.log('Domaincheck module seeded in registry');
} catch (error) {
this.logger.error('Failed to seed domaincheck module', error);
}
}
}