mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-23 08:06:42 +02:00
fix(types): resolve TypeScript errors across multiple packages
- bot-services: Add registerAsync to AI, Calendar, Clock, Todo modules - bot-services: Add convenience methods to ClockService for bot handlers - bot-services: Make CreateEventInput.endTime optional with sensible defaults - bot-services: Fix empty interface ESLint errors (use type aliases) - questions-backend: Add missing schema columns (isDefault, sortOrder, deletedAt) - questions-backend: Fix or() return type handling in question service - questions-web: Add guard for undefined question ID in route params - skilltree-web: Fix DBSchema type by not extending idb interface directly - calendar-web: Fix Check icon prop (use weight instead of strokeWidth) - matrix-mana-bot: Update clock handler to use new service methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
91143a497b
commit
1733580d05
14 changed files with 314 additions and 37 deletions
|
|
@ -1,8 +1,13 @@
|
|||
import { Module, DynamicModule } from '@nestjs/common';
|
||||
import { Module, DynamicModule, Provider, Type, ModuleMetadata } from '@nestjs/common';
|
||||
import { AiService } from './ai.service';
|
||||
import { AiServiceConfig } from './types';
|
||||
|
||||
export interface AiModuleOptions extends Partial<AiServiceConfig> {}
|
||||
export type AiModuleOptions = Partial<AiServiceConfig>;
|
||||
|
||||
export interface AiModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
||||
useFactory: (...args: unknown[]) => Promise<AiModuleOptions> | AiModuleOptions;
|
||||
inject?: (Type<unknown> | string | symbol)[];
|
||||
}
|
||||
|
||||
@Module({})
|
||||
export class AiModule {
|
||||
|
|
@ -42,4 +47,29 @@ export class AiModule {
|
|||
exports: [AiService],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Register asynchronously with factory function
|
||||
*/
|
||||
static registerAsync(options: AiModuleAsyncOptions): DynamicModule {
|
||||
const configProvider: Provider = {
|
||||
provide: 'AI_SERVICE_CONFIG',
|
||||
useFactory: options.useFactory,
|
||||
inject: options.inject || [],
|
||||
};
|
||||
|
||||
return {
|
||||
module: AiModule,
|
||||
imports: options.imports || [],
|
||||
providers: [
|
||||
configProvider,
|
||||
{
|
||||
provide: AiService,
|
||||
useFactory: (config: Partial<AiServiceConfig>) => new AiService(config),
|
||||
inject: ['AI_SERVICE_CONFIG'],
|
||||
},
|
||||
],
|
||||
exports: [AiService],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue