import { DynamicModule, Module } from '@nestjs/common'; import { RedmineIssuesCacheWriterService } from './redmine-issues-cache-writer.service'; import nano = require('nano'); import { RedmineTypes } from 'libs/redmine-types'; @Module({}) export class RedmineIssuesCacheWriterModule { static register(params: { issueDocumentScopeProvider: () => Promise< nano.DocumentScope >; }): DynamicModule { return { module: RedmineIssuesCacheWriterModule, providers: [ RedmineIssuesCacheWriterService, { provide: 'ISSUE_DOCUMENT_SCOPE', useValue: params.issueDocumentScopeProvider, }, ], exports: [RedmineIssuesCacheWriterService], }; } }