feat: multi-module iteration

This commit is contained in:
2026-08-04 21:38:49 +08:00
parent 9d96c73246
commit 71f508e02b
1366 changed files with 202004 additions and 0 deletions
@@ -0,0 +1,34 @@
import { Module } from '@nestjs/common';
import { COURIER_PROVIDER, CourierProviderCode } from './courier.constants';
import { CourierConfigService } from './courier.config';
import { CourierService } from './courier.service';
import { XiaofeixiaClient } from './xiaofeixia/xiaofeixia.client';
import { XiaofeixiaProvider } from './xiaofeixia/xiaofeixia.provider';
import type { ICourierProvider } from './courier.types';
@Module({
providers: [
CourierConfigService,
XiaofeixiaClient,
XiaofeixiaProvider,
{
provide: COURIER_PROVIDER,
useFactory: (
configService: CourierConfigService,
xiaofeixia: XiaofeixiaProvider,
): ICourierProvider => {
const { provider } = configService.load();
switch (provider) {
case CourierProviderCode.XIAOFEIXIA:
return xiaofeixia;
default:
throw new Error(`Courier provider not implemented: ${provider}`);
}
},
inject: [CourierConfigService, XiaofeixiaProvider],
},
CourierService,
],
exports: [CourierService, CourierConfigService, COURIER_PROVIDER],
})
export class CourierModule {}